Hi,

While working on unification of clients code we try to unify various
exceptions in different client projects.
We have module apiclient.exceptions in oslo-incubator[1]. Since our
apiclient is an oslo-inclubator library and not a standalone lib this
doesn't help in case we need to process exceptions from several clients.

Please, look at horizon module exceptions:
https://github.com/openstack/horizon/blob/master/openstack_dashboard/exceptions.py
>From interpreter point of view apiclient exceptions will be different
classes since they are copy-pasted between projects.

The solution would be to use exceptions from external library - Module
WebOb.exc[2] for example (since WebOb is already used in other openstack
projects). This exceptions cover all our custom http exceptions.

We propose to move to webob.exc in three stages(I already have patches for
this in oslo-incubator and I've added link here as an example):
1) In clients: create aliases in module `exceptions` for all http
exceptions which are duplicated with webob.exc. This will help us safely
move to webob.exc without breaking tempest, horizon and other projects.
Usage of such exceptions will not cause significant changes. -
https://review.openstack.org/#/c/71916/
2) In all projects: importing exceptions and use them directly from
webob.exc - https://review.openstack.org/#/c/76198/
3) In clients: remove aliases for webob.exc. (at the end of backwards
compatibility period)

Please share your thoughts about this topic.

[1] -
https://github.com/openstack/oslo-incubator/blob/master/openstack/common/apiclient/exceptions.py
[2] -
http://turbogears.org/2.0/docs/modules/thirdparty/webob.html#module-webob.exc

-- 

Looking forward for your reply,
Andrey Kurilin.
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to