Redfish: followup patch for properties
Change-Id: I1a8960f1818308e7f97dee0c18fe6c53f71b9cea
This commit is contained in:
parent
9a7735aea2
commit
7e0476d6f2
|
@ -61,9 +61,7 @@ class HPESmartStorage(base.ResourceBase):
|
|||
"""
|
||||
if self._logical_drives_maximum_size_mib is None:
|
||||
self._logical_drives_maximum_size_mib = (
|
||||
utils.max_safe(
|
||||
[member.logical_drives.maximum_size_mib
|
||||
for member in self.array_controllers.get_members()]))
|
||||
self.array_controllers.logical_drives_maximum_size_mib)
|
||||
return self._logical_drives_maximum_size_mib
|
||||
|
||||
@property
|
||||
|
@ -74,9 +72,7 @@ class HPESmartStorage(base.ResourceBase):
|
|||
"""
|
||||
if self._physical_drives_maximum_size_mib is None:
|
||||
self._physical_drives_maximum_size_mib = (
|
||||
utils.max_safe(
|
||||
[member.physical_drives.maximum_size_mib
|
||||
for member in self.array_controllers.get_members()]))
|
||||
self.array_controllers.physical_drives_maximum_size_mib)
|
||||
return self._physical_drives_maximum_size_mib
|
||||
|
||||
@property
|
||||
|
@ -84,11 +80,7 @@ class HPESmartStorage(base.ResourceBase):
|
|||
"""Return true if any of the drive under ArrayControllers is ssd"""
|
||||
|
||||
if self._has_ssd is None:
|
||||
self._has_ssd = False
|
||||
for member in self.array_controllers.get_members():
|
||||
if member.physical_drives.has_ssd:
|
||||
self._has_ssd = True
|
||||
break
|
||||
self._has_ssd = self.array_controllers.has_ssd
|
||||
return self._has_ssd
|
||||
|
||||
@property
|
||||
|
@ -96,11 +88,8 @@ class HPESmartStorage(base.ResourceBase):
|
|||
"""Return true if any of the drive under ArrayControllers is HDD"""
|
||||
|
||||
if self._has_rotational is None:
|
||||
self._has_rotational = False
|
||||
for member in self.array_controllers.get_members():
|
||||
if member.physical_drives.has_rotational:
|
||||
self._has_rotational = True
|
||||
break
|
||||
self._has_rotational = (
|
||||
self.array_controllers.has_rotational)
|
||||
return self._has_rotational
|
||||
|
||||
@property
|
||||
|
@ -110,10 +99,8 @@ class HPESmartStorage(base.ResourceBase):
|
|||
:returns the set of list of raid levels configured.
|
||||
"""
|
||||
if self._logical_raid_levels is None:
|
||||
self._logical_raid_levels = set()
|
||||
for member in self.array_controllers.get_members():
|
||||
self._logical_raid_levels.update(
|
||||
member.logical_drives.logical_raid_levels)
|
||||
self._logical_raid_levels = (
|
||||
self.array_controllers.logical_raid_levels)
|
||||
return self._logical_raid_levels
|
||||
|
||||
@property
|
||||
|
@ -121,10 +108,8 @@ class HPESmartStorage(base.ResourceBase):
|
|||
"""Gets the list of rotational speed of the HDD drives"""
|
||||
|
||||
if self._drive_rotational_speed_rpm is None:
|
||||
self._drive_rotational_speed_rpm = set()
|
||||
for member in self.array_controllers.get_members():
|
||||
self._drive_rotational_speed_rpm.update(
|
||||
member.physical_drives.drive_rotational_speed_rpm)
|
||||
self._drive_rotational_speed_rpm = (
|
||||
self.array_controllers.drive_rotational_speed_rpm)
|
||||
return self._drive_rotational_speed_rpm
|
||||
|
||||
def refresh(self):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"logical_drive1": {
|
||||
"@odata.context": "/redfish/v1/$metadata#Systems/Members/1/SmartStorage/ArrayControllers/Members/0/LogicalDrives/Members/$entity",
|
||||
"@odata.etag": "W/\"21D690E9\"",
|
||||
"@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/",
|
||||
|
@ -26,4 +27,34 @@
|
|||
},
|
||||
"StripeSizeBytes": 262144,
|
||||
"VolumeUniqueIdentifier": "600508B1001CC8EF62AC74E1ABD407C1"
|
||||
},
|
||||
"logical_drive2": {
|
||||
"@odata.context": "/redfish/v1/$metadata#Systems/Members/1/SmartStorage/ArrayControllers/Members/0/LogicalDrives/Members/$entity",
|
||||
"@odata.etag": "W/\"21D690E9\"",
|
||||
"@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/",
|
||||
"@odata.type": "#HpeSmartStorageLogicalDrive.v2_1_0.HpeSmartStorageLogicalDrive",
|
||||
"CapacityMiB": 953837,
|
||||
"Description": "HPE Smart Storage Logical Drive View",
|
||||
"Id": "1",
|
||||
"InterfaceType": "SATA",
|
||||
"LegacyBootPriority": "None",
|
||||
"Links": {
|
||||
"DataDrives": {
|
||||
"@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/DataDrives/"
|
||||
}
|
||||
},
|
||||
"LogicalDriveEncryption": false,
|
||||
"LogicalDriveName": "019D4217PWDRE0XRH57093 7DA4",
|
||||
"LogicalDriveNumber": 2,
|
||||
"LogicalDriveType": "Data",
|
||||
"MediaType": "HDD",
|
||||
"Name": "HpeSmartStorageLogicalDrive",
|
||||
"Raid": "1",
|
||||
"Status": {
|
||||
"Health": "OK",
|
||||
"State": "Enabled"
|
||||
},
|
||||
"StripeSizeBytes": 262144,
|
||||
"VolumeUniqueIdentifier": "600508B1001CC8EF62AC74E1ABD407C1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,11 @@
|
|||
"Members": [
|
||||
{
|
||||
"@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/"
|
||||
},
|
||||
{
|
||||
"@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/2/"
|
||||
}
|
||||
],
|
||||
"Members@odata.count": 1,
|
||||
"Members@odata.count": 2,
|
||||
"Name": "HpeSmartStorageLogicalDrives"
|
||||
}
|
||||
|
|
|
@ -50,7 +50,9 @@ class HPEArrayControllerTestCase(testtools.TestCase):
|
|||
with open('proliantutils/tests/redfish/'
|
||||
'json_samples/logical_drive.json') as f:
|
||||
log_dr = json.loads(f.read())
|
||||
self.conn.get.return_value.json.side_effect = [log_coll, log_dr]
|
||||
self.conn.get.return_value.json.side_effect = (
|
||||
[log_coll, log_dr['logical_drive1'],
|
||||
log_dr['logical_drive2']])
|
||||
actual_log_dr = self.sys_stor.logical_drives
|
||||
self.conn.get.return_value.json.reset_mock()
|
||||
self.assertIs(actual_log_dr,
|
||||
|
@ -132,7 +134,9 @@ class HPEArrayControllerCollectionTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
val.append(json.loads(f.read()))
|
||||
f_data = json.loads(f.read())
|
||||
val.append(f_data['logical_drive1'])
|
||||
val.append(f_data['logical_drive2'])
|
||||
self.conn.get.return_value.json.side_effect = val
|
||||
expected = 953837
|
||||
actual = self.sys_stor_col.logical_drives_maximum_size_mib
|
||||
|
@ -153,9 +157,11 @@ class HPEArrayControllerCollectionTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
val.append(json.loads(f.read()))
|
||||
f_data = json.loads(f.read())
|
||||
val.append(f_data['logical_drive1'])
|
||||
val.append(f_data['logical_drive2'])
|
||||
self.conn.get.return_value.json.side_effect = val
|
||||
expected = set(['0'])
|
||||
expected = set(['0', '1'])
|
||||
actual = self.sys_stor_col.logical_raid_levels
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
|
|
|
@ -59,7 +59,9 @@ class HPELogicalDriveCollectionTestCase(testtools.TestCase):
|
|||
self.assertEqual('HpeSmartStorageLogicalDrives',
|
||||
self.sys_stor_col.name)
|
||||
path = ('/redfish/v1/Systems/1/SmartStorage/'
|
||||
'ArrayControllers/0/LogicalDrives/1',)
|
||||
'ArrayControllers/0/LogicalDrives/1',
|
||||
'/redfish/v1/Systems/1/SmartStorage/'
|
||||
'ArrayControllers/0/LogicalDrives/2',)
|
||||
self.assertEqual(path, self.sys_stor_col.members_identities)
|
||||
|
||||
@mock.patch.object(logical_drive, 'HPELogicalDrive', autospec=True)
|
||||
|
@ -76,15 +78,19 @@ class HPELogicalDriveCollectionTestCase(testtools.TestCase):
|
|||
@mock.patch.object(logical_drive, 'HPELogicalDrive', autospec=True)
|
||||
def test_get_members(self, mock_eth):
|
||||
members = self.sys_stor_col.get_members()
|
||||
path = ("/redfish/v1/Systems/1/SmartStorage/ArrayControllers/"
|
||||
"0/LogicalDrives/1")
|
||||
path1 = ("/redfish/v1/Systems/1/SmartStorage/ArrayControllers/"
|
||||
"0/LogicalDrives/1")
|
||||
path2 = ("/redfish/v1/Systems/1/SmartStorage/ArrayControllers/"
|
||||
"0/LogicalDrives/2")
|
||||
calls = [
|
||||
mock.call(self.sys_stor_col._conn, path,
|
||||
mock.call(self.sys_stor_col._conn, path1,
|
||||
redfish_version=self.sys_stor_col.redfish_version),
|
||||
mock.call(self.sys_stor_col._conn, path2,
|
||||
redfish_version=self.sys_stor_col.redfish_version),
|
||||
]
|
||||
mock_eth.assert_has_calls(calls)
|
||||
self.assertIsInstance(members, list)
|
||||
self.assertEqual(1, len(members))
|
||||
self.assertEqual(2, len(members))
|
||||
|
||||
def test_maximum_size_mib(self):
|
||||
self.assertIsNone(self.sys_stor_col._maximum_size_mib)
|
||||
|
@ -92,7 +98,9 @@ class HPELogicalDriveCollectionTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
self.conn.get.return_value.json.return_value = json.loads(f.read())
|
||||
val = json.loads(f.read())
|
||||
self.conn.get.return_value.json.side_effect = (
|
||||
[val['logical_drive1'], val['logical_drive2']])
|
||||
expected = 953837
|
||||
actual = self.sys_stor_col.maximum_size_mib
|
||||
self.assertEqual(expected, actual)
|
||||
|
@ -103,7 +111,9 @@ class HPELogicalDriveCollectionTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
self.conn.get.return_value.json.return_value = json.loads(f.read())
|
||||
expected = set(['0'])
|
||||
val = json.loads(f.read())
|
||||
self.conn.get.return_value.json.side_effect = (
|
||||
[val['logical_drive1'], val['logical_drive2']])
|
||||
expected = set(['0', '1'])
|
||||
actual = self.sys_stor_col.logical_raid_levels
|
||||
self.assertEqual(expected, actual)
|
||||
|
|
|
@ -75,7 +75,9 @@ class HPESmartStorageTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
val.append(json.loads(f.read()))
|
||||
logical_drive = json.loads(f.read())
|
||||
val.append(logical_drive['logical_drive1'])
|
||||
val.append(logical_drive['logical_drive2'])
|
||||
self.conn.get.return_value.json.side_effect = val
|
||||
expected = 953837
|
||||
actual = self.sys_stor.logical_drives_maximum_size_mib
|
||||
|
@ -100,9 +102,11 @@ class HPESmartStorageTestCase(testtools.TestCase):
|
|||
path = ('proliantutils/tests/redfish/json_samples/'
|
||||
'logical_drive.json')
|
||||
with open(path, 'r') as f:
|
||||
val.append(json.loads(f.read()))
|
||||
logical_drive = json.loads(f.read())
|
||||
val.append(logical_drive['logical_drive1'])
|
||||
val.append(logical_drive['logical_drive2'])
|
||||
self.conn.get.return_value.json.side_effect = val
|
||||
expected = set(['0'])
|
||||
expected = set(['0', '1'])
|
||||
actual = self.sys_stor.logical_raid_levels
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
|
|
Loading…
Reference in New Issue