Delete alt images before removing the account
[functest.git] / functest / opnfv_tests / vnf / ims / cloudify_ims.py
index 7ec647c..f7931b7 100644 (file)
@@ -97,13 +97,12 @@ class CloudifyIms(cloudify.Cloudify):
                 "overlapping)")
 
     def execute(self):
-        assert super(CloudifyIms, self).execute() == 0
-        # pylint: disable=too-many-locals,too-many-statements
         """
         Deploy Cloudify Manager.
 
         network, security group, fip, VM creation
         """
+        assert super(CloudifyIms, self).execute() == 0
         start_time = time.time()
         self.orig_cloud.set_network_quotas(
             self.project.project.name,
@@ -122,12 +121,23 @@ class CloudifyIms(cloudify.Cloudify):
             project_domain_name=os.environ.get(
                 'OS_PROJECT_DOMAIN_NAME', 'Default'))
         self.__logger.info("Set creds for cloudify manager %s", cfy_creds)
-        secrets_list = self.cfy_client.secrets.list()
-        for k, val in six.iteritems(cfy_creds):
-            if not any(d.get('key', None) == k for d in secrets_list):
-                self.cfy_client.secrets.create(k, val)
-            else:
-                self.cfy_client.secrets.update(k, val)
+
+        for loop in range(10):
+            try:
+                secrets_list = self.cfy_client.secrets.list()
+                for k, val in six.iteritems(cfy_creds):
+                    if not any(d.get('key', None) == k for d in secrets_list):
+                        self.cfy_client.secrets.create(k, val)
+                    else:
+                        self.cfy_client.secrets.update(k, val)
+                break
+            except Exception:  # pylint: disable=broad-except
+                self.__logger.info(
+                    "try %s: Cannot create secrets", loop + 1)
+                time.sleep(30)
+        else:
+            self.__logger.error("Cannot create secrets")
+            return 1
 
         duration = time.time() - start_time
 
@@ -199,7 +209,7 @@ class CloudifyIms(cloudify.Cloudify):
             return False
 
         ellis_ip = self.cfy_client.deployments.outputs.get(
-                self.vnf['descriptor'].get('name'))['outputs']['ellis_ip']
+            self.vnf['descriptor'].get('name'))['outputs']['ellis_ip']
         self.clearwater = clearwater.ClearwaterTesting(self.case_name,
                                                        ellis_ip)
         self.clearwater.availability_check_by_creating_numbers()
@@ -247,7 +257,7 @@ class CloudifyIms(cloudify.Cloudify):
             dep_name = self.vnf['descriptor'].get('name')
             # kill existing execution
             self.__logger.info('Deleting the current deployment')
-            exec_list = self.cfy_client.executions.list(dep_name)
+            exec_list = self.cfy_client.executions.list()
             for execution in exec_list:
                 if execution['status'] == "started":
                     try:
@@ -269,7 +279,10 @@ class CloudifyIms(cloudify.Cloudify):
                 self.vnf['descriptor'].get('name'))
         except Exception:  # pylint: disable=broad-except
             self.__logger.exception("Some issue during the undeployment ..")
-
+        if self.image_alt:
+            self.cloud.delete_image(self.image_alt)
+        if self.flavor_alt:
+            self.orig_cloud.delete_flavor(self.flavor_alt.id)
         super(CloudifyIms, self).clean()