diff --git a/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port.py b/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port.py index 216ec98..06eea4d 100644 --- a/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port.py +++ b/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port.py @@ -47,10 +47,6 @@ class EthernetSwitchPort(ethernet_switch_port.EthernetSwitchPort): links = LinksField("Links") - def _get_metrics_path(self): - """Helper function to find the Port metrics path""" - return utils.get_sub_resource_path_by(self, "Metrics") - @property @utils.cache_it def metrics(self): diff --git a/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port_metrics.py b/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port_metrics.py index 52d6e4a..bfebaed 100644 --- a/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port_metrics.py +++ b/rsd_lib/resources/v2_2/ethernet_switch/ethernet_switch_port_metrics.py @@ -15,57 +15,49 @@ from sushy.resources import base +from rsd_lib import base as rsd_lib_base from rsd_lib import utils as rsd_lib_utils -class ReceivedField(base.CompositeField): +class MetricsField(base.CompositeField): + packets = base.Field("Packets", adapter=rsd_lib_utils.num_or_none) + """Packets counter""" + dropped_packets = base.Field( "DroppedPackets", adapter=rsd_lib_utils.num_or_none ) + """Dropped packets counter""" + error_packets = base.Field( "ErrorPackets", adapter=rsd_lib_utils.num_or_none ) + """Error packets counter""" + broadcast_packets = base.Field( "BroadcastPackets", adapter=rsd_lib_utils.num_or_none ) + """Broadcast packets counter""" + multicast_packets = base.Field( "MulticastPackets", adapter=rsd_lib_utils.num_or_none ) + """Multicats packets counter""" + + bytes = base.Field("Bytes", adapter=rsd_lib_utils.num_or_none) + """Bytes counter""" + errors = base.Field("Errors", adapter=rsd_lib_utils.num_or_none) - received_bytes = base.Field("Bytes", adapter=rsd_lib_utils.num_or_none) + """Error counter""" -class TransmittedField(base.CompositeField): - packets = base.Field("Packets", adapter=rsd_lib_utils.num_or_none) - dropped_packets = base.Field( - "DroppedPackets", adapter=rsd_lib_utils.num_or_none - ) - error_packets = base.Field( - "ErrorPackets", adapter=rsd_lib_utils.num_or_none - ) - broadcast_packets = base.Field( - "BroadcastPackets", adapter=rsd_lib_utils.num_or_none - ) - multicast_packets = base.Field( - "MulticastPackets", adapter=rsd_lib_utils.num_or_none - ) - errors = base.Field("Errors", adapter=rsd_lib_utils.num_or_none) - transmitted_bytes = base.Field("Bytes", adapter=rsd_lib_utils.num_or_none) +class EthernetSwitchPortMetrics(rsd_lib_base.ResourceBase): + received = MetricsField("Received") + """Port Receive metrics""" -class EthernetSwitchPortMetrics(base.ResourceBase): - name = base.Field("Name") - """The metrics name""" - - identity = base.Field("Id") - """The metrics identity""" - - received = ReceivedField("Received") - """The received packets status""" - - transmitted = TransmittedField("Transmitted") - """The transmitted packets status""" + transmitted = MetricsField("Transmitted") + """Port Transmit metrics.""" collisions = base.Field("Collisions", adapter=rsd_lib_utils.num_or_none) - """The collisions status""" + """Collisions counter""" diff --git a/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port.py b/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port.py index 1df50b6..c305955 100644 --- a/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port.py +++ b/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port.py @@ -17,8 +17,6 @@ import json import mock import testtools -from sushy import exceptions - from rsd_lib.resources.v2_2.ethernet_switch import ethernet_switch_port from rsd_lib.resources.v2_2.ethernet_switch import ethernet_switch_port_metrics @@ -40,19 +38,6 @@ class PortTestCase(testtools.TestCase): redfish_version="1.0.2", ) - def test__get_metrics_path(self): - self.assertEqual( - "/redfish/v1/EthernetSwitches/Switch1/Ports/Port1/Metrics", - self.port_inst._get_metrics_path(), - ) - - def test__get_metrics_path_missing_ports_attr(self): - self.port_inst._json.pop("Metrics") - with self.assertRaisesRegex( - exceptions.MissingAttributeError, "attribute Metrics" - ): - self.port_inst._get_metrics_path() - def test_metrics(self): # | GIVEN | self.conn.get.return_value.json.reset_mock() diff --git a/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port_metrics.py b/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port_metrics.py index 78275ae..f3ccfda 100644 --- a/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port_metrics.py +++ b/rsd_lib/tests/unit/resources/v2_2/ethernet_switch/test_ethernet_switch_port_metrics.py @@ -53,7 +53,7 @@ class PortMetricsTestCase(testtools.TestCase): self.assertEqual(3, self.port_metrics_inst.received.broadcast_packets) self.assertEqual(2, self.port_metrics_inst.received.multicast_packets) self.assertEqual(0, self.port_metrics_inst.received.errors) - self.assertEqual(64, self.port_metrics_inst.received.received_bytes) + self.assertEqual(64, self.port_metrics_inst.received.bytes) self.assertEqual(128, self.port_metrics_inst.transmitted.packets) self.assertEqual(1, self.port_metrics_inst.transmitted.dropped_packets) @@ -65,8 +65,6 @@ class PortMetricsTestCase(testtools.TestCase): 4, self.port_metrics_inst.transmitted.multicast_packets ) self.assertEqual(5, self.port_metrics_inst.transmitted.errors) - self.assertEqual( - 512, self.port_metrics_inst.transmitted.transmitted_bytes - ) + self.assertEqual(512, self.port_metrics_inst.transmitted.bytes) self.assertEqual(0, self.port_metrics_inst.collisions)