diff options
author | Alexander Lingo <alingo@nvidia.com> | 2022-05-06 13:28:02 -0700 |
---|---|---|
committer | Chris Krelle <ckrelle@nvidia.com> | 2022-09-09 16:47:47 -0700 |
commit | 4415c55028ea9b2bb4b136f5245c3e8059433533 (patch) | |
tree | 7116dd35d1555788c676d7bb5ae1b26cee53c7d1 /ironic/tests | |
parent | b796d7b833f5e8589401418e0c4d967bab7a7d81 (diff) | |
download | ironic-4415c55028ea9b2bb4b136f5245c3e8059433533.tar.gz |
Cleanup submitted SNMP driver code for additional PDUs
* Resolved PEP8 issues
* Trimmed comments to remove extraneous information
* Changed rfc1902.Integer() calls to the correct snmp.Integer() calls
* Fixed power state logic checking for new PDUs that don't have transitional states (e.g., 'pendingOn')
* Removed redundant warning messages
* Added unit tests for Raritan PD2, ServerTech Sentry 3/4, and Vertiv Geist drivers
* Updated documentation to list tested PDUs for the new drivers
* Updated release notes
Change-Id: I9da7b9042b817c346f75a44cd8287e1f63efcb56
Diffstat (limited to 'ironic/tests')
-rw-r--r-- | ironic/tests/unit/drivers/modules/test_snmp.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/test_snmp.py b/ironic/tests/unit/drivers/modules/test_snmp.py index 6bdd2da5a..00799dc4d 100644 --- a/ironic/tests/unit/drivers/modules/test_snmp.py +++ b/ironic/tests/unit/drivers/modules/test_snmp.py @@ -327,6 +327,34 @@ class SNMPValidateParametersTestCase(db_base.DbTestCase): info = snmp._parse_driver_info(node) self.assertEqual('teltronix', info['driver']) + def test__parse_driver_info_servertech_sentry3(self): + # Make sure the servertech_sentry3 driver type is parsed. + info = db_utils.get_test_snmp_info(snmp_driver='servertech_sentry3') + node = self._get_test_node(info) + info = snmp._parse_driver_info(node) + self.assertEqual('servertech_sentry3', info['driver']) + + def test__parse_driver_info_servertech_sentry4(self): + # Make sure the servertech_sentry4 driver type is parsed. + info = db_utils.get_test_snmp_info(snmp_driver='servertech_sentry4') + node = self._get_test_node(info) + info = snmp._parse_driver_info(node) + self.assertEqual('servertech_sentry4', info['driver']) + + def test__parse_driver_info_raritan_pdu2(self): + # Make sure the raritan_pdu2 driver type is parsed. + info = db_utils.get_test_snmp_info(snmp_driver='raritan_pdu2') + node = self._get_test_node(info) + info = snmp._parse_driver_info(node) + self.assertEqual('raritan_pdu2', info['driver']) + + def test__parse_driver_info_vertivgeist_pdu(self): + # Make sure the vertivgeist_pdu driver type is parsed. + info = db_utils.get_test_snmp_info(snmp_driver='vertivgeist_pdu') + node = self._get_test_node(info) + info = snmp._parse_driver_info(node) + self.assertEqual('vertivgeist_pdu', info['driver']) + def test__parse_driver_info_snmp_v1(self): # Make sure SNMPv1 is parsed with a community string. info = db_utils.get_test_snmp_info(snmp_version='1', @@ -1260,6 +1288,58 @@ class SNMPDeviceDriverTestCase(db_base.DbTestCase): def test_apc_rackpdu_power_reset(self, mock_get_client): self._test_simple_device_power_reset('apc_rackpdu', mock_get_client) + def test_raritan_pdu2_snmp_objects(self, mock_get_client): + # Ensure the correct SNMP object OIDs and values are used by the + # Raritan PDU2 driver + self._update_driver_info(snmp_driver="raritan_pdu2", + snmp_outlet="6") + driver = snmp._get_driver(self.node) + oid = (1, 3, 6, 1, 4, 1, 13742, 6, 4, 1, 2, 1, 2, 1, 6) + action = (2,) + + self.assertEqual(oid, driver._snmp_oid(action)) + self.assertEqual(1, driver.value_power_on) + self.assertEqual(0, driver.value_power_off) + + def test_servertech_sentry3_snmp_objects(self, mock_get_client): + # Ensure the correct SNMP object OIDs and values are used by the + # ServerTech Sentry3 driver + self._update_driver_info(snmp_driver="servertech_sentry3", + snmp_outlet="6") + driver = snmp._get_driver(self.node) + oid = (1, 3, 6, 1, 4, 1, 1718, 3, 2, 3, 1, 5, 1, 1, 6) + action = (5,) + + self.assertEqual(oid, driver._snmp_oid(action)) + self.assertEqual(1, driver.value_power_on) + self.assertEqual(2, driver.value_power_off) + + def test_servertech_sentry4_snmp_objects(self, mock_get_client): + # Ensure the correct SNMP object OIDs and values are used by the + # ServerTech Sentry4 driver + self._update_driver_info(snmp_driver="servertech_sentry4", + snmp_outlet="6") + driver = snmp._get_driver(self.node) + oid = (1, 3, 6, 1, 4, 1, 1718, 4, 1, 8, 5, 1, 2, 1, 1, 6) + action = (2,) + + self.assertEqual(oid, driver._snmp_oid(action)) + self.assertEqual(1, driver.value_power_on) + self.assertEqual(2, driver.value_power_off) + + def test_vertivgeist_pdu_snmp_objects(self, mock_get_client): + # Ensure the correct SNMP object OIDs and values are used by the + # Vertiv Geist PDU driver + self._update_driver_info(snmp_driver="vertivgeist_pdu", + snmp_outlet="6") + driver = snmp._get_driver(self.node) + oid = (1, 3, 6, 1, 4, 1, 21239, 5, 2, 3, 5, 1, 4, 6) + action = (4,) + + self.assertEqual(oid, driver._snmp_oid(action)) + self.assertEqual(2, driver.value_power_on) + self.assertEqual(4, driver.value_power_off) + def test_aten_snmp_objects(self, mock_get_client): # Ensure the correct SNMP object OIDs and values are used by the # Aten driver |