def test_get_project(self): os.chdir("tests") default_file = orch.check_manifest_file() os.chdir(os.pardir) assert utils.get_project(default_file) == [ 'unittest-network', 'unittest-vm', 'unittest-key' ]
def execute(self): headers = ["ID", "Name", "Status", "Created", "Updated"] set_file = self.args["--file"] default_file = orch.check_manifest_file() if set_file: if os.path.exists(set_file): default_file = set_file else: utils.log_err("{} file is not exists!".format(set_file)) exit() if not default_file: utils.log_err("Can't find neo.yml manifest file!") exit() deploy_init = orch.initialize(default_file) try: orch.do_update(deploy_init) except: utils.log_err("Update Stack failed...") exit() projects = utils.get_project(default_file) project_list = list() for project in projects: proj = orch.get_stack(project) if proj: project_list.append(proj) if len(project_list) > 0: print(tabulate(project_list, headers=headers, tablefmt="grid"))
def test_get_project(self): current_path = path.abspath(path.dirname(__file__)) parent_path = pathlib.Path(current_path).parent assert ["awesome-project" ] == utils.get_project(f"{parent_path}/fixtures/manifest.yml")
def execute(self): set_file = self.args["--file"] default_file = orch.check_manifest_file() if self.args["vm"]: instance_id = self.args["<VM_ID>"] try: q_vm = utils.question( "Are you sure to delete this virtual machines ? ") if q_vm: vm_lib.do_delete(instance_id) utils.log_info("VM has been deleted") except Exception as e: utils.log_err(e) else: pass finally: pass exit() if self.args["network"]: network_id = self.args["<NETWORK_ID>"] try: q_net = utils.question("Are you sure to delete this network ?") if q_net: network_lib.do_delete(network_id) utils.log_info("network has been deleted") except Exception as e: utils.log_err(e) else: pass finally: pass exit() if self.args["stack"]: stack_name = self.args["<STACK_NAME>"] try: q_stack = utils.question( 'Are you sure to delete "{}" stack ? '.format(stack_name)) if q_stack: proj = orch.do_delete(stack_name) if proj: utils.log_info( "Stack {} has been deleted".format(stack_name)) else: utils.log_err( "Stack {} is not exists".format(stack_name)) except Exception as e: utils.log_err(e) else: pass finally: pass exit() if set_file: if os.path.exists(set_file): default_file = "{}".format(set_file) else: utils.log_err("{} file is not exists!".format(set_file)) print(self.__doc__) exit() if not default_file: utils.log_err("Can't find neo.yml manifest file!") print(self.__doc__) exit() projects = utils.get_project(default_file) project_answer = ",".join(projects) q_project = utils.question( "Are you sure to delete {} ? ".format(project_answer)) if q_project: for project in projects: proj = orch.do_delete(project) if proj: utils.log_info("Stack {} has been deleted".format(project)) else: utils.log_err("Stack {} is not exists".format(project))
def execute(self): headers = ["ID", "Name", "Status", "Created", "Updated"] if self.args["stack"]: print(tabulate(orch.get_list(), headers=headers, tablefmt="grid")) exit() set_file = self.args["--file"] default_file = orch.check_manifest_file() if self.args["vm"]: try: data_instance = list() for instance in vm_lib.get_list(): pre_instance = [ instance.id, instance.name, instance.key_name ] pre_instance.append( image.detail(instance.image["id"]).name) flavors = vm_lib.detail_flavor(instance.flavor["id"]) flavors_name = flavors.name flavors_vcpu = flavors.vcpus flavors_ram = bitmath.MiB( flavors.ram).to_GiB().best_prefix() pre_instance.append(flavors_name) pre_instance.append(flavors_ram) pre_instance.append(flavors_vcpu) # Address addr = list() addr_objs = utils.get_index(instance.addresses) if len(addr_objs) > 0: for addr_obj in addr_objs: addr.append("network : {}".format(addr_obj)) for addr_ip in instance.addresses[addr_obj]: addr_meta = "{} IP : {}".format( addr_ip["OS-EXT-IPS:type"], addr_ip["addr"]) addr.append(addr_meta) if len(addr) > 0: pre_instance.append("\n".join(addr)) else: pre_instance.append("") pre_instance.append(instance.status) data_instance.append(pre_instance) if len(data_instance) == 0: utils.log_err("No Data...") print(self.__doc__) except Exception as e: utils.log_err(e) exit() print( tabulate( data_instance, headers=[ "ID", "Name", "Key Pair", "Image", "Flavor", "RAM (GiB)", "vCPU", "Addresses", "Status", ], tablefmt="grid", )) exit() if self.args["network"]: data_network = [[ network["id"], network["name"], network["status"] ] for network in network_lib.get_list()] if len(data_network) == 0: utils.log_err("No Data...") print(self.__doc__) exit() print( tabulate(data_network, headers=["ID", "Name", "Status"], tablefmt="grid")) exit() if self.args["floatingips"]: data_floatingips = [[ floatingips["floating_ip_address"], floatingips["created_at"], floatingips["status"], ] for floatingips in network_lib.get_floatingips()] if len(data_floatingips) == 0: utils.log_err("No Data...") print(self.__doc__) exit() print( tabulate( data_floatingips, headers=["IP Address", "Created at", "Status"], tablefmt="grid", )) exit() if self.args["--outputs"]: stack_name = self.args["--outputs"].split(".") if len(stack_name) is 1: for meta in orch.get_meta_stack(stack_name[0]): print(meta["output_key"], " :") print(meta["output_value"]) print("") if len(stack_name) is 2: print(orch.get_metadata(stack_name[0], stack_name[1])) exit() if set_file: if os.path.exists(set_file): default_file = "{}".format(set_file) else: utils.log_err("{} file is not exists!".format(set_file)) print(self.__doc__) exit() if not default_file: utils.log_err("Oops!! Can't find neo.yml manifest file!") print(self.__doc__) exit() projects = utils.get_project(default_file) project_list = list() for project in projects: proj = orch.get_stack(project) if proj: project_list.append(proj) if len(project_list) > 0: print(tabulate(project_list, headers=headers, tablefmt="grid")) else: utils.log_err("No Data...") print(self.__doc__)
def execute(self): set_file = self.args["--file"] default_file = orch.check_manifest_file() if self.args["vm"]: instance_id = self.args["<VM_ID>"] try: answer = "" while answer not in ["y", "n"]: answer = input( "Are you sure to delete this virtual machines [y/n]? " ).lower() if answer == "y": vm_lib.do_delete(instance_id) utils.log_info("VM has been deleted") except Exception as e: utils.log_err(e) else: pass finally: pass exit() if self.args["network"]: network_id = self.args["<NETWORK_ID>"] try: answer = "" while answer not in ["y", "n"]: answer = input( "Are you sure to delete this network [Y/N]? ") if answer == "y": network_lib.do_delete(network_id) utils.log_info("network has been deleted") except Exception as e: utils.log_err(e) else: pass finally: pass exit() if self.args["stack"]: stack_name = self.args["<STACK_NAME>"] try: answer = "" while answer not in ["y", "n"]: answer = input( "Are you sure to delete \"{}\" stack [Y/N]? ".format(stack_name)) if answer == "y": proj = orch.do_delete(stack_name) if proj: utils.log_info("Stack {} has been deleted".format(stack_name)) else: utils.log_err("Stack {} is not exists".format(stack_name)) except Exception as e: utils.log_err(e) else: pass finally: pass exit() if set_file: if os.path.exists(set_file): default_file = "{}".format(set_file) else: utils.log_err("{} file is not exists!".format(set_file)) print(self.__doc__) exit() if not default_file: utils.log_err("Can't find neo.yml manifest file!") print(self.__doc__) exit() projects = utils.get_project(default_file) project_answer = ",".join(projects) answer = "" while answer not in ["y", "n"]: answer = input("Are you sure to delete {} [y/n]? ".format( project_answer).lower()) if answer == "y": for project in projects: proj = orch.do_delete(project) if proj: utils.log_info("Stack {} has been deleted".format(project)) else: utils.log_err("Stack {} is not exists".format(project))
def execute(self): headers = ["ID", "Name", "Status", "Created", "Updated"] if self.args["stack"]: print(tabulate(orch.get_list(), headers=headers, tablefmt="grid")) exit() set_file = self.args["--file"] default_file = orch.check_manifest_file() if self.args["vm"]: data_instance = list() for instance in vm_lib.get_list(): pre_instance = [instance.id, instance.name] pre_instance.append(image.detail(instance.image["id"]).name) flavors = vm_lib.detail_flavor(instance.flavor["id"]) flavors_name = flavors.name flavors_vcpu = flavors.vcpus flavors_ram = bitmath.MiB(flavors.ram).to_GiB().best_prefix() pre_instance.append(flavors_name) pre_instance.append(flavors_ram) pre_instance.append(flavors_vcpu) # Address addr = list() addr_objs = utils.get_index(instance.addresses) if len(addr_objs) > 0: for addr_obj in addr_objs: addr.append("network : {}".format(addr_obj)) for addr_ip in instance.addresses[addr_obj]: addr_meta = "{} IP : {}".format( addr_ip["OS-EXT-IPS:type"], addr_ip["addr"]) addr.append(addr_meta) if len(addr) > 0: pre_instance.append("\n".join(addr)) else: pre_instance.append("") pre_instance.append(instance.status) data_instance.append(pre_instance) if len(data_instance) == 0: utils.log_err("No Data...") print(self.__doc__) exit() print( tabulate( data_instance, headers=[ "ID", "Name", "Image", "Flavor", "RAM (GiB)", "vCPU", "Addresses", "Status" ], tablefmt="grid")) exit() if self.args["network"]: data_network = [[ network['id'], network['name'], network['status'] ] for network in network_lib.get_list()] if len(data_network) == 0: utils.log_err("No Data...") print(self.__doc__) exit() print( tabulate( data_network, headers=["ID", "Name", "Status"], tablefmt="grid")) exit() if self.args["--outputs"]: stack_name = self.args["--outputs"].split(".") if len(stack_name) is 1: for meta in orch.get_meta_stack(stack_name[0]): print(meta["output_key"], " :") print(meta["output_value"]) print("") if len(stack_name) is 2: print(orch.get_metadata(stack_name[0], stack_name[1])) exit() if set_file: if os.path.exists(set_file): default_file = "{}".format(set_file) else: utils.log_err("{} file is not exists!".format(set_file)) print(self.__doc__) exit() if not default_file: utils.log_err("Oops!! Can't find neo.yml manifest file!") print(self.__doc__) exit() projects = utils.get_project(default_file) project_list = list() for project in projects: proj = orch.get_stack(project) if proj: project_list.append(proj) if len(project_list) > 0: print(tabulate(project_list, headers=headers, tablefmt="grid")) else: utils.log_err("No Data...") print(self.__doc__)
def execute(self): if self.args["--template"]: if self.args["--template"] in ("clusters", "instances", "networks"): tmpl = self.args["--template"] if self.args["--interactive"]: ncurses.init(stack=tmpl) else: prompt.init(stack=tmpl) exit() if self.args["kubernetes"]: if self.args["--interactive"]: print(ncurses.init(stack="clusters", project="kubernetes")) else: print(prompt.init(stack="clusters", project="kubernetes")) if self.args["vm"]: if self.args["--interactive"]: print(ncurses.init(stack="instances", project="vm")) else: print(prompt.init(stack="instances", project="vm")) headers = ["ID", "Name", "Status", "Created", "Updated"] set_file = self.args["--file"] default_file = orch.check_manifest_file() if set_file: if os.path.exists(set_file): default_file = set_file else: utils.log_err("{} file is not exists!".format(set_file)) exit() if not default_file: utils.log_err("Can't find neo.yml manifest file!") q_stack = utils.question("Do you want to generate neo.yml manifest? ") if q_stack: if self.args["--interactive"]: print(ncurses.init()) else: print(prompt.init()) q_deploy = utils.question("Continue to deploy? ") if q_deploy: default_file = "neo.yml" else: exit() else: exit() else: q_deploy = utils.question("Continue to deploy? ") if q_deploy: default_file = "neo.yml" else: exit() deploy_init = orch.initialize(default_file) try: orch.do_create(deploy_init) except Exception as e: utils.log_err(e) utils.log_err("Deploying Stack failed...") exit() projects = utils.get_project(default_file) project_list = list() for project in projects: proj = orch.get_stack(project) if proj: project_list.append(proj) if len(project_list) > 0: print(tabulate(project_list, headers=headers, tablefmt="grid"))
def execute(self): if self.args["--template"]: if self.args["--template"] in ('clusters', 'instances', 'networks'): tmpl = self.args["--template"] if self.args["--interactive"]: ncurses.init(stack=tmpl) else: prompt.init(stack=tmpl) exit() if self.args["kubernetes"]: if self.args["--interactive"]: print(ncurses.init(stack="clusters", project="kubernetes")) else: print(prompt.init(stack="clusters", project="kubernetes")) if self.args["vm"]: if self.args["--interactive"]: print(ncurses.init(stack="instances", project="vm")) else: print(prompt.init(stack="instances", project="vm")) headers = ["ID", "Name", "Status", "Created", "Updated"] set_file = self.args["--file"] default_file = orch.check_manifest_file() if set_file: if os.path.exists(set_file): default_file = set_file else: utils.log_err("{} file is not exists!".format(set_file)) exit() if not default_file: utils.log_err("Can't find neo.yml manifest file!") q_stack = utils.question( "Do you want to generate neo.yml manifest? ") if q_stack: if self.args["--interactive"]: print(ncurses.init()) else: print(prompt.init()) q_deploy = utils.question("Continue to deploy? ") if q_deploy: default_file = "neo.yml" else: exit() else: exit() else: q_deploy = utils.question("Continue to deploy? ") if q_deploy: default_file = "neo.yml" else: exit() deploy_init = orch.initialize(default_file) try: orch.do_create(deploy_init) except Exception as e: utils.log_err(e) utils.log_err("Deploying Stack failed...") exit() projects = utils.get_project(default_file) project_list = list() for project in projects: proj = orch.get_stack(project) if proj: project_list.append(proj) if len(project_list) > 0: print(tabulate(project_list, headers=headers, tablefmt="grid"))