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