Replace glance client calls with openstack sdk 13/62313/5
authorStamatis Katsaounis <mokats@intracom-telecom.com>
Fri, 14 Sep 2018 11:07:02 +0000 (14:07 +0300)
committerStamatis Katsaounis <mokats@intracom-telecom.com>
Wed, 3 Oct 2018 11:50:01 +0000 (14:50 +0300)
JIRA: SDNVPN-220

This patch replaces all calls of glance client with openstack sdk.

Change-Id: I8bf9913e3be9615c462791a20267e4dc71ffd727
Signed-off-by: Stamatis Katsaounis <mokats@intracom-telecom.com>
13 files changed:
requirements.txt
sdnvpn/lib/openstack_utils.py
sdnvpn/lib/utils.py
sdnvpn/test/functest/testcase_1.py
sdnvpn/test/functest/testcase_10.py
sdnvpn/test/functest/testcase_11.py
sdnvpn/test/functest/testcase_12.py
sdnvpn/test/functest/testcase_13.py
sdnvpn/test/functest/testcase_2.py
sdnvpn/test/functest/testcase_3.py
sdnvpn/test/functest/testcase_4.py
sdnvpn/test/functest/testcase_7.py
sdnvpn/test/functest/testcase_8.py

index 2689b31..3e9956e 100644 (file)
@@ -7,9 +7,9 @@ opnfv
 PyYAML>=3.12 # MIT
 networking-bgpvpn>=7.0.0 # Apache-2.0
 python-cinderclient>=3.3.0 # Apache-2.0
-python-glanceclient>=2.8.0 # Apache-2.0
 python-heatclient>=1.10.0 # Apache-2.0
 python-keystoneclient>=3.8.0 # Apache-2.0
 python-neutronclient>=6.7.0 # Apache-2.0
 python-novaclient>=9.1.0 # Apache-2.0
 xtesting # Apache-2.0
+openstacksdk>=0.11.3 # Apache-2.0
index 29843f0..44da383 100644 (file)
@@ -18,11 +18,11 @@ import urllib
 from keystoneauth1 import loading
 from keystoneauth1 import session
 from cinderclient import client as cinderclient
-from glanceclient import client as glanceclient
 from heatclient import client as heatclient
 from novaclient import client as novaclient
 from keystoneclient import client as keystoneclient
 from neutronclient.neutron import client as neutronclient
+from openstack import connection
 
 from functest.utils import env
 
@@ -44,6 +44,10 @@ class MissingEnvVar(Exception):
         return str.format("Please set the mandatory env var: {}", self.var)
 
 
+def get_os_connection():
+    return connection.from_config()
+
+
 def is_keystone_v3():
     keystone_api_version = os.getenv('OS_IDENTITY_API_VERSION')
     if (keystone_api_version is None or
@@ -198,19 +202,6 @@ def get_neutron_client(other_creds={}):
     return neutronclient.Client(get_neutron_client_version(), session=sess)
 
 
-def get_glance_client_version():
-    api_version = os.getenv('OS_IMAGE_API_VERSION')
-    if api_version is not None:
-        logger.info("OS_IMAGE_API_VERSION is set in env as '%s'", api_version)
-        return api_version
-    return DEFAULT_API_VERSION
-
-
-def get_glance_client(other_creds={}):
-    sess = get_session(other_creds)
-    return glanceclient.Client(get_glance_client_version(), session=sess)
-
-
 def get_heat_client_version():
     api_version = os.getenv('OS_ORCHESTRATION_API_VERSION')
     if api_version is not None:
@@ -241,7 +232,7 @@ def download_url(url, dest_path):
     return True
 
 
-def download_and_add_image_on_glance(glance, image_name, image_url, data_dir):
+def download_and_add_image_on_glance(conn, image_name, image_url, data_dir):
     try:
         dest_path = data_dir
         if not os.path.exists(dest_path):
@@ -255,7 +246,7 @@ def download_and_add_image_on_glance(glance, image_name, image_url, data_dir):
 
     try:
         image = create_glance_image(
-            glance, image_name, dest_path + file_name)
+            conn, image_name, dest_path + file_name)
         if not image:
             return False
         else:
