FIX: Add SRIOV cleanup 24/22524/2
authorPeter Mikus <pmikus@cisco.com>
Fri, 4 Oct 2019 10:15:18 +0000 (10:15 +0000)
committerPeter Mikus <pmikus@cisco.com>
Fri, 4 Oct 2019 10:16:43 +0000 (10:16 +0000)
If Jenkins interrupt pybot during AVF tests (that is happening
more frequently as coverage increased) the interfaces remains
in link UP state. Next run VPP cannot grab interfaces as they
are in UP state in and kernel driver. This results in testcase
failing.

Patch is supposed to do put interfaces in topology down so VPP
can bind them back to vfio-pci.

Change-Id: I2aa9e5944d39474965eac3c5f1b472f58e9aa8b5
Signed-off-by: Peter Mikus <pmikus@cisco.com>
resources/tools/scripts/topo_cleanup.py

index 1402940..bf4bdfc 100755 (executable)
@@ -61,7 +61,7 @@ def uninstall_package(ssh, package):
             # Try to fix interrupted installations first.
             execute_command_ssh(ssh, 'dpkg --configure -a', sudo=True)
             # Try to remove installed packages
             # Try to fix interrupted installations first.
             execute_command_ssh(ssh, 'dpkg --configure -a', sudo=True)
             # Try to remove installed packages
-            execute_command_ssh(ssh, 'apt-get purge -y "{package}.*"'.format(
+            execute_command_ssh(ssh, 'apt-get purge -y "*{package}*"'.format(
                 package=package), sudo=True)
 
 def kill_process(ssh, process):
                 package=package), sudo=True)
 
 def kill_process(ssh, process):
@@ -103,24 +103,32 @@ def main():
             uninstall_package(ssh, 'honeycomb')
 
             # Remove HC logs.
             uninstall_package(ssh, 'honeycomb')
 
             # Remove HC logs.
-            execute_command_ssh(ssh, 'rm -rf /var/log/honeycomb',
-                                sudo=True)
+            execute_command_ssh(
+                ssh, 'rm -rf /var/log/honeycomb', sudo=True)
 
             # Kill all containers.
 
             # Kill all containers.
-            execute_command_ssh(ssh, 'docker rm --force $(sudo docker ps -q)',
-                                sudo=True)
+            execute_command_ssh(
+                ssh, 'docker rm --force $(sudo docker ps -q)', sudo=True)
 
             # Destroy kubernetes.
 
             # Destroy kubernetes.
-            execute_command_ssh(ssh, 'kubeadm reset --force',
-                                sudo=True)
+            execute_command_ssh(
+                ssh, 'kubeadm reset --force', sudo=True)
 
             # Remove corefiles leftovers.
 
             # Remove corefiles leftovers.
-            execute_command_ssh(ssh, 'rm -f /tmp/*tar.lzo.lrz.xz*',
-                                sudo=True)
+            execute_command_ssh(
+                ssh, 'rm -f /tmp/*tar.lzo.lrz.xz*', sudo=True)
 
             # Remove corefiles leftovers.
 
             # Remove corefiles leftovers.
-            execute_command_ssh(ssh, 'rm -f /tmp/*core*',
-                                sudo=True)
+            execute_command_ssh(
+                ssh, 'rm -f /tmp/*core*', sudo=True)
+
+            # Set interfaces in topology down.
+            for interface in topology[node]['interfaces']:
+                pci = topology[node]['interfaces'][interface]['pci_address']
+                execute_command_ssh(
+                    ssh, "ip link set "
+                    "$(basename /sys/bus/pci/devices/{pci}/net/*) down".
+                    format(pci=pci), sudo=True)
 
 
 if __name__ == "__main__":
 
 
 if __name__ == "__main__":