Wait for apps being active (juju_epc) 23/66723/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 28 Jan 2019 15:56:57 +0000 (16:56 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Mon, 28 Jan 2019 18:11:44 +0000 (19:11 +0100)
It seems that juju-wait doesn't wait for all apps.
Juju_epc passes in functest-virtual thanks to that additional tries.

Change-Id: I161902c6308cfa6323c21e09140d16e036768ece
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 900b51c6885339c68cd0762f2b10363c436fbafb)

functest/opnfv_tests/vnf/epc/juju_epc.py

index ea09084..3830907 100644 (file)
@@ -264,14 +264,20 @@ class JujuEpc(singlevm.VmReady2):
     def check_app(self, name='abot-epc-basic', status='active'):
         """Check application status."""
         cmd = ['juju', 'status', '--format', 'short', name]
-        output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
-        self.__logger.info("%s\n%s", " ".join(cmd), output)
-        ret = re.search(r'(?=workload:({})\))'.format(status), output)
-        if ret:
-            self.__logger.info("%s workload is %s", name, status)
-            return True
-        self.__logger.error("%s workload differs from %s", name, status)
-        return False
+        for i in range(10):
+            output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+            self.__logger.info("%s\n%s", " ".join(cmd), output)
+            ret = re.search(r'(?=workload:({})\))'.format(status), output)
+            if ret:
+                self.__logger.info("%s workload is %s", name, status)
+                break
+            self.__logger.info(
+                "loop %d: %s workload differs from %s", i + 1, name, status)
+            time.sleep(60)
+        else:
+            self.__logger.error("%s workload differs from %s", name, status)
+            return False
+        return True
 
     def deploy_vnf(self):
         """Deploy ABOT-OAI-EPC."""