Update storage service for RSD 2.3
Removed obsolete remote_targets, physical_drives, and logical_drives resources in storage service, but added volumes, drives, endpoints and storage_pools according to RSD 2.3 spec. Change-Id: Ie43302af5eba1699a132c8a50b8ff26150620a78 Closes-Bug: #1789683
This commit is contained in:
parent
887269f6c8
commit
4ada7530a5
|
@ -87,100 +87,14 @@ FAKE_STORAGE_PYTHON_DICT = {
|
||||||
'identity': '1',
|
'identity': '1',
|
||||||
'name': 'Storage Service',
|
'name': 'Storage Service',
|
||||||
'redfish_version': '1.0.0',
|
'redfish_version': '1.0.0',
|
||||||
'remote_targets': [{
|
'drives': ['/redfish/v1/Chassis/5-c-1/Drives/5-c-1-d-1'],
|
||||||
'addresses': [{
|
'storage_pools':
|
||||||
'iSCSI': {
|
['/redfish/v1/StorageServices/5-sv-1/StoragePools/5-sv-1-sp-1'],
|
||||||
'TargetIQN': 'base_logical_volume_target',
|
'endpoints': ['/redfish/v1/Fabrics/5-ff-1/Endpoints/5-ff-1-e-19'],
|
||||||
'TargetLUN': [{
|
'volumes': ['/redfish/v1/StorageServices/5-sv-1/Volumes/5-sv-1-vl-1']
|
||||||
'LUN': 1,
|
|
||||||
'LogicalDrive': {
|
|
||||||
'@odata.id': '/redfish/v1/Services/1/LogicalDrives/2'
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
'TargetPortalIP': '10.2.0.4',
|
|
||||||
'TargetPortalPort': 3260
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
'identity': '1',
|
|
||||||
'initiator': [{'iSCSI': {'InitiatorIQN': 'ALL'}}],
|
|
||||||
'redfish_version': '1.0.0',
|
|
||||||
'target_type': 'iSCSITargets'
|
|
||||||
}],
|
|
||||||
'physical_drives': [{
|
|
||||||
'capacity_gib': 931,
|
|
||||||
'drive_type': 'HDD',
|
|
||||||
'identity': '1',
|
|
||||||
'interface': 'SATA',
|
|
||||||
'manufacturer': 'fake manufacture',
|
|
||||||
'model': 'ST1000NM0033-9ZM',
|
|
||||||
'redfish_version': '1.0.0',
|
|
||||||
'rpm': 7200,
|
|
||||||
'serial_number': 'Z1W23Q3V'
|
|
||||||
}],
|
|
||||||
'logical_drives': [{
|
|
||||||
'bootable': True,
|
|
||||||
'capacity_gib': 5589,
|
|
||||||
'drive_type': 'LVM',
|
|
||||||
'identity': '2',
|
|
||||||
'image': 'fake image',
|
|
||||||
'mode': 'LVG',
|
|
||||||
'protected': False,
|
|
||||||
'redfish_version': '1.0.0',
|
|
||||||
'snapshot': False
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class FakeRemoteTarget(object):
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.addresses = [{
|
|
||||||
'iSCSI': {
|
|
||||||
'TargetIQN': 'base_logical_volume_target',
|
|
||||||
'TargetLUN': [{
|
|
||||||
'LUN': 1,
|
|
||||||
'LogicalDrive': {
|
|
||||||
'@odata.id': '/redfish/v1/Services/1/LogicalDrives/2'
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
'TargetPortalIP': '10.2.0.4',
|
|
||||||
'TargetPortalPort': 3260
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
self.identity = '1'
|
|
||||||
self.initiator = [{'iSCSI': {'InitiatorIQN': 'ALL'}}]
|
|
||||||
self.redfish_version = '1.0.0'
|
|
||||||
self.target_type = 'iSCSITargets'
|
|
||||||
|
|
||||||
|
|
||||||
class FakePhysicalDrive(object):
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.capacity_gib = 931
|
|
||||||
self.drive_type = 'HDD'
|
|
||||||
self.identity = '1'
|
|
||||||
self.interface = 'SATA'
|
|
||||||
self.manufacturer = 'fake manufacture'
|
|
||||||
self.model = 'ST1000NM0033-9ZM'
|
|
||||||
self.redfish_version = '1.0.0'
|
|
||||||
self.rpm = 7200
|
|
||||||
self.serial_number = 'Z1W23Q3V'
|
|
||||||
|
|
||||||
|
|
||||||
class FakeLogicalDrive(object):
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.bootable = True
|
|
||||||
self.capacity_gib = 5589
|
|
||||||
self.drive_type = 'LVM'
|
|
||||||
self.identity = '2'
|
|
||||||
self.image = 'fake image'
|
|
||||||
self.mode = 'LVG'
|
|
||||||
self.protected = False
|
|
||||||
self.redfish_version = '1.0.0'
|
|
||||||
self.snapshot = False
|
|
||||||
|
|
||||||
|
|
||||||
class FakeStorageSerice(object):
|
class FakeStorageSerice(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -189,12 +103,18 @@ class FakeStorageSerice(object):
|
||||||
self.identity = '1'
|
self.identity = '1'
|
||||||
self.name = 'Storage Service'
|
self.name = 'Storage Service'
|
||||||
self.redfish_version = '1.0.0'
|
self.redfish_version = '1.0.0'
|
||||||
self.remote_targets = mock.Mock()
|
self.drives = mock.Mock()
|
||||||
self.remote_targets.get_members.return_value = [FakeRemoteTarget()]
|
self.drives.members_identities = \
|
||||||
self.physical_drives = mock.Mock()
|
['/redfish/v1/Chassis/5-c-1/Drives/5-c-1-d-1']
|
||||||
self.physical_drives.get_members.return_value = [FakePhysicalDrive()]
|
self.storage_pools = mock.Mock()
|
||||||
self.logical_drives = mock.Mock()
|
self.storage_pools.members_identities = \
|
||||||
self.logical_drives.get_members.return_value = [FakeLogicalDrive()]
|
['/redfish/v1/StorageServices/5-sv-1/StoragePools/5-sv-1-sp-1']
|
||||||
|
self.endpoints = mock.Mock()
|
||||||
|
self.endpoints.members_identities = \
|
||||||
|
['/redfish/v1/Fabrics/5-ff-1/Endpoints/5-ff-1-e-19']
|
||||||
|
self.volumes = mock.Mock()
|
||||||
|
self.volumes.members_identities = \
|
||||||
|
['/redfish/v1/StorageServices/5-sv-1/Volumes/5-sv-1-vl-1']
|
||||||
|
|
||||||
|
|
||||||
FAKE_FABRIC_PYTHON_DICT = {
|
FAKE_FABRIC_PYTHON_DICT = {
|
||||||
|
|
|
@ -45,16 +45,12 @@ class StorageServiceManager(base.Manager):
|
||||||
storage = self.client.get_storage_service(storage_uri)
|
storage = self.client.get_storage_service(storage_uri)
|
||||||
storage_dict = utils.extract_attr(storage)
|
storage_dict = utils.extract_attr(storage)
|
||||||
|
|
||||||
# Append sub-items attributions
|
# Append the member link of sub-resource
|
||||||
storage_dict['remote_targets'] = [
|
storage_dict['drives'] = storage.drives.members_identities
|
||||||
utils.extract_attr(item)
|
storage_dict['storage_pools'] = \
|
||||||
for item in storage.remote_targets.get_members()]
|
storage.storage_pools.members_identities
|
||||||
storage_dict['physical_drives'] = [
|
storage_dict['volumes'] = storage.volumes.members_identities
|
||||||
utils.extract_attr(item)
|
storage_dict['endpoints'] = storage.endpoints.members_identities
|
||||||
for item in storage.physical_drives.get_members()]
|
|
||||||
storage_dict['logical_drives'] = [
|
|
||||||
utils.extract_attr(item)
|
|
||||||
for item in storage.logical_drives.get_members()]
|
|
||||||
|
|
||||||
return storage_dict
|
return storage_dict
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue