def flavor(service: str) -> list: """ Lists the flavors on the cloud service :param service: The name of the service :return: the information in json format """ provider = Provider(name=service) result = provider.flavors() if flat and result: result = provider.Prints(result, kind="vm", output="flat") return result
class TestName: def setup(self): print() self.user = Config()["cloudmesh"]["profile"]["user"] self.clouduser = '******' self.name_generator = Name(experiment="exp", group="grp", user=self.user, kind="vm", counter=1) self.name = str(self.name_generator) self.name_generator.incr() self.new_name = str(self.name_generator) variables = Variables() cloud = variables['cloud'] self.p = Provider(name=cloud) self.secgroupname = "CM4TestSecGroup" self.secgrouprule = { "ip_protocol": "tcp", "from_port": 8080, "to_port": 8088, "ip_range": "129.79.0.0/16" } self.testnode = None print("\n") def test_01_list_flavors(self): HEADING() flavors = self.p.flavors() def test_02_list_images(self): HEADING() flavors = self.p.images() def test_03_list_keys(self): HEADING() self.keys = self.p.keys() def test_03_list_nodes(self): HEADING() self.keys = self.p.list()
def do_flavor(self, args, arguments): """ :: Usage: flavor list [NAMES] [--cloud=CLOUD] [--refresh] [--output=OUTPUT] Options: --output=OUTPUT the output format [default: table] --cloud=CLOUD the ycloud name --refresh refreshes the data before displaying it Description: This lists out the flavors present for a cloud Examples: cm flavor list --refresh cm flavor list cm flavor list --output=csv cm flavor list 58c9552c-8d93-42c0-9dea-5f48d90a3188 --refresh please remember that a uuid or the flavor name can be used to identify a flavor. """ map_parameters(arguments, "refresh", "cloud", "output") variables = Variables() arguments.output = Parameter.find("output", arguments, variables, "table") arguments.refresh = Parameter.find_bool("refresh", arguments, variables) if arguments.list and arguments.refresh: names = [] clouds, names = Arguments.get_cloud_and_names("list", arguments, variables) for cloud in clouds: print(f"cloud {cloud}") provider = Provider(name=cloud) flavors = provider.flavors() provider.Print(flavors, output=arguments.output, kind="flavor") return "" elif arguments.list: names = [] clouds, names = Arguments.get_cloud_and_names("list", arguments, variables) print(clouds, names) try: for cloud in clouds: print(f"List {cloud}") provider = Provider(cloud) db = CmDatabase() flavors = db.find(collection=f"{cloud}-flavor") provider.Print(flavors, output=arguments.output, kind="flavor") except Exception as e: VERBOSE(e) return ""
def do_flavor(self, args, arguments): """ :: Usage: flavor list [NAMES] [--cloud=CLOUD] [--refresh] [--output=OUTPUT] [--query=QUERY] Options: --output=OUTPUT the output format [default: table] --cloud=CLOUD the ycloud name --refresh refreshes the data before displaying it Description: This lists out the flavors present for a cloud Examples: cm flavor list --refresh cm flavor list cm flavor list --output=csv cm flavor list 58c9552c-8d93-42c0-9dea-5f48d90a3188 --refresh please remember that a uuid or the flavor name can be used to identify a flavor. cms flavor list --refresh --query=\'{\"a\": \"b\"}\' OpenStack Query Example: cms flavor list --refresh --query=\'{\"minDisk\": \"80\"}\' cms flavor list --refresh --query=\'{\"name\": \"m1.large\"}\' supported query parameters for OpenStack: min_disk min_ram name """ map_parameters(arguments, "query", "refresh", "cloud", "output") variables = Variables() arguments.output = Parameter.find("output", arguments, variables, "table") arguments.refresh = Parameter.find_bool("refresh", arguments, variables) if arguments.list and arguments.refresh: names = [] clouds, names = Arguments.get_cloud_and_names( "list", arguments, variables) for cloud in clouds: print(f"cloud {cloud} query={arguments.query}") provider = Provider(name=cloud) if arguments.query is not None: query = eval(arguments.query) flavors = provider.flavors(**query) else: flavors = provider.flavors() provider.Print(flavors, output=arguments.output, kind="flavor") return "" elif arguments.list: names = [] clouds, names = Arguments.get_cloud_and_names( "list", arguments, variables) try: for cloud in clouds: if arguments.output in ["table"]: print(f"List {cloud}") provider = Provider(name=cloud) db = CmDatabase() flavors = db.find(collection=f"{cloud}-flavor") provider.Print(flavors, output=arguments.output, kind="flavor") except Exception as e: VERBOSE(e) return ""
class Test_Compute_Database: def setup(self): print() self.user = Config()["cloudmesh"]["profile"]["user"] self.clouduser = '******' self.name_generator = Name(experiment="exp", group="grp", user=self.user, kind="vm", counter=1) self.name = str(self.name_generator) self.name_generator.incr() self.new_name = str(self.name_generator) variables = Variables() clouds = Parameter.expand(variables['cloud']) cloud = clouds[0] self.p = Provider(name=cloud) self.secgroupname = "CM4TestSecGroup" self.secgrouprule = { "ip_protocol": "tcp", "from_port": 8080, "to_port": 8088, "ip_range": "129.79.0.0/16" } self.testnode = None print("\n") def test_00_banner(self): StopWatch.start("banner") banner("START", color="RED") StopWatch.stop("banner") def test_01_list_flavors(self): HEADING() StopWatch.start("list flavors") flavors = self.p.flavors() StopWatch.stop("list flavors") def test_02_list_images(self): HEADING() StopWatch.start("list images") images = self.p.images() StopWatch.stop("list images") def test_03_list_nodes(self): HEADING() StopWatch.start("list nodes") nodes = self.p.list() StopWatch.stop("list nodes") def test_04_list_keys(self): HEADING() StopWatch.start("list keys") self.keys = self.p.keys() # pprint(self.keys) # print(Printer.flatwrite(self.keys, # sort_keys=["name"], # order=["name", "fingerprint"], # header=["Name", "Fingerprint"]) # ) StopWatch.stop("list keys") def test_05_key_upload(self): HEADING() StopWatch.start("key upload") key = SSHkey() print(key.__dict__) self.p.key_upload(key) self.test_04_list_keys() StopWatch.stop("key upload") def test_06_list_images(self): HEADING() StopWatch.start("list images2") images = self.p.images() # pprint(images) sort_keys = self.p.p.output['image']['sort_keys'] # not pretty order = self.p.p.output['image']['order'] # not pretty header = self.p.p.output['image']['header'] # not pretty print( Printer.flatwrite(images, sort_keys=sort_keys, order=order, header=header)) StopWatch.stop("list images2") def test_07_list_vm(self): HEADING() StopWatch.start("list vm") vms = self.p.list() # pprint (vms) sort_keys = self.p.p.output['vm']['sort_keys'] # not pretty order = self.p.p.output['vm']['order'] # not pretty header = self.p.p.output['vm']['header'] # not pretty print( Printer.flatwrite(vms, sort_keys=sort_keys, order=order, header=header)) StopWatch.stop("list vm") def test_print(self): HEADING() StopWatch.benchmark()
class TestDatabase: def setup(self): print() self.user = Config()["cloudmesh"]["profile"]["user"] self.clouduser = '******' self.name_generator = Name(experiment="exp", group="grp", user=self.user, kind="vm", counter=1) self.name = str(self.name_generator) self.name_generator.incr() self.new_name = str(self.name_generator) variables = Variables() clouds = Parameter.expand(variables['cloud']) cloud = clouds[0] self.p = Provider(name=cloud) self.secgroupname = "CM4TestSecGroup" self.secgrouprule = { "ip_protocol": "tcp", "from_port": 8080, "to_port": 8088, "ip_range": "129.79.0.0/16" } self.testnode = None print("\n") def test_00_banner(self): banner("START", color="RED") def test_01_list_flavors(self): HEADING() flavors = self.p.flavors() def test_02_list_images(self): HEADING() images = self.p.images() def test_03_list_nodes(self): HEADING() nodes = self.p.list() def test_04_list_keys(self): HEADING() self.keys = self.p.keys() # pprint(self.keys) #print(Printer.flatwrite(self.keys, # sort_keys=("name"), # order=["name", "fingerprint"], # header=["Name", "Fingerprint"]) # ) def test_05_key_upload(self): HEADING() key = SSHkey() print(key.__dict__) self.p.key_upload(key) self.test_04_list_keys() def test_06_list_images(self): HEADING() images = self.p.images() #pprint(images) print( Printer.flatwrite( images, sort_keys=("name", "extra.minDisk"), order=["name", "extra.minDisk", "updated", "driver"], header=["Name", "MinDisk", "Updated", "Driver"])) def test_07_list_vm(self): HEADING() vms = self.p.list() #pprint (vms) print( Printer.flatwrite(vms, sort_keys=("name"), order=[ "name", "state", "extra.task_state", "extra.vm_state", "extra.userId", "extra.key_name", "private_ips", "public_ips" ], header=[ "Name", "State", "Task state", "VM state", "User Id", "SSHKey", "Private ips", "Public ips" ]))