Exemplo n.º 1
0
    def __init__(self):
        self.command_helper = OSCommandHelper(skip_cache=True)
        self.resource_outputfile = "/tmp/osresource.txt"
        self.images = None
        self.flavors = None
        self.networks = None

        self.populate_images()
        self.populate_flavors()
        self.populate_networks()
Exemplo n.º 2
0
    def test_cachekey_from_cmdlist(self):
        print "Test api to get cachekey from cmdlist"
        cmdhelper = OSCommandHelper()
        self.failUnless(cmdhelper is not None)

        cmdlist = ""
        cachekey = cmdhelper.get_cachekey_from_cmdlist(cmdlist)
        print "cachekey:", cachekey, "len: ", len(cachekey)

        cmdlist = ["server", "create"]
        cachekey = cmdhelper.get_cachekey_from_cmdlist(cmdlist)
        print "cachekey:", cachekey, "len: ", len(cachekey)
Exemplo n.º 3
0
    def test_get_command_options_server(self):
        print "Test get_command_options - level 2"
        cmdhelper = OSCommandHelper()
        self.failUnless(cmdhelper is not None)

        result = cmdhelper.get_command_options(["server"])
        self.failUnless(result == 0)

        for option in cmdhelper.optional_arguments:
            print "Option: ", option[0]

        for cmd in cmdhelper.commands:
            print "Command: ", cmd
Exemplo n.º 4
0
    def get_command_options(self, cmdlist):
        cmdhelper = OSCommandHelper()
        self.failUnless(cmdhelper is not None)

        result = cmdhelper.get_command_options(cmdlist)
        self.failUnless(result == 0)

        for option in cmdhelper.optional_arguments:
            print "Option: ", option[0]

        for option in cmdhelper.positional_arguments:
            print "%s: %s" % (option[0], option[1])

        for cmd in cmdhelper.commands:
            print "Command: ", cmd
Exemplo n.º 5
0
    def test_trigger_openstack_cli_flavor(self):
        print "Test trigger openstack cli - flavor list"
        cmd = "flavor list --format json".split()
        output_file = "/tmp/osresource.txt"
        cmdhelper = OSCommandHelper()
        self.failUnless(cmdhelper is not None)

        cmdhelper.trigger_openstack_cli(cmd,
                                        output_file=output_file)
        with open(output_file, "r") as resource_file:
            try:
                data = json.loads(resource_file.read())
            except ValueError:
                data = None

        print "Data: ", data
Exemplo n.º 6
0
def process_document(document):
    '''
    Process the executed command.
    '''

    # Check for any exit criterias.
    if document.text == "quit" or document.text == "exit":
        print "Exit now!"
        sys.exit()

    if len(document.text) == 0:
        return

    # Perform our operation.
    cmdlist = document.text.split(" ")
    os_cmdhandler = OSCommandHelper(skip_cache=True)
    os_cmdhandler.execute_openstack_cli(cmdlist)
Exemplo n.º 7
0
    def test_get_command_options_cached(self):
        print "Test get command options - cached"
        cmdhelper = OSCommandHelper()
        self.failUnless(cmdhelper is not None)

        result = cmdhelper.get_command_options("")
        self.failUnless(result == 0)
        for cmd in cmdhelper.commands:
            print "Command: ", cmd

        print "Second invocation will get from cache......."
        result = cmdhelper.get_command_options("")
        self.failUnless(result == 0)
        for cmd in cmdhelper.commands:
            print "Command: ", cmd

        result = cmdhelper.get_command_options(["server"])
        self.failUnless(result == 0)
        for cmd in cmdhelper.commands:
            print "Command: ", cmd
Exemplo n.º 8
0
    def __init__(self):
        history = InMemoryHistory()
        os_commandhelper = OSCommandHelper()
        resource = Resource()
        os_completer = OSCompleter(os_commandhelper, resource)

        self.main_buffer = Buffer(
            accept_action=AcceptAction.RETURN_DOCUMENT,
            history=history,
            auto_suggest=AutoSuggestFromHistory(),
            completer=os_completer,
            complete_while_typing=True)

        self.help_buffer = Buffer(
            is_multiline=True)
        self.help_buffer.text = "HELP"

        os_completer.help_buffer = self.help_buffer

        self.buffers = {
            DEFAULT_BUFFER: self.main_buffer,
            'HELP': self.help_buffer
        }
Exemplo n.º 9
0
class Resource(object):
    def __init__(self):
        self.command_helper = OSCommandHelper(skip_cache=True)
        self.resource_outputfile = "/tmp/osresource.txt"
        self.images = None
        self.flavors = None
        self.networks = None

        self.populate_images()
        self.populate_flavors()
        self.populate_networks()

    def populate_images(self):
        cmd = "image list --format json".split()
        print "Cache images.."
        self.command_helper.trigger_openstack_cli(
            cmd,
            output_file=self.resource_outputfile)

        with open(self.resource_outputfile, "r") as resource_file:
            try:
                self.images = json.loads(resource_file.read())
            except ValueError:
                self.images = None

    def populate_flavors(self):
        cmd = "flavor list --format json".split()
        print "Cache flavors.."
        self.command_helper.trigger_openstack_cli(
            cmd,
            output_file=self.resource_outputfile)
        with open(self.resource_outputfile, "r") as resource_file:
            try:
                self.flavors = json.loads(resource_file.read())
            except ValueError:
                self.flavors = None

    def populate_networks(self):
        cmd = "network list --format json".split()
        print "Cache Networks.."
        self.command_helper.trigger_openstack_cli(
            cmd,
            output_file=self.resource_outputfile)
        with open(self.resource_outputfile, "r") as resource_file:
            try:
                self.networks = json.loads(resource_file.read())
            except ValueError:
                self.networks = None

    def get_image_list(self):
        '''
        Return the list of image names.
        '''
        image_names = []

        if self.images is None:
            return (1, image_names)

        for obj in self.images:
            image_names.append(obj['Name'])

        return (0, image_names)

    def get_flavor_list(self):
        '''
        Return list of flavors.
        '''
        flavor_names = []

        if self.flavors is None:
            return (1, flavor_names)

        for obj in self.flavors:
            flavor_names.append(obj['Name'])

        return (0, flavor_names)

    def get_network_list(self):
        network_ids = []

        if self.networks is None:
            return (1, network_ids)

        for obj in self.networks:
            netid_str = "net-id=%s" % obj['ID']
            network_ids.append(netid_str)

        return (0, network_ids)