@@ -1143,17 +1134,17 @@ def delete_security_group(neutron_client, secgroup_id):
 # *********************************************
 #   GLANCE
 # *********************************************
-def get_images(glance_client):
+def get_images(conn):
     try:
-        images = glance_client.images.list()
+        images = conn.image.images()
         return images
     except Exception as e:
         logger.error("Error [get_images]: %s" % e)
         return None
 
 
-def get_image_id(glance_client, image_name):
-    images = glance_client.images.list()
+def get_image_id(conn, image_name):
+    images = conn.image.images()
     id = ''
     for i in images:
         if i.name == image_name:
@@ -1162,7 +1153,7 @@ def get_image_id(glance_client, image_name):
     return id
 
 
-def create_glance_image(glance_client,
+def create_glance_image(conn,
                         image_name,
                         file_path,
                         disk="qcow2",
@@ -1173,39 +1164,38 @@ def create_glance_image(glance_client,
         logger.error("Error: file %s does not exist." % file_path)
         return None
     try:
-        image_id = get_image_id(glance_client, image_name)
+        image_id = get_image_id(conn, image_name)
         if image_id != '':
             logger.info("Image %s already exists." % image_name)
         else:
             logger.info("Creating image '%s' from '%s'..." % (image_name,
                                                               file_path))
-
-            image = glance_client.images.create(name=image_name,
-                                                visibility=public,
+            with open(file_path) as image_data:
+                image = conn.image.upload_image(name=image_name,
+                                                is_public=public,
                                                 disk_format=disk,
                                                 container_format=container,
+                                                data=image_data,
                                                 **extra_properties)
             image_id = image.id
-            with open(file_path) as image_data:
-                glance_client.images.upload(image_id, image_data)
         return image_id
     except Exception as e:
-        logger.error("Error [create_glance_image(glance_client, '%s', '%s', "
+        logger.error("Error [create_glance_image(image, '%s', '%s', "
                      "'%s')]: %s" % (image_name, file_path, public, e))
         return None
 
 
 def get_or_create_image(name, path, format, extra_properties):
     image_exists = False
-    glance_client = get_glance_client()
+    conn = get_os_connection()
 
-    image_id = get_image_id(glance_client, name)
+    image_id = get_image_id(conn, name)
     if image_id != '':
         logger.info("Using existing image '%s'..." % name)
         image_exists = True
     else:
         logger.info("Creating image '%s' from '%s'..." % (name, path))
-        image_id = create_glance_image(glance_client,
+        image_id = create_glance_image(conn,
                                        name,
                                        path,
                                        format,
@@ -1219,12 +1209,12 @@ def get_or_create_image(name, path, format, extra_properties):
     return image_exists, image_id
 
 
-def delete_glance_image(glance_client, image_id):
+def delete_glance_image(conn, image_id):
     try:
-        glance_client.images.delete(image_id)
+        conn.image.delete_image(image_id)
         return True
     except Exception as e:
-        logger.error("Error [delete_glance_image(glance_client, '%s')]: %s"
+        logger.error("Error [delete_glance_image(image, '%s')]: %s"
                      % (image_id, e))
         return False
 
index 9f4c883..9b0673d 100644 (file)
@@ -722,10 +722,10 @@ def cleanup_nova(nova_client, instance_ids, flavor_ids=None):
     return True
 
 
-def cleanup_glance(glance_client, image_ids):
+def cleanup_glance(conn, image_ids):
     if len(image_ids) != 0:
         for image_id in image_ids:
-            if not os_utils.delete_glance_image(glance_client, image_id):
+            if not os_utils.delete_glance_image(conn, image_id):
                 logger.error('Fail to delete all images. '
                              'Image with id {} was not deleted.'.
                              format(image_id))
index 35e32b2..7c0cb43 100644 (file)
@@ -33,14 +33,14 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -245,7 +245,7 @@ def main():
         raise
     finally:
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index aebc146..78d5684 100644 (file)
@@ -72,11 +72,11 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
-    image_id = os_utils.create_glance_image(glance_client,
+    image_id = os_utils.create_glance_image(conn,
                                             TESTCASE_CONFIG.image_name,
                                             COMMON_CONFIG.image_path,
                                             disk=COMMON_CONFIG.image_format,
@@ -260,7 +260,7 @@ def main():
             thread.join()
 
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids, bgpvpn_ids,
                                    interfaces, subnet_ids, router_ids,
                                    network_ids)
index c597c4d..85dea19 100644 (file)
@@ -32,7 +32,7 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
     openstack_nodes = test_utils.get_nodes()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
@@ -40,7 +40,7 @@ def main():
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -129,7 +129,7 @@ def main():
     finally:
         # Cleanup topology
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids, bgpvpn_ids,
                                    interfaces, subnet_ids, router_ids,
                                    network_ids)
index 3e13d69..be32d1d 100644 (file)
@@ -32,7 +32,7 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
     openstack_nodes = test_utils.get_nodes()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
@@ -40,7 +40,7 @@ def main():
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -186,7 +186,7 @@ def main():
     finally:
         # Cleanup topology
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids, bgpvpn_ids,
                                    interfaces, subnet_ids, router_ids,
                                    network_ids)
index 8beb1db..2d79b45 100644 (file)
@@ -45,14 +45,14 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids, flavor_ids) = ([] for i in range(9))
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client,
+            conn,
             COMMON_CONFIG.ubuntu_image_name,
             COMMON_CONFIG.ubuntu_image_path,
             disk="qcow2",
@@ -133,7 +133,7 @@ def main():
         test_utils.async_Wait_for_instances([vm_1, vm_2])
 
         image_2_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_2_id)
@@ -209,7 +209,7 @@ def main():
     finally:
         test_utils.update_router_no_extra_route(neutron_client, router_ids)
         test_utils.cleanup_nova(nova_client, instance_ids, flavor_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index ee74d8d..4955f7e 100644 (file)
@@ -33,7 +33,7 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
@@ -47,7 +47,7 @@ def main():
         files = {"/home/cirros/id_rsa": key}
 
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -268,7 +268,7 @@ def main():
         raise
     finally:
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index b06915a..c942f0b 100644 (file)
@@ -168,7 +168,7 @@ def main():
     else:
         logger.info("Using old image")
 
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
 
@@ -190,7 +190,7 @@ def main():
         test_utils.open_bgp_port(neutron_client, sg_id)
 
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -225,7 +225,7 @@ def main():
             logger.error("Incompatible installer type")
 
         ubuntu_image_id = os_utils.create_glance_image(
-            glance_client,
+            conn,
             COMMON_CONFIG.ubuntu_image_name,
             COMMON_CONFIG.ubuntu_image_path,
             disk,
@@ -399,7 +399,7 @@ def main():
         if quagga_vm is not None:
             test_utils.detach_instance_from_ext_br(quagga_vm, compute)
         test_utils.cleanup_nova(nova_client, instance_ids, flavor_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index 9b11cc3..a29dc12 100644 (file)
@@ -34,14 +34,14 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -259,7 +259,7 @@ def main():
         raise
     finally:
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index 1ad0538..381b98b 100644 (file)
@@ -43,14 +43,14 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -169,7 +169,7 @@ def main():
         raise
     finally:
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)
index 6336f46..cfdb950 100644 (file)
@@ -41,14 +41,14 @@ def main():
 
     nova_client = os_utils.get_nova_client()
     neutron_client = os_utils.get_neutron_client()
-    glance_client = os_utils.get_glance_client()
+    conn = os_utils.get_os_connection()
 
     (floatingip_ids, instance_ids, router_ids, network_ids, image_ids,
      subnet_ids, interfaces, bgpvpn_ids) = ([] for i in range(8))
 
     try:
         image_id = os_utils.create_glance_image(
-            glance_client, TESTCASE_CONFIG.image_name,
+            conn, TESTCASE_CONFIG.image_name,
             COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
             container="bare", public='public')
         image_ids.append(image_id)
@@ -177,7 +177,7 @@ def main():
         raise
     finally:
         test_utils.cleanup_nova(nova_client, instance_ids)
-        test_utils.cleanup_glance(glance_client, image_ids)
+        test_utils.cleanup_glance(conn, image_ids)
         test_utils.cleanup_neutron(neutron_client, floatingip_ids,
                                    bgpvpn_ids, interfaces, subnet_ids,
                                    router_ids, network_ids)