Add update method in EthernetSwitchStaticMAC in RSD 2.1
Change-Id: I04790902566a6456b6d95089eca1d8a2925d73b6
This commit is contained in:
parent
9720ce2e89
commit
ee8adbbb1d
@ -16,6 +16,7 @@
|
|||||||
from jsonschema import validate
|
from jsonschema import validate
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from sushy import exceptions
|
||||||
from sushy.resources import base
|
from sushy.resources import base
|
||||||
|
|
||||||
from rsd_lib import base as rsd_lib_base
|
from rsd_lib import base as rsd_lib_base
|
||||||
@ -36,6 +37,32 @@ class EthernetSwitchStaticMAC(rsd_lib_base.ResourceBase):
|
|||||||
mac_address = base.Field("MACAddress")
|
mac_address = base.Field("MACAddress")
|
||||||
"""The static mac address"""
|
"""The static mac address"""
|
||||||
|
|
||||||
|
def update(self, mac_address, vlan_id=None):
|
||||||
|
"""Update attributes of static MAC
|
||||||
|
|
||||||
|
:param mac_address: MAC address that should be forwarded to this port
|
||||||
|
:param vlan_id: If specified, defines which packets tagged with
|
||||||
|
specific VLANId should be forwarded to this port
|
||||||
|
"""
|
||||||
|
if not isinstance(mac_address, type("")):
|
||||||
|
raise exceptions.InvalidParameterValueError(
|
||||||
|
parameter="mac_address",
|
||||||
|
value=mac_address,
|
||||||
|
valid_values="string",
|
||||||
|
)
|
||||||
|
data = {"MACAddress": mac_address}
|
||||||
|
|
||||||
|
if vlan_id is not None:
|
||||||
|
if not isinstance(vlan_id, int):
|
||||||
|
raise exceptions.InvalidParameterValueError(
|
||||||
|
parameter="vlan_id",
|
||||||
|
value=vlan_id,
|
||||||
|
valid_values="int",
|
||||||
|
)
|
||||||
|
data["VLANId"] = vlan_id
|
||||||
|
|
||||||
|
self._conn.patch(self.path, data=data)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
"""Delete this static mac address"""
|
"""Delete this static mac address"""
|
||||||
self._conn.delete(self._path)
|
self._conn.delete(self._path)
|
||||||
|
@ -15,10 +15,11 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import jsonschema
|
import jsonschema
|
||||||
|
|
||||||
import mock
|
import mock
|
||||||
import testtools
|
import testtools
|
||||||
|
|
||||||
|
from sushy import exceptions
|
||||||
|
|
||||||
from rsd_lib.resources.v2_1.ethernet_switch import ethernet_switch_static_mac
|
from rsd_lib.resources.v2_1.ethernet_switch import ethernet_switch_static_mac
|
||||||
from rsd_lib.tests.unit.fakes import request_fakes
|
from rsd_lib.tests.unit.fakes import request_fakes
|
||||||
|
|
||||||
@ -52,6 +53,39 @@ class EthernetSwitchStaticMACTestCase(testtools.TestCase):
|
|||||||
self.assertEqual("00:11:22:33:44:55", self.static_mac_inst.mac_address)
|
self.assertEqual("00:11:22:33:44:55", self.static_mac_inst.mac_address)
|
||||||
self.assertEqual(112, self.static_mac_inst.vlan_id)
|
self.assertEqual(112, self.static_mac_inst.vlan_id)
|
||||||
|
|
||||||
|
def test_update(self):
|
||||||
|
reqs = {"MACAddress": "00:11:22:33:44:55"}
|
||||||
|
self.static_mac_inst.update("00:11:22:33:44:55")
|
||||||
|
self.static_mac_inst._conn.patch.assert_called_once_with(
|
||||||
|
"/redfish/v1/EthernetSwitches/Switch1/Ports/StaticMACs/1",
|
||||||
|
data=reqs,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.static_mac_inst._conn.patch.reset_mock()
|
||||||
|
reqs = {"MACAddress": "00:11:22:33:44:55", "VLANId": 69}
|
||||||
|
self.static_mac_inst.update(
|
||||||
|
"00:11:22:33:44:55", vlan_id=69
|
||||||
|
)
|
||||||
|
self.static_mac_inst._conn.patch.assert_called_once_with(
|
||||||
|
"/redfish/v1/EthernetSwitches/Switch1/Ports/StaticMACs/1",
|
||||||
|
data=reqs,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_update_invalid_reqs(self):
|
||||||
|
with self.assertRaisesRegex(
|
||||||
|
exceptions.InvalidParameterValueError,
|
||||||
|
('The parameter "mac_address" value "True" is invalid'),
|
||||||
|
):
|
||||||
|
self.static_mac_inst.update(True)
|
||||||
|
|
||||||
|
with self.assertRaisesRegex(
|
||||||
|
exceptions.InvalidParameterValueError,
|
||||||
|
('The parameter "vlan_id" value "invalid-value" is invalid'),
|
||||||
|
):
|
||||||
|
self.static_mac_inst.update(
|
||||||
|
"00:11:22:33:44:55", vlan_id="invalid-value"
|
||||||
|
)
|
||||||
|
|
||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
self.static_mac_inst.delete()
|
self.static_mac_inst.delete()
|
||||||
self.static_mac_inst._conn.delete.assert_called_once_with(
|
self.static_mac_inst._conn.delete.assert_called_once_with(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user