def _vm_delete(self): """ delete a VM instance """ # ------------------------- # check input if self.arguments['NAME'] is None and \ self.arguments['--id'] is None and \ self.arguments['--group'] is None and \ self.arguments['--cloud'] is None and \ self.arguments['--prefix'] is None and \ self.arguments['--names'] is None: print("Please specify at least one option, to get more information: vm help") return cloudname = self.get_working_cloud_name() if not cloudname: return deleteAllCloudVMs = False if (self.arguments['--cloud'] and self.arguments['NAME'] is None and self.arguments['--id'] is None and self.arguments['--group'] is None and self.arguments['--prefix'] is None and self.arguments['--names'] is None): deleteAllCloudVMs = True if self.arguments['--force']: preview = False else: preview = True server_id_list = get_vms_look_for(self.username, cloudname, servername=self.arguments['NAME'], serverid=self.arguments['--id'], groupname=self.arguments['--group'], prefix=self.arguments['--prefix'], hostls=self.arguments['--names'], getAll=deleteAllCloudVMs, refresh=True) if not server_id_list: return delete_vm(self.username, cloudname, server_id_list=server_id_list, preview=preview, refresh=False)
def _show_ip(self): ''' list the ips of VMs ''' mongo = cm_mongo() cloudname = self.get_working_cloud_name() if not cloudname: return if get_command_list_refresh_default_setting(self.username) or self.arguments['--refresh']: mongo.activate(cm_user_id=self.username, names=[cloudname]) mongo.refresh(cm_user_id=self.username, names=[cloudname], types=['servers']) servers_dict = mongo.servers( clouds=[cloudname], cm_user_id=self.username)[cloudname] AllCloudVMs = False if (self.arguments['--cloud'] and self.arguments['NAME'] is None and self.arguments['--id'] is None and self.arguments['--group'] is None and self.arguments['--prefix'] is None and self.arguments['--names'] is None): AllCloudVMs = True server_id_list = get_vms_look_for(self.username, cloudname, servername=self.arguments['NAME'], serverid=self.arguments['--id'], groupname=self.arguments['--group'], prefix=self.arguments['--prefix'], hostls=self.arguments['--names'], getAll=AllCloudVMs, refresh=False) if not server_id_list: return if server_id_list == []: Console.warning("no vm meets the condition") return res = {} for item in server_id_list: temp = servers_dict[item]['addresses'] temp_val = temp.keys()[0] temp = temp[temp_val] fixed = "" floating = "" for item0 in temp: if item0['OS-EXT-IPS:type'] == 'fixed': fixed = fixed + item0['addr'] + ", " elif item0['OS-EXT-IPS:type'] == 'floating': floating = floating + item0['addr'] + ", " if fixed != "": fixed = fixed[:-2] if floating != "": floating = floating[:-2] temp0 = {} temp0['name'] = servers_dict[item]['name'] temp0['fixed'] = fixed temp0['floating'] = floating res[item] = temp0 if self.arguments['--format']: if self.arguments['--format'] not in ['table', 'json', 'csv']: Console.error("please select printing format among table, json and csv") return else: p_format = self.arguments['--format'] else: p_format = None header = ['name', 'fixed', 'floating'] shell_commands_dict_output(self.username, res, print_format=p_format, firstheader="id", header=header)