Hi Chenhong Liu,

encapsulated into the WSGI application, Keystone is architecturally organized as follows:

Application <-> Router <-> Controller <-> Manager <-> Driver

The Router connects called URLs with the code in the Controller, which delegates actions to Manager, which manages the business logic and in turn calls the configured Driver to
access stored information.

The Controller level may catch raised exceptions from Manager/Driver [1]; those are the exceptions defined at exception.py and represent the 4xx and 5xx HTTP status codes.

When a Controller call to Manager/Driver has success, it may set the HTTP status code itself [2] or it will be defined when rendering the WSGI response [3]; those are the 2xx
HTTP status codes.

The 300 HTTP status code is particularly used in version discovery, and is defined at that
specific manager call in the base Controller class [4].

Sincerely,
Samuel

[1] http://git.openstack.org/cgit/openstack/keystone/tree/keystone/identity/backends/sql.py#n130 [2] http://git.openstack.org/cgit/openstack/keystone/tree/keystone/contrib/federation/controllers.py#n100 [3] http://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/wsgi.py#n740 [4] http://git.openstack.org/cgit/openstack/keystone/tree/keystone/controllers.py#n178

Em 02.06.2015 06:45, Boris Bobrov escreveu:
On Tuesday 02 June 2015 09:32:45 Chenhong Liu wrote:
There is keystone/exception.py which contains Exceptions defined and used inside keystone provide 4xx and 5xx status code. And we can use it like:
exception.Forbidden.code, exception.forbiddent.title
exception.NotFound.code, exception.NotFound.title

This makes the code looks pretty and avoid error prone. But I can't find definition for other status code, like 200, 201, 204, 302, and so on. The code in keystone, especially the unit test cases, just write these status
code and title explicitly.

How about add those definitions?

These are standard HTTP codes:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Description in exceptions is given because one error code can be used for
several errors. Success codes always have one meaning.

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to