def _grep(self, search, platform):
     if not search:
         search = "'OS_PASSWORD': '******'"
     cmd = "egrep -ri \"{0}\" * | cut -d\":\" -f1 > a.tmp".format(search)
     print("[{0}]:{1}".format(platform, cmd))
     os.system(cmd)
     res = Shell.cat("a.tmp")
     if res:
         print('[{0}]: [ERROR] PASSWORD(OR SECRET KEY) DETECTED, SEE FILES '
               'BELOW'.format(platform))
         print("")
         print(res)
     else:
         print("[{0}]: NO PASSWORD DETECTED".format(platform))
     Shell.rm("a.tmp")
     print("")
示例#2
0
 def _grep(self, search, platform):
   if not search:
       search = "'OS_PASSWORD': '******'"
   cmd = "egrep -ri \"{0}\" * | cut -d\":\" -f1 > a.tmp".format(search)
   print("[{0}]:{1}".format(platform, cmd))
   os.system(cmd)
   res = Shell.cat("a.tmp")
   if res:
       print ('[{0}]: [ERROR] PASSWORD(OR SECRET KEY) DETECTED, SEE FILES '
              'BELOW'.format(platform))
       print ("")
       print (res)
   else:
       print ("[{0}]: NO PASSWORD DETECTED".format(platform))
   Shell.rm("a.tmp")
   print ("")
示例#3
0
def do_vbox(argv):
    """
    ::

      Usage:
        vbox version [--format=FORMAT]
        vbox image list [--format=FORMAT]
        vbox image find NAME
        vbox image add NAME
        vbox vm list [--format=FORMAT] [-v]
        vbox vm delete NAME
        vbox vm config NAME
        vbox vm ip NAME [--all]
        vbox create NAME ([--memory=MEMORY]
                          [--image=IMAGE]
                          [--script=SCRIPT] | list)
        vbox vm boot NAME ([--memory=MEMORY]
                           [--image=IMAGE]
                           [--port=PORT]
                           [--script=SCRIPT] | list)
        vbox vm ssh NAME [-e COMMAND]
    """
    arg = dotdict(docopt(do_vbox.__doc__, argv))
    arg.format = arg["--format"] or "table"
    arg.verbose = arg["-v"]
    arg.all = arg["--all"]

    if arg.version:
        versions = {
            "vagrant": {
               "attribute": "Vagrant Version",
                "version": vagrant.version(),
            },
            "cloudmesh-vbox": {
                "attribute":"cloudmesh vbox Version",
                "version": __version__
            }
        }
        _LIST_PRINT(versions, arg.format)

    elif arg.image and arg.list:
        l = vagrant.image.list(verbose=arg.verbose)
        _LIST_PRINT(l, arg.format, order=["name", "provider", "date"])

    elif arg.image and arg.add:
        l = vagrant.image.add(arg.NAME)
        print(l)

    elif arg.image and arg.find:
        l = vagrant.image.find(arg.NAME)
        print(l)

    elif arg.vm and arg.list:
        l = vagrant.vm.list()
        _LIST_PRINT(l,
                   arg.format,
                   order=["name", "state", "id", "provider", "directory"])

    elif arg.create and arg.list:

        result = Shell.cat("{NAME}/Vagrantfile".format(**arg))
        print (result)

    elif arg.create:

        d = defaults()

        arg.memory = arg["--memory"] or d.memory
        arg.image = arg["--image"] or d.image
        arg.script = arg["--script"] or d.script

        vagrant.vm.create(
            name=arg.NAME,
            memory=arg.memory,
            image=arg.image,
            script=arg.script)

    elif arg.config:

        # arg.NAME
        d = vagrant.vm.info(name=arg.NAME)

        result = Printer.attribute(d, output=arg.format)

        print (result)

    elif arg.ip:

        data = []
        result = vagrant.vm.execute(arg.NAME, "ifconfig")
        if result is not None:
            lines = result.splitlines()[:-1]
            for line in lines:
                if "inet addr" in line:
                    line = line.replace("inet addr", "ip")
                    line = ' '.join(line.split())
                    _adresses = line.split(" ")
                    address = {}
                    for element in _adresses:
                        attribute, value = element.split(":")
                        address[attribute] = value
                    data.append(address)
        if arg.all:
            d = {}
            i = 0
            for e in data:
                d[str(i)] = e
                i = i + 1
            result = Printer.attribute(d, output=arg.format)
            print(result)
        else:
            for element in data:
                ip = element['ip']
                if  ip == "127.0.0.1" or ip.startswith("10."):
                    pass
                else:
                    print (element['ip'])


    elif arg.boot:

        d = defaults()

        arg.memory = arg["--memory"] or d.memory
        arg.image = arg["--image"] or d.image
        arg.script = arg["--script"] or d.script
        arg.port = arg["--port"] or d.port

        vagrant.vm.boot(
            name=arg.NAME,
            memory=arg.memory,
            image=arg.image,
            script=arg.script,
            port=arg.port)

    elif arg.delete:

        result = vagrant.vm.delete(name=arg.NAME)
        print(result)

    elif arg.ssh:

        if arg.COMMAND is None:
            os.system("cd {NAME}; vagrant ssh {NAME}".format(**arg))
        else:
            result = vagrant.vm.execute(arg.NAME, arg.COMMAND)
            if result is not None:
                lines = result.splitlines()[:-1]
                for line in lines:
                    print (line)

    else:

        print ("use help")
