コード例 #1
0
    def storageportgroup_add(self, storage_device_name, serial_number,
                        storage_device_type, portgroup_name, storageports):

        storage_system = StorageSystem(self.__ipAddr, self.__port)
        storage_system_uri = None

        if(serial_number):
            storage_system_uri \
                = storage_system.query_by_serial_number_and_type(
                    serial_number, storage_device_type)
        elif(storage_device_name):
            storage_system_uri = storage_system.query_by_name_and_type(
                storage_device_name,
                storage_device_type)

        addports = []
        for portname in storageports:
            storage_port = Storageport(self.__ipAddr, self.__port)
            porturi = storage_port.storageport_query(storage_system_uri, portname)
            addports.append(porturi)
            
        body = json.dumps(
                          {'name': portgroup_name,
                           'storage_ports': addports
                           })

        common.service_json_request(self.__ipAddr, self.__port,
             "POST",
             Storageportgroup.URI_STORAGEPORTGROUP_LIST.format(storage_system_uri),
             body)
コード例 #2
0
    def storageport_add(
        self, storage_device_name, serial_number, storage_device_type, port_name, port_id, transport_type
    ):

        storage_system = StorageSystem(self.__ipAddr, self.__port)
        storage_system_uri = None

        if serial_number:
            storage_system_uri = storage_system.query_by_serial_number_and_type(serial_number, storage_device_type)
        elif storage_device_name:
            storage_system_uri = storage_system.query_by_name_and_type(storage_device_name, storage_device_type)

        is_storageport_exist = True
        try:
            self.storageport_query(storage_system_uri, port_name)
        except SOSError as e:
            if e.err_code == SOSError.NOT_FOUND_ERR:
                is_storageport_exist = False
            else:
                raise e

        if is_storageport_exist:
            raise SOSError(SOSError.ENTRY_ALREADY_EXISTS_ERR, "storageport with name " + port_name + " already exists ")

        body = json.dumps({"name": port_name, "port_network_id": port_id, "transport_type": transport_type})

        common.service_json_request(
            self.__ipAddr, self.__port, "POST", Storageport.URI_STORAGEPORT_LIST.format(storage_system_uri), body
        )
コード例 #3
0
    def storageportgroup_add(self, storage_device_name, serial_number,
                             storage_device_type, portgroup_name,
                             storageports):

        storage_system = StorageSystem(self.__ipAddr, self.__port)
        storage_system_uri = None

        if (serial_number):
            storage_system_uri \
                = storage_system.query_by_serial_number_and_type(
                    serial_number, storage_device_type)
        elif (storage_device_name):
            storage_system_uri = storage_system.query_by_name_and_type(
                storage_device_name, storage_device_type)

        addports = []
        for portname in storageports:
            storage_port = Storageport(self.__ipAddr, self.__port)
            porturi = storage_port.storageport_query(storage_system_uri,
                                                     portname)
            addports.append(porturi)

        body = json.dumps({'name': portgroup_name, 'storage_ports': addports})

        common.service_json_request(
            self.__ipAddr, self.__port, "POST",
            Storageportgroup.URI_STORAGEPORTGROUP_LIST.format(
                storage_system_uri), body)
コード例 #4
0
    def storagepool_register_main(self, serialnumber,
                           deviceType, poolName):

        '''
        Registers a storagepool with specified parameters
        Parameters:
            serialnumber:   serial number of the storage system
            protocol:        (optional) protocols supported by pool
            maxSnapshots:    (optional) maxSnapshots permitted on the storage pool
            consistency:    (optional) consistency details of storage pool
            deviceType:    storage system type
            poolName:    (optional) specific pool name to be registered
        returns:
            JSON payload of the created storagepool
        '''

        from storagesystem import StorageSystem
        obj_ss = StorageSystem(self.__ipAddr, self.__port)

        #uri = obj_ss.query_storagesystem_by_serial_number(serialnumber)        
        systemuri = obj_ss.query_by_serial_number_and_type(serialnumber, deviceType)        

	pooluris = self.storagepool_list_by_uri(systemuri)

	if(poolName):
            # Need to check if pool is found
            found = False
        else:
            found = True
	for pooluri in pooluris:
	    if(poolName):
		storpool = self.storagepool_show_by_uri(systemuri, pooluri)

		compval = None

		compval = storpool['pool_name']
		'''contrlparms = storpool['controller_params']
		for item in contrlparms:
		    if(item['name'] == 'NativeId'):
		        compval = item['value']'''
			    

	        if(poolName == compval):

                    found = True
                    res = self.storagepool_register(systemuri, pooluri) 
	    else:
                res = self.storagepool_register(systemuri, pooluri) 

        # Print error if named pool is not found
        if (not (found)):
            raise SOSError(SOSError.NOT_FOUND_ERR,
                    "Storagepool with name " +poolName+" not found\n")
