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 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)
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
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
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
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)
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
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 }
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)