示例#4
0
    def do_vagrant(self, args, arguments):
        """
        ::
    
          Usage:
            vagrant version [--format=FORMAT]
            vagrant image list [--format=FORMAT]
            vagrant image find NAME
            vagrant image add NAME
            vagrant vm list [--format=FORMAT] [-v]
            vagrant vm delete NAME
            vagrant vm config NAME
            vagrant vm ip NAME [--all]
            vagrant create NAME ([--memory=MEMORY]
                              [--image=IMAGE]
                              [--script=SCRIPT] | list)
            vagrant vm boot NAME ([--memory=MEMORY]
                               [--image=IMAGE]
                               [--port=PORT]
                               [--script=SCRIPT] | list)
            vagrant vm ssh NAME [-e COMMAND]
        """
        arguments.format = arguments["--format"] or "table"
        arguments.verbose = arguments["-v"]
        arguments.all = arguments["--all"]
        """
        if arg.version:
            versions = {
                "vagrant": {
                   "attribute": "Vagrant Version",
                    "version": vagrant.version(),
                },
                "cloudmesh-vagrant ": {
                    "attribute":"cloudmesh vagrant  Version",
                    "version": __version__
                }
            }
            _LIST_PRINT(versions, arg.format)
        """
        if arguments.image and arguments.list:
            l = vagrant.image.list(verbose=arguments.verbose)
            _list_print(l,
                        arguments.format,
                        order=["name", "provider", "date"])

        elif arguments.image and arguments.add:
            l = vagrant.image.add(arguments.NAME)
            print(l)

        elif arguments.image and arguments.find:
            l = vagrant.image.find(arguments.NAME)
            print(l)

        elif arguments.vm and arguments.list:
            l = vagrant.vm.list()
            _list_print(l,
                        arguments.format,
                        order=["name", "state", "id", "provider", "directory"])

        elif arguments.create and arguments.list:

            result = Shell.cat("{NAME}/Vagrantfile".format(**arguments))
            print(result)

        elif arguments.create:

            d = defaults()

            arguments.memory = arguments["--memory"] or d.memory
            arguments.image = arguments["--image"] or d.image
            arguments.script = arguments["--script"] or d.script

            vagrant.vm.create(name=arguments.NAME,
                              memory=arguments.memory,
                              image=arguments.image,
                              script=arguments.script)

        elif arguments.config:

            # arguments.NAME
            d = vagrant.vm.info(name=arguments.NAME)

            result = Printer.attribute(d, output=arguments.format)

            print(result)

        elif arguments.ip:

            data = []
            result = vagrant.vm.execute(arguments.NAME, "ifconfig")
            if result is not None:
                lines = result.splitlines()[:-1]
                for line in lines:
                    if "inet addr" in line:
                        line = line.replace("inet addr", "ip")
                        line = ' '.join(line.split())
                        _adresses = line.split(" ")
                        address = {}
                        for element in _adresses:
                            attribute, value = element.split(":")
                            address[attribute] = value
                        data.append(address)
            if arguments.all:
                d = {}
                i = 0
                for e in data:
                    d[str(i)] = e
                    i = i + 1
                result = Printer.attribute(d, output=arguments.format)
                print(result)
            else:
                for element in data:
                    ip = element['ip']
                    if ip == "127.0.0.1" or ip.startswith("10."):
                        pass
                    else:
                        print(element['ip'])

        elif arguments.boot:

            d = defaults()

            arguments.memory = arguments["--memory"] or d.memory
            arguments.image = arguments["--image"] or d.image
            arguments.script = arguments["--script"] or d.script
            arguments.port = arguments["--port"] or d.port

            vagrant.vm.boot(name=arguments.NAME,
                            memory=arguments.memory,
                            image=arguments.image,
                            script=arguments.script,
                            port=arguments.port)

        elif arguments.delete:

            result = vagrant.vm.delete(name=arguments.NAME)
            print(result)

        elif arguments.ssh:

            if arguments.COMMAND is None:
                os.system("cd {NAME}; vagrant ssh {NAME}".format(**arguments))
            else:
                result = vagrant.vm.execute(arguments.NAME, arguments.COMMAND)
                if result is not None:
                    lines = result.splitlines()[:-1]
                    for line in lines:
                        print(line)

        else:

            print("use help")