コード例 #5
0
    def storagesystem_query(self, storagedeviceName, serialNumber, storagedeviceType):
        urideviceid = None
        storagesystemObj = StorageSystem(self.__ipAddr, self.__port)
        if serialNumber:
            urideviceid = storagesystemObj.query_by_serial_number_and_type(serialNumber, storagedeviceType)

        elif storagedeviceName:
            urideviceidTemp = storagesystemObj.show(name=storagedeviceName, type=storagedeviceType)
            urideviceid = urideviceidTemp["id"]
        else:
            return

        return urideviceid
コード例 #6
0
    def storagesystem_query(self, storagedeviceName, serialNumber,
                            storagedeviceType):
        urideviceid = None
        storagesystemObj = StorageSystem(self.__ipAddr, self.__port)
        if (serialNumber):
            urideviceid = storagesystemObj.query_by_serial_number_and_type(
                serialNumber, storagedeviceType)

        elif (storagedeviceName):
            urideviceidTemp = storagesystemObj.show(name=storagedeviceName,
                                                    type=storagedeviceType)
            urideviceid = urideviceidTemp['id']
        else:
            return

        return urideviceid
コード例 #7
0
    def storagepool_register_main(self, serialnumber, deviceType, poolName):
        '''
        Registers a storagepool with specified parameters
        Parameters:
            serialnumber:   serial number of the storage system
            protocol:        (optional) protocols supported by pool
            maxSnapshots:
            (optional) maxSnapshots permitted on the storage pool
            consistency:    (optional) consistency details of storage pool
            deviceType:    storage system type
            poolName:    (optional) specific pool name to be registered
        returns:
            JSON payload of the created storagepool
    '''
        obj_ss = StorageSystem(self.__ipAddr, self.__port)

        #uri = obj_ss.query_storagesystem_by_serial_number(serialnumber)
        systemuri = obj_ss.query_by_serial_number_and_type(
            serialnumber, deviceType)

        pooluris = self.storagepool_list_by_uri(systemuri)

        if (poolName):
            # Need to check if pool is found
            found = False
        else:
            found = True
        for pooluri in pooluris:
            if (poolName):
                storpool = self.storagepool_show_by_uri(systemuri, pooluri)

                compval = None

                compval = storpool['pool_name']

                if (poolName == compval):

                    found = True
                    self.storagepool_register(systemuri, pooluri)
                else:
                    self.storagepool_register(systemuri, pooluri)

        # Print error if named pool is not found
        if (not (found)):
            raise SOSError(
                SOSError.NOT_FOUND_ERR,
                "Storagepool with name " + poolName + " not found\n")
コード例 #8
0
    def storagesystem_query(self, devicename, devicetype, serialnumber=None):
        '''
        Returns the URI of the storage system given either name or serialnumber
        Parameters:
            devicename:name of the system
            devicetype: type of system
            serialnumber: serial number
        Returns:
            System URI
        '''

        from storagesystem import StorageSystem
        if (not common.is_uri(devicename)):
            obj = StorageSystem(self.__ipAddr, self.__port)
	    if(not serialnumber or len(serialnumber)> 0):
		device_id = obj.query_by_serial_number_and_type(serialnumber, devicetype)
	    else:
                device = obj.show(name=devicename, type=devicetype)        
                device_id = device['id']
        else:
            device_id = devicename
        return device_id
コード例 #9
0
    def storageport_add(self, storage_device_name, serial_number,
                        storage_device_type, port_name, port_id,
                        transport_type):

        storage_system = StorageSystem(self.__ipAddr, self.__port)
        storage_system_uri = None

        if (serial_number):
            storage_system_uri \
                = storage_system.query_by_serial_number_and_type(
                    serial_number, storage_device_type)
        elif (storage_device_name):
            storage_system_uri = storage_system.query_by_name_and_type(
                storage_device_name, storage_device_type)

        is_storageport_exist = True
        try:
            self.storageport_query(storage_system_uri, port_name)
        except SOSError as e:
            if (e.err_code == SOSError.NOT_FOUND_ERR):
                is_storageport_exist = False
            else:
                raise e

        if (is_storageport_exist):
            raise SOSError(
                SOSError.ENTRY_ALREADY_EXISTS_ERR,
                "storageport with name " + port_name + " already exists ")

        body = json.dumps({
            'name': port_name,
            'port_network_id': port_id,
            'transport_type': transport_type
        })

        common.service_json_request(
            self.__ipAddr, self.__port, "POST",
            Storageport.URI_STORAGEPORT_LIST.format(storage_system_uri), body)
コード例 #10
0
    def storagesystem_query(self, devicename, devicetype, serialnumber=None):
        '''
        Returns the URI of the storage system given either name or serialnumber
        Parameters:
            devicename:name of the system
            devicetype: type of system
            serialnumber: serial number
        Returns:
            System URI
        '''

        from storagesystem import StorageSystem
        if (not common.is_uri(devicename)):
            obj = StorageSystem(self.__ipAddr, self.__port)
            if (serialnumber and len(serialnumber) > 0):
                device_id = obj.query_by_serial_number_and_type(
                    serialnumber, devicetype)
            else:
                device = obj.show(name=devicename, type=devicetype)
                device_id = device['id']
        else:
            device_id = devicename
        return device_id