def network_list(args): obj = Network(args.ip, args.port) from common import TableGenerator try: uris = obj.list_networks(args.varray) if (len(uris) > 0): output = [] for item in (uris): onetwork = common.show_by_href(args.ip, args.port, item) if ("varray" in onetwork): ovarray = common.show_by_href(args.ip, args.port, onetwork['varray']) onetwork["varray"] = ovarray['name'] output.append(onetwork) # show a short table if (args.verbose is False and args.long is False): TableGenerator(output, [ 'module/name', 'transport_type', "varray", "fabric_id", "registration_status" ]).printTable() # show a long table if (args.verbose is False and args.long is True): TableGenerator(output, [ 'module/name', 'transport_type', "varray", "fabric_id", "endpoints", "registration_status" ]).printTable() # show all items in json format if (args.verbose): return common.format_json_object(output) else: return except SOSError as e: raise e
def network_list(args): obj = Network(args.ip, args.port) from common import TableGenerator try: uris = obj.list_networks(args.varray) if(len(uris) > 0): output = [] for item in (uris): onetwork = common.show_by_href(args.ip, args.port, item) if("varray" in onetwork): ovarray = common.show_by_href(args.ip, args.port, onetwork['varray']) onetwork["varray"] = ovarray['name'] output.append(onetwork) # show a short table if(args.verbose is False and args.long is False): TableGenerator(output, ['module/name', 'transport_type', "varray", "fabric_id", "registration_status"]).printTable() # show a long table if(args.verbose is False and args.long is True): TableGenerator( output, ['module/name', 'transport_type', "varray", "fabric_id", "endpoints", "registration_status"]).printTable() # show all items in json format if(args.verbose): return common.format_json_object(output) else: return except SOSError as e: raise e
def find_iscsi_network(self, varray, network_name): if (network_name): try: return self._network.network_query(network_name, varray) except SOSError: # TODO: re-raise the exception with correct name. To be removed raise SOSError(SOSError.NOT_FOUND_ERR, "Network {0} not found".format(network_name)) storage_ports = self.get_varray_iscsi_storageports(varray) for port in storage_ports: port_info = dict() port_info['native_guid'] = port['native_guid'] port_info['port_name'] = port['port_name'] try: ip_address = port['ip_address'] port_info['ip_address'] = ip_address if (self.is_ip_pingable(ip_address)): network = port['network'] network_detail = common.show_by_href(self.__ipAddr, self.__port, network) port_info['network'] = network_detail['name'] self._logger.debug('Select storage port %s: ', port_info) return network_detail else: self._logger.debug('Skip storage port %s: ', port_info) except KeyError: self._logger.debug('Skip storage port %s: ', port_info) continue
def create_host(self, hostname, tenant, project, ostype='Linux'): # find host host = self.find_host(hostname) if (not host): if (not ostype) : ostype = "Linux" # host not found, create a new one. task_rep = self._host.create(hostname, ostype, hostname, tenant, None, None, None, None, None, None, None, None, None) host = common.show_by_href(self.__ipAddr, self.__port, task_rep['resource']) return host
def ps_query(self, name): ''' This function will take the Recovery Point name and type of Recovery point as input and get uri of the first occurance of given Recovery Point. paramters: name : Name of the Protection system. return return with uri of the given Protection system. ''' if (common.is_uri(name)): return name uris = self.ps_list_uris() for uri in uris: rp = common.show_by_href(self.__ipAddr, self.__port, uri) if(rp): if (rp['name'] == name): return rp['id'] raise SOSError(SOSError.SOS_FAILURE_ERR, "Recovery Point:" + name + ": not found")
def ps_query(self, name): ''' This function will take the RecoverPoint name and type of RecoverPoint as input and get uri of the first occurance of given RecoverPoint. parameters: name : Name of the Protection system. return return with uri of the given Protection system. ''' if (common.is_uri(name)): return name uris = self.ps_list_uris() for uri in uris: rp = common.show_by_href(self.__ipAddr, self.__port, uri) if (rp): if (rp['name'] == name): return rp['id'] raise SOSError(SOSError.SOS_FAILURE_ERR, "RecoverPoint:" + name + ": not found")
def network_query(self, name, varray): """ Makes REST API call to query the network by name Parameters: name: name of network Returns: Network details in JSON response payload """ if common.is_uri(name): return name networks = self.list_networks(varray) for zone in networks: tzone = common.show_by_href(self.__ipAddr, self.__port, zone) if tzone: if ((varray) and (tzone.has_key("varray"))) or ( (varray is None) and (tzone.has_key("varray") == False) ): if tzone["name"] == name: return tzone["id"] raise SOSError(SOSError.NOT_FOUND_ERR, "Network " + name + ": not found")
def create_initiator(self, host, connector): initiator = self.find_initiator(host['name'], connector['wwpn']) if (not initiator): initiator = self._hostinitiator.create(host['name'], 'iSCSI', None, connector['wwpn']) return common.show_by_href(self.__ipAddr, self.__port, initiator)