[openstack-dev] [python-*client] moving to WebOb exceptions

Andrey Kurilin akurilin at mirantis.com
Wed Feb 26 17:20:27 UTC 2014


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140226/233b03aa/attachment.html>


More information about the OpenStack-dev mailing list