Loading bin/install_pkg.py +35 −19 Original line number Diff line number Diff line #!/usr/bin/python import qi import warnings # /usr/local/lib/python2.7/dist-packages/cryptography/__init__.py # Python 2 is not supported warning warnings.simplefilter("ignore", lineno=33) import paramiko import os import sys Loading Loading @@ -38,7 +42,7 @@ def ssh_connect (ssh): client.connect(**cfg) return (client) def main(ip, port, ssh, listapps=False, packages = []): def main(ip, port, ssh, listapps=False, removeapps=False, packages = []): if ssh is None: ssh = ip print "Connecting NAOqi session" Loading @@ -47,19 +51,29 @@ def main(ip, port, ssh, listapps=False, packages = []): session = app.session packagemgr = session.service("PackageManager") if listapps: print "Listing the current applications" apps_data = [] if listapps or removeapps: if listapps: print "Listing the current applications" else: print "Obtaining the list of applications" try: apps_json = packagemgr.packages() apps = ["\t{}\t{}".format(a['uuid'],a['version']) for a in apps_json] print '\n'.join(apps) #print ' '+repr(apps_json) apps_data = packagemgr.packages() apps = ["\t{}\t{}".format(a['uuid'],a['version']) for a in apps_data] if listapps: print '\n'.join(apps) #print ' '+repr(apps_data) except Exception as err: print "error: {}".format(err) else: if not listapps or removeapps: sshc = ssh_connect(ssh) sftp = sshc.open_sftp() for pkg_file in packages: if removeapps: apps = [a['uuid'] for a in apps_data] if pkg_file in apps: print ("Removing {}".format(pkg_file)) packagemgr.removePkg(pkg_file) else: print "Package {} not installed".format(pkg_file) else: pkg_path = os.path.abspath(pkg_file) pkg_file = os.path.basename(pkg_file) print "Uploading PKG {} as {}".format(pkg_path,pkg_file) Loading Loading @@ -92,10 +106,12 @@ if __name__ == "__main__": parser.add_argument("--ssh", type=str, default=ROBOT_DEF_SSH, help="Robot SSH hostname") parser.add_argument("-l", "--list", action='store_true', help="List installed applications") parser.add_argument("-r", "--remove", action='store_true', help="Remove the listed application(s)/package(s)") parser.add_argument('packages', nargs='*', help="Package(s) to install") args = parser.parse_args() main(args.ip, args.port, args.ssh, args.list, args.packages) main(args.ip, args.port, args.ssh, args.list, args.remove, args.packages) finally: logging.info(log_message) Loading
bin/install_pkg.py +35 −19 Original line number Diff line number Diff line #!/usr/bin/python import qi import warnings # /usr/local/lib/python2.7/dist-packages/cryptography/__init__.py # Python 2 is not supported warning warnings.simplefilter("ignore", lineno=33) import paramiko import os import sys Loading Loading @@ -38,7 +42,7 @@ def ssh_connect (ssh): client.connect(**cfg) return (client) def main(ip, port, ssh, listapps=False, packages = []): def main(ip, port, ssh, listapps=False, removeapps=False, packages = []): if ssh is None: ssh = ip print "Connecting NAOqi session" Loading @@ -47,19 +51,29 @@ def main(ip, port, ssh, listapps=False, packages = []): session = app.session packagemgr = session.service("PackageManager") if listapps: print "Listing the current applications" apps_data = [] if listapps or removeapps: if listapps: print "Listing the current applications" else: print "Obtaining the list of applications" try: apps_json = packagemgr.packages() apps = ["\t{}\t{}".format(a['uuid'],a['version']) for a in apps_json] print '\n'.join(apps) #print ' '+repr(apps_json) apps_data = packagemgr.packages() apps = ["\t{}\t{}".format(a['uuid'],a['version']) for a in apps_data] if listapps: print '\n'.join(apps) #print ' '+repr(apps_data) except Exception as err: print "error: {}".format(err) else: if not listapps or removeapps: sshc = ssh_connect(ssh) sftp = sshc.open_sftp() for pkg_file in packages: if removeapps: apps = [a['uuid'] for a in apps_data] if pkg_file in apps: print ("Removing {}".format(pkg_file)) packagemgr.removePkg(pkg_file) else: print "Package {} not installed".format(pkg_file) else: pkg_path = os.path.abspath(pkg_file) pkg_file = os.path.basename(pkg_file) print "Uploading PKG {} as {}".format(pkg_path,pkg_file) Loading Loading @@ -92,10 +106,12 @@ if __name__ == "__main__": parser.add_argument("--ssh", type=str, default=ROBOT_DEF_SSH, help="Robot SSH hostname") parser.add_argument("-l", "--list", action='store_true', help="List installed applications") parser.add_argument("-r", "--remove", action='store_true', help="Remove the listed application(s)/package(s)") parser.add_argument('packages', nargs='*', help="Package(s) to install") args = parser.parse_args() main(args.ip, args.port, args.ssh, args.list, args.packages) main(args.ip, args.port, args.ssh, args.list, args.remove, args.packages) finally: logging.info(log_message)