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
Exemple #2
0
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")
Exemple #6
0
    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)