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 : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp