summaryrefslogtreecommitdiff
path: root/ironic/tests
diff options
context:
space:
mode:
authorAlexander Lingo <alingo@nvidia.com>2022-05-06 13:28:02 -0700
committerChris Krelle <ckrelle@nvidia.com>2022-09-09 16:47:47 -0700
commit4415c55028ea9b2bb4b136f5245c3e8059433533 (patch)
tree7116dd35d1555788c676d7bb5ae1b26cee53c7d1 /ironic/tests
parentb796d7b833f5e8589401418e0c4d967bab7a7d81 (diff)
downloadironic-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.py80
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