Merge "Add 'data_plane_status' option to Port classes"
This commit is contained in:
commit
894df67c67
@ -232,6 +232,7 @@ Set port properties
|
||||
[--dns-name <dns-name>]
|
||||
[--allowed-address ip-address=<ip-address>[,mac-address=<mac-address>]]
|
||||
[--no-allowed-address]
|
||||
[--data-plane-status <status>]
|
||||
<port>
|
||||
|
||||
.. option:: --description <description>
|
||||
@ -335,6 +336,12 @@ Set port properties
|
||||
(Specify both --allowed-address and --no-allowed-address
|
||||
to overwrite the current allowed-address pairs)
|
||||
|
||||
.. option:: --data-plane-status
|
||||
|
||||
Set data plane status of this port (ACTIVE | DOWN).
|
||||
Unset it to None with the 'port unset' command
|
||||
(requires data plane status extension)
|
||||
|
||||
.. _port_set-port:
|
||||
.. describe:: <port>
|
||||
|
||||
@ -370,6 +377,7 @@ Unset port properties
|
||||
[--security-group <security-group> [...]]
|
||||
[--allowed-address ip-address=<ip-address>[,mac-address=<mac-address>] [...]]
|
||||
[--qos-policy]
|
||||
[--data-plane-status]
|
||||
<port>
|
||||
|
||||
.. option:: --fixed-ip subnet=<subnet>,ip-address=<ip-address>
|
||||
@ -398,6 +406,10 @@ Unset port properties
|
||||
|
||||
Remove the QoS policy attached to the port
|
||||
|
||||
.. option:: --data-plane-status
|
||||
|
||||
Clear existing information of data plane status
|
||||
|
||||
.. _port_unset-port:
|
||||
.. describe:: <port>
|
||||
|
||||
|
@ -685,6 +685,15 @@ class SetPort(command.Command):
|
||||
"(Specify both --allowed-address and --no-allowed-address"
|
||||
"to overwrite the current allowed-address pairs)")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--data-plane-status',
|
||||
metavar='<status>',
|
||||
choices=['ACTIVE', 'DOWN'],
|
||||
help=_("Set data plane status of this port (ACTIVE | DOWN). "
|
||||
"Unset it to None with the 'port unset' command "
|
||||
"(requires data plane status extension)")
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
@ -737,6 +746,8 @@ class SetPort(command.Command):
|
||||
attrs['allowed_address_pairs'].extend(
|
||||
_convert_address_pairs(parsed_args)
|
||||
)
|
||||
if parsed_args.data_plane_status:
|
||||
attrs['data_plane_status'] = parsed_args.data_plane_status
|
||||
|
||||
client.update_port(obj, **attrs)
|
||||
|
||||
@ -816,6 +827,11 @@ class UnsetPort(command.Command):
|
||||
default=False,
|
||||
help=_("Remove the QoS policy attached to the port")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--data-plane-status',
|
||||
action='store_true',
|
||||
help=_("Clear existing information of data plane status")
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
@ -867,6 +883,8 @@ class UnsetPort(command.Command):
|
||||
attrs['allowed_address_pairs'] = tmp_addr_pairs
|
||||
if parsed_args.qos_policy:
|
||||
attrs['qos_policy_id'] = None
|
||||
if parsed_args.data_plane_status:
|
||||
attrs['data_plane_status'] = None
|
||||
|
||||
if attrs:
|
||||
client.update_port(obj, **attrs)
|
||||
|
@ -558,6 +558,7 @@ class FakePort(object):
|
||||
'binding:vif_details': {},
|
||||
'binding:vif_type': 'ovs',
|
||||
'binding:vnic_type': 'normal',
|
||||
'data_plane_status': None,
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'device_id': 'device-id-' + uuid.uuid4().hex,
|
||||
'device_owner': 'compute:nova',
|
||||
|
@ -44,6 +44,7 @@ class TestPort(network_fakes.TestNetworkV2):
|
||||
'binding_vif_details',
|
||||
'binding_vif_type',
|
||||
'binding_vnic_type',
|
||||
'data_plane_status',
|
||||
'description',
|
||||
'device_id',
|
||||
'device_owner',
|
||||
@ -70,6 +71,7 @@ class TestPort(network_fakes.TestNetworkV2):
|
||||
utils.format_dict(fake_port.binding_vif_details),
|
||||
fake_port.binding_vif_type,
|
||||
fake_port.binding_vnic_type,
|
||||
fake_port.data_plane_status,
|
||||
fake_port.description,
|
||||
fake_port.device_id,
|
||||
fake_port.device_owner,
|
||||
@ -1371,6 +1373,40 @@ class TestSetPort(TestPort):
|
||||
self.network.update_port.assert_called_once_with(_testport, **attrs)
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_set_port_data_plane_status(self):
|
||||
_testport = network_fakes.FakePort.create_one_port(
|
||||
{'data_plane_status': None})
|
||||
self.network.find_port = mock.Mock(return_value=_testport)
|
||||
arglist = [
|
||||
'--data-plane-status', 'ACTIVE',
|
||||
_testport.name,
|
||||
]
|
||||
verifylist = [
|
||||
('data_plane_status', 'ACTIVE'),
|
||||
('port', _testport.name),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
attrs = {
|
||||
'data_plane_status': 'ACTIVE',
|
||||
}
|
||||
|
||||
self.network.update_port.assert_called_once_with(_testport, **attrs)
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_set_port_invalid_data_plane_status_value(self):
|
||||
arglist = [
|
||||
'--data-plane-status', 'Spider-Man',
|
||||
'test-port',
|
||||
]
|
||||
self.assertRaises(tests_utils.ParserException,
|
||||
self.check_parser,
|
||||
self.cmd,
|
||||
arglist,
|
||||
None)
|
||||
|
||||
|
||||
class TestShowPort(TestPort):
|
||||
|
||||
@ -1573,3 +1609,26 @@ class TestUnsetPort(TestPort):
|
||||
self.assertRaises(exceptions.CommandError,
|
||||
self.cmd.take_action,
|
||||
parsed_args)
|
||||
|
||||
def test_unset_port_data_plane_status(self):
|
||||
_fake_port = network_fakes.FakePort.create_one_port(
|
||||
{'data_plane_status': 'ACTIVE'})
|
||||
self.network.find_port = mock.Mock(return_value=_fake_port)
|
||||
arglist = [
|
||||
'--data-plane-status',
|
||||
_fake_port.name,
|
||||
]
|
||||
verifylist = [
|
||||
('data_plane_status', True),
|
||||
('port', _fake_port.name),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
attrs = {
|
||||
'data_plane_status': None,
|
||||
}
|
||||
|
||||
self.network.update_port.assert_called_once_with(_fake_port, **attrs)
|
||||
self.assertIsNone(result)
|
||||
|
5
releasenotes/notes/bug-1684989-3bda158a822d2f73.yaml
Normal file
5
releasenotes/notes/bug-1684989-3bda158a822d2f73.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- Add ``--data-plane-status`` option to ``port set`` and ``port unset``
|
||||
commands.
|
||||
[Bug `1684989 <https://bugs.launchpad.net/bugs/1684989>`_]
|
Loading…
Reference in New Issue
Block a user