Commit 5a941192 authored by Aleš Horák's avatar Aleš Horák
Browse files

* ignore Python 2 warning

* option '-r' to remove an application/package
parent 27bb3c31
Loading
Loading
Loading
Loading
+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
@@ -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"
@@ -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)
@@ -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)