Adds support for Dell BOSS card RAID1 creation

The Dell BOSS card requires that 0 be passed for the RAID 1 size_gb for
the RAID creation to be successful.  This change causes the code to
treat a size of 0 as valid so the BOSS RAID 1 can be created.

Change-Id: Id149f6250318e6162a168d002671faa2b3a7989b
Task: #22082
Story: #2002536
Co-Authored-By: Digambar Patil <digambarpat@gmail.com>
This commit is contained in:
Christopher Dearborn 2018-06-13 14:35:59 -04:00
parent a300f85654
commit 413bfce123
2 changed files with 19 additions and 4 deletions

View File

@ -428,10 +428,7 @@ class RAIDManagement(object):
error_msgs.append("'physical_disks' is not supplied")
# size validation
if not size_mb:
error_msgs.append("'size_mb' is not supplied")
else:
utils.validate_integer_value(size_mb, 'size_mb', error_msgs)
utils.validate_integer_value(size_mb, 'size_mb', error_msgs)
virtual_disk_prop_names.append('Size')
virtual_disk_prop_values.append(str(size_mb))

View File

@ -440,6 +440,24 @@ class ClientRAIDManagementTestCase(base.BaseTest):
physical_disks=['disk1', 'disk2'], raid_level='1', size_mb=None,
disk_name='name', span_length=2, span_depth=3)
# This test is specifically for support of creating a RAID1 on a Dell BOSS
# card. It requires that size_mb is set to 0
@mock.patch.object(dracclient.client.WSManClient, 'invoke',
spec_set=True, autospec=True)
def test_create_virtual_disk_0_size(self, mock_requests, mock_invoke):
mock_invoke.return_value = lxml.etree.fromstring(
test_utils.RAIDInvocations[uris.DCIM_RAIDService][
'CreateVirtualDisk']['ok'])
self.drac_client.create_virtual_disk(
raid_controller='controller',
physical_disks=['disk1', 'disk2'],
raid_level='1',
size_mb=0,
disk_name='name',
span_length=1,
span_depth=2)
def test_create_virtual_disk_invalid_size(self, mock_requests):
self.assertRaises(
exceptions.InvalidParameterValue,