import keystoneauth
-class Glance(keystoneauth.Keystoneauth):
+class Glance(keystoneauth.ClientBase):
def __init__(self, version='2', openrc=None):
- super(Glance, self).__init__(openrc)
- self.client = glanceclient.Client(version, session=self.session)
+ super(Glance, self).__init__(glanceclient.Client, version, openrc)
self.controller = self.client.images
def create(self, name, path,
return reduce(parse_credential,
[(k, v) for (k, v) in raws.iteritems() if k in maps],
defaultdict(dict))
+
+
+class ClientBase(Keystoneauth):
+ def __init__(self, klass, version, openrc):
+ super(ClientBase, self).__init__(openrc)
+ self.client = klass(version, session=self.session)
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from neutronclient.neutron import client as neutronclient
+from neutronclient.neutron import client
from deploy.common import query
import keystoneauth
-class Neutron(object):
- def __init__(self, api_v='2', openrc=None):
- session = keystoneauth.Keystoneauth(openrc).session
- self.client = neutronclient.Client(api_v, session=session)
+class Neutron(keystoneauth.ClientBase):
+ def __init__(self, version='2', openrc=None):
+ super(Neutron, self).__init__(client.Client, version, openrc)
def create_network(self, name, body):
if not self.get_network_by_name(name):
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import novaclient.client
+from novaclient import client
from deploy.common import query
import keystoneauth
-class Nova(keystoneauth.Keystoneauth):
+class Nova(keystoneauth.ClientBase):
def __init__(self, version='2', openrc=None):
- super(Nova, self).__init__(openrc)
- self.client = novaclient.client.Client(version, session=self.session)
+ super(Nova, self).__init__(client.Client, version, openrc)
self.flavors = self.client.flavors
def create_flavor(self, name, ram, vcpus, disk, is_public=True):