Alexey -
where's the library of common that you've put together? Is it committed to
openstack-common? somewhere else?
-joe
On Jun 19, 2012, at 9:43 AM, Alexey Ababilov wrote:
> Unfortunately, nova, keystone, and glance clients are very inconsistent. A
> lot of code is copied between all these clients instead of moving it to a
> common library. The code was edited without synchronization between clients,
> so, they have different behaviour:
>
> all client constructors use different parameters (api_key in nova or password
> in keystone and so on);
> keystoneclient authenticates immediately in __init__, while novaclient does
> in lazily during first method call;
> {keystone,nova}client can manage service catalogs and accept keystone's auth
> URI while glanceclient allows endpoints only;
> keystoneclient can support authorization with an unscoped token but
> novaclient doesn't;
> novaclient uses class composition while keystoneclient uses inheritance.
> I have developed a library to unify current clients. The library can be used
> as-is, but it would be better if openstack clients dropped their common code
> (base.py, exceptions.py and so on) and just began to import common code.
>
> Here is an example of using unified clients.
> from openstackclient_base import patch_clients
> from openstackclient_base.client import HttpClient
> http_client = HttpClient(username="...", password="...", tenant_name="...",
> auth_uri="...")
>
> from openstackclient_base.nova.client import ComputeClient
> print ComputeClient(http_client).servers.list()
>
> from openstackclient_base.keystone.client import IdentityPublicClient
> print IdentityPublicClient(http_client).tenants.list()
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : [email protected]
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp