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)
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 )
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)
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")
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
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
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")
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
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)
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