unify the way of getting openstack clients 59/31659/2
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Fri, 24 Mar 2017 06:43:04 +0000 (14:43 +0800)
committerSerena Feng <feng.xiaowei@zte.com.cn>
Fri, 24 Mar 2017 06:45:51 +0000 (06:45 +0000)
Change-Id: If3a1d1a8b74e11c5861c016bd722b78f4cf9b475
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
deploy/post/glance.py
deploy/post/keystoneauth.py
deploy/post/neutron.py
deploy/post/nova.py

index 4171c8a..79831ed 100644 (file)
@@ -14,10 +14,9 @@ from deploy.common import query
 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,
index 664a794..fb321d3 100644 (file)
@@ -64,3 +64,9 @@ class Keystoneauth(object):
         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)
index dc2e30b..77791ea 100644 (file)
@@ -6,16 +6,15 @@
 # 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):
index 6f5eae9..2b92450 100644 (file)
@@ -6,16 +6,15 @@
 # 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):