[openstack-dev] a "common" client library

Alexei Kornienko alexei.kornienko at gmail.com
Tue Jan 21 18:35:39 UTC 2014


I would like to propose to use this thread to gather and discuss software
requirements that our clients should meet.
Later we'll summarize all the requirements and use them during our work of
improving the clients.
By reaching listed requirements we'll be able to evaluate the success of
our refactoring.

To start this discussion:
* API versioning should be encapsulated inside of the client.

>From the end user perspective using the code should look something like:

import openstack.nova

nova = openstack.nova.create_client(...params TBD...)
nova.start_server(...)

Reasoning for this requirement:
If user would have to specify version explicitly his code will only work
with specific version of client/api or user would have to write several
code paths for different api versions.

Implementation:
We will have an interface (abstact class) that would contain all the
methods available in latest API.
Different versions of the API would implement this methods. In case method
cannot be implemented with existing API it should raise
"UnsupportedOperation" exception.

Glossary:
user - developer who uses the client/openstack API

Please share your thoughts about this requirement/other requirements.

Looking forward for your replies,
Alexei Kornienko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140121/de98c70e/attachment.html>


More information about the OpenStack-dev mailing list