FIX: Container test 68/24268/2
authorPeter Mikus <pmikus@cisco.com>
Thu, 9 Jan 2020 13:45:06 +0000 (13:45 +0000)
committerPeter Mikus <pmikus@cisco.com>
Thu, 9 Jan 2020 15:21:54 +0000 (15:21 +0000)
+ We should check if container is UP
+ We should adjust privileges.

Change-Id: I3f604b7b9740943b4fd3b0574c18d2729e88b816
Signed-off-by: Peter Mikus <pmikus@cisco.com>
resources/libraries/python/ContainerUtils.py
resources/libraries/robot/shared/container.robot

index 6e413c6..456cd22 100644 (file)
@@ -564,12 +564,13 @@ class ContainerEngine:
             self.container.name,
             f"/tmp/vpp_sockets/{self.container.name}/stats.sock"
         )
+        self.verify_vpp()
+        self.adjust_privileges()
 
     def restart_vpp(self):
         """Restart VPP service inside a container."""
         self.execute(u"pkill vpp")
         self.start_vpp()
-        self.execute(u"cat /tmp/vppd.log")
 
     # TODO Rewrite to use the VPPUtil.py functionality and remove this.
     def verify_vpp(self, retries=120, retry_wait=1):
@@ -578,19 +579,25 @@ class ContainerEngine:
         :param retries: Check for VPP for this number of times Default: 120
         :param retry_wait: Wait for this number of seconds between retries.
         """
-        cmd = (u"vppctl show pci 2>&1 | "
-               u"fgrep -v 'Connection refused' | "
-               u"fgrep -v 'No such file or directory'")
-
         for _ in range(retries + 1):
             try:
-                self.execute(cmd)
+                self.execute(
+                    u"vppctl show pci 2>&1 | "
+                    u"fgrep -v 'Connection refused' | "
+                    u"fgrep -v 'No such file or directory'"
+                )
                 break
             except RuntimeError:
                 sleep(retry_wait)
         else:
-            msg = f"VPP did not come up in container: {self.container.name}"
-            raise RuntimeError(msg)
+            self.execute(u"cat /tmp/vppd.log")
+            raise RuntimeError(
+                f"VPP did not come up in container: {self.container.name}"
+            )
+
+    def adjust_privileges(self):
+        """Adjust privileges to control VPP without sudo."""
+        self.execute("chmod -R o+rwx /run/vpp")
 
     def create_base_vpp_startup_config(self, cpuset_cpus=None):
         """Create base startup configuration of VPP on container.
index 485bc7e..dbe2ae7 100644 (file)
 | | ... | tg_if2_ip4=${tg_if2_ip4} | tg_if2_mac=${tg_if2_mac}
 | | ... | nodes=${nodes}
 | | Start VPP in all '${container_group}' containers
-| | Verify VPP in all '${container_group}' containers
 
 | Start vswitch in container
 | | [Documentation]