diff options
author | mallikarjuna.kolagatla <mallikarjuna.reddy@hpe.com> | 2022-08-17 13:01:58 +0000 |
---|---|---|
committer | mallikarjuna.kolagatla <mallikarjuna.reddy@hpe.com> | 2022-09-05 11:58:44 +0000 |
commit | 166bd1697aa5cad99c733127f83fc4a08e24d153 (patch) | |
tree | 42438aa8b03bf93bff0b344fcee4c0df2cb0f247 /ironic/tests/unit/drivers | |
parent | 4a347b3069498d0f2b49105014e6e118b5972c0f (diff) | |
download | ironic-166bd1697aa5cad99c733127f83fc4a08e24d153.tar.gz |
Enables event subscription methods for ilo and ilo5 hardware types
Enables event subscription methods by inheriting RedfishVendorPassthru
for ilo and ilo5 hardware types
Story: 2010207
Task: 45931
Change-Id: I96f7e44069402e3f1d25bcd527408008ca5e77cb
Diffstat (limited to 'ironic/tests/unit/drivers')
-rw-r--r-- | ironic/tests/unit/drivers/modules/ilo/test_common.py | 17 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/ilo/test_vendor.py | 71 |
2 files changed, 88 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/ilo/test_common.py b/ironic/tests/unit/drivers/modules/ilo/test_common.py index 352eb0837..41f2eb357 100644 --- a/ironic/tests/unit/drivers/modules/ilo/test_common.py +++ b/ironic/tests/unit/drivers/modules/ilo/test_common.py @@ -1,3 +1,4 @@ +# Copyright 2022 Hewlett Packard Enterprise Development LP # Copyright 2014 Hewlett-Packard Development Company, L.P. # All Rights Reserved. # @@ -374,6 +375,22 @@ class IloCommonMethodsTestCase(BaseIloTest): expected_info = dict(self.info, **ipmi_info) self.assertEqual(expected_info, actual_info) + def test_update_redfish_properties(self): + with task_manager.acquire(self.context, self.node.uuid, + shared=False) as task: + redfish_info = { + "redfish_address": "1.2.3.4", + "redfish_username": "admin", + "redfish_password": "fake", + "redfish_verify_ca": None, + "redfish_system_id": "/redfish/v1/Systems/1" + } + task.node.driver_info = self.info + ilo_common.update_redfish_properties(task) + actual_info = task.node.driver_info + expected_info = dict(self.info, **redfish_info) + self.assertEqual(expected_info, actual_info) + def test__get_floppy_image_name(self): image_name_expected = 'image-' + self.node.uuid image_name_actual = ilo_common._get_floppy_image_name(self.node) diff --git a/ironic/tests/unit/drivers/modules/ilo/test_vendor.py b/ironic/tests/unit/drivers/modules/ilo/test_vendor.py index f3114826e..b7bc3cbce 100644 --- a/ironic/tests/unit/drivers/modules/ilo/test_vendor.py +++ b/ironic/tests/unit/drivers/modules/ilo/test_vendor.py @@ -1,3 +1,4 @@ +# Copyright 2022 Hewlett Packard Enterprise Development LP # Copyright 2015 Hewlett-Packard Development Company, L.P. # All Rights Reserved. # @@ -30,6 +31,7 @@ from ironic.tests.unit.drivers.modules.ilo import test_common class VendorPassthruTestCase(test_common.BaseIloTest): boot_interface = 'ilo-virtual-media' + vendor_interface = 'ilo' @mock.patch.object(manager_utils, 'node_power_action', spec_set=True, autospec=True) @@ -95,3 +97,72 @@ class VendorPassthruTestCase(test_common.BaseIloTest): task, info) validate_image_prop_mock.assert_called_once_with( task.context, 'foo') + + @mock.patch.object(ilo_common, 'get_ilo_object', spec_set=True, + autospec=True) + def test__validate_is_it_a_supported_system( + self, get_ilo_object_mock): + with task_manager.acquire(self.context, self.node.uuid, + shared=False) as task: + task.node.maintenance = True + ilo_mock_object = get_ilo_object_mock.return_value + ilo_mock_object.get_product_name.return_value = ( + 'ProLiant DL380 Gen10') + task.driver.vendor._validate_is_it_a_supported_system(task) + get_ilo_object_mock.assert_called_once_with(task.node) + + @mock.patch.object(ilo_common, 'get_ilo_object', spec_set=True, + autospec=True) + def test__validate_is_it_a_supported_system_exception( + self, get_ilo_object_mock): + with task_manager.acquire(self.context, self.node.uuid, + shared=False) as task: + task.node.maintenance = True + ilo_mock_object = get_ilo_object_mock.return_value + ilo_mock_object.get_product_name.return_value = ( + 'ProLiant DL380 Gen8') + self.assertRaises( + exception.IloOperationNotSupported, + task.driver.vendor._validate_is_it_a_supported_system, task) + + @mock.patch.object(ilo_common, 'parse_driver_info', + spec_set=True, autospec=True) + @mock.patch.object(ilo_common, 'update_redfish_properties', + spec_set=True, autospec=True) + @mock.patch.object(ilo_vendor.VendorPassthru, + '_validate_is_it_a_supported_system', + spec_set=True, autospec=True) + def test_validate_create_subscription(self, validate_redfish_system_mock, + redfish_properties_mock, + driver_info_mock): + self.node.vendor_interface = 'ilo' + self.node.save() + with task_manager.acquire(self.context, self.node.uuid, + shared=False) as task: + d_info = {'ilo_address': '1.1.1.1', + 'ilo_username': 'user', + 'ilo_password': 'password', + 'ilo_verify_ca': False} + driver_info_mock.return_value = d_info + redfish_properties = {'redfish_address': '1.1.1.1', + 'redfish_username': 'user', + 'redfish_password': 'password', + 'redfish_system_id': '/redfish/v1/Systems/1', + 'redfish_verify_ca': False} + redfish_properties_mock.return_value = redfish_properties + kwargs = {'Destination': 'https://someulr', + 'Context': 'MyProtocol'} + task.driver.vendor.validate(task, 'create_subscription', **kwargs) + driver_info_mock.assert_called_once_with(task.node) + redfish_properties_mock.assert_called_once_with(task) + validate_redfish_system_mock.assert_called_once_with( + task.driver.vendor, task) + + def test_validate_operation_exeption(self): + self.node.vendor_interface = 'ilo' + self.node.save() + with task_manager.acquire(self.context, self.node.uuid, + shared=False) as task: + self.assertRaises( + exception.IloOperationNotSupported, + task.driver.vendor.validate, task, 'eject_vmedia') |