topo_installation -c shouldn't fail if rmdir fails 85/3585/2
authorMiroslav Miklus <mmiklus@cisco.com>
Wed, 26 Oct 2016 09:48:10 +0000 (11:48 +0200)
committerPeter Mikus <pmikus@cisco.com>
Sat, 29 Oct 2016 13:28:14 +0000 (13:28 +0000)
Change-Id: Ie24a1d4f9b8ef698b8dba9d1fcbb32476a1df2bb
Signed-off-by: Miroslav Miklus <mmiklus@cisco.com>
resources/tools/topo_installation.py

index 2931926..3e3fda8 100755 (executable)
@@ -47,6 +47,28 @@ def ssh_no_error(ssh, cmd, sudo=False):
 
     return stdo
 
 
     return stdo
 
+def ssh_ignore_error(ssh, cmd, sudo=False):
+    """Execute a command over ssh channel, ignore errors.
+
+    :param ssh: SSH() object connected to a node.
+    :param cmd: Command line to execute on remote node.
+    :type ssh: SSH() object
+    :type cmd: str
+    :return: stdout from the SSH command.
+    :rtype: str
+    """
+
+    if sudo:
+        ret, stdo, stde = ssh.exec_command_sudo(cmd)
+    else:
+        ret, stdo, stde = ssh.exec_command(cmd)
+
+    if ret != 0:
+        print 'Command execution failed: "{}"'.format(cmd)
+        print 'stdout: {0}'.format(stdo)
+        print 'stderr: {0}'.format(stde)
+
+    return stdo
 
 def main():
     """Copy and installation of VPP packages."""
 
 def main():
     """Copy and installation of VPP packages."""
@@ -78,7 +100,7 @@ def main():
             if cancel_installation:
                 # Remove installation directory on DUT
                 cmd = "rm -r {}".format(install_dir)
             if cancel_installation:
                 # Remove installation directory on DUT
                 cmd = "rm -r {}".format(install_dir)
-                stdout = ssh_no_error(ssh, cmd)
+                stdout = ssh_ignore_error(ssh, cmd)
                 print "###TI {}".format(stdout)
 
                 cmd = "dpkg -l | grep vpp"
                 print "###TI {}".format(stdout)
 
                 cmd = "dpkg -l | grep vpp"