X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Ftopo_installation.py;h=f445a965cfbcba000154b77d5844437840a97420;hp=7fb60aca1507636a52cd0e24bada96e419c664df;hb=7db13c550198c1954052ce51aae1283b3f277d05;hpb=4ae37074a3e74bd6fdcd606d1553b99131372c84 diff --git a/resources/tools/topo_installation.py b/resources/tools/topo_installation.py index 7fb60aca15..f445a965cf 100755 --- a/resources/tools/topo_installation.py +++ b/resources/tools/topo_installation.py @@ -23,17 +23,22 @@ from yaml import load from resources.libraries.python.ssh import SSH def main(): + """Copy and installation of VPP packages.""" + parser = argparse.ArgumentParser() parser.add_argument("-t", "--topo", required=True, help="Topology file") parser.add_argument("-d", "--directory", required=True, help="Installation directory") - parser.add_argument("-p", "--packages", required=True, nargs='+', + parser.add_argument("-p", "--packages", required=False, nargs='+', help="Packages paths to copy") + parser.add_argument("-c", "--cancel", help="Cancel installation", + action="store_true") args = parser.parse_args() topology_file = args.topo packages = args.packages install_dir = args.directory + cancel_installation = args.cancel work_file = open(topology_file) topology = load(work_file.read())['nodes'] @@ -43,15 +48,27 @@ def main(): ssh = SSH() ssh.connect(topology[node]) - # Copy packages from local path to installation dir - for deb in packages: - ssh.scp(local_path=deb,remote_path=install_dir) + if cancel_installation: + ret, _, err = ssh.exec_command("rm -r {}".format(install_dir)) + if ret != 0: + print "Cancel unsuccessful:\n{}".format(err) + return ret + else: + ret, _, err = ssh.exec_command("mkdir {}".format(install_dir)) + if ret != 0: + print "Mkdir unsuccessful:\n{}".format(err) + return ret + + # Copy packages from local path to installation dir + for deb in packages: + ssh.scp(local_path=deb, remote_path=install_dir) - # Installation of VPP deb packages - ret, _, err = ssh.exec_command("dpkg -i {}*.deb".format(install_dir)) - if ret != 0: - print("Installation unsuccessful:\n{}".format(err)) - return ret + # Installation of VPP deb packages + ret, _, err = ssh.exec_command_sudo( + "dpkg -i {}/*.deb".format(install_dir)) + if ret != 0: + print "Installation unsuccessful:\n{}".format(err) + return ret if __name__ == "__main__": sys.exit(main())