Protect vs exceptions when creating secrets 59/60359/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 30 Jul 2018 13:03:42 +0000 (15:03 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Mon, 30 Jul 2018 13:06:40 +0000 (15:06 +0200)
cloudify_ims sometimes faces with exceptions when creating secrets
[1].

[1] https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-master/188/console

Change-Id: I197748bf97752575dc14650e1e1c382774811cce
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
functest/opnfv_tests/vnf/ims/cloudify_ims.py

index c5003e1..8fa8c61 100644 (file)
@@ -121,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