Merge "Add description field port create & port set"
This commit is contained in:
commit
85f2afdad0
@ -18,6 +18,7 @@ Create new port
|
||||
|
||||
os port create
|
||||
--network <network>
|
||||
[--description <description>]
|
||||
[--fixed-ip subnet=<subnet>,ip-address=<ip-address>]
|
||||
[--device <device-id>]
|
||||
[--device-owner <device-owner>]
|
||||
@ -34,6 +35,10 @@ Create new port
|
||||
|
||||
Network this port belongs to (name or ID)
|
||||
|
||||
.. option:: --description <description>
|
||||
|
||||
Description of this port
|
||||
|
||||
.. option:: --fixed-ip subnet=<subnet>,ip-address=<ip-address>
|
||||
|
||||
Desired IP and/or subnet (name or ID) for this port:
|
||||
@ -164,6 +169,7 @@ Set port properties
|
||||
.. code:: bash
|
||||
|
||||
os port set
|
||||
[--description <description>]
|
||||
[--fixed-ip subnet=<subnet>,ip-address=<ip-address>]
|
||||
[--no-fixed-ip]
|
||||
[--device <device-id>]
|
||||
@ -178,6 +184,10 @@ Set port properties
|
||||
[--no-security-group]
|
||||
<port>
|
||||
|
||||
.. option:: --description <description>
|
||||
|
||||
Description of this port
|
||||
|
||||
.. option:: --fixed-ip subnet=<subnet>,ip-address=<ip-address>
|
||||
|
||||
Desired IP and/or subnet (name or ID) for this port:
|
||||
|
@ -109,6 +109,8 @@ def _get_attrs(client_manager, parsed_args):
|
||||
'The --host-id option is deprecated, '
|
||||
'please use --host instead.'
|
||||
))
|
||||
if parsed_args.description is not None:
|
||||
attrs['description'] = parsed_args.description
|
||||
if parsed_args.fixed_ip is not None:
|
||||
attrs['fixed_ips'] = parsed_args.fixed_ip
|
||||
if parsed_args.device:
|
||||
@ -180,46 +182,51 @@ def _prepare_fixed_ips(client_manager, parsed_args):
|
||||
|
||||
|
||||
def _add_updatable_args(parser):
|
||||
# NOTE(dtroyer): --device-id is deprecated in Mar 2016. Do not
|
||||
# remove before 3.x release or Mar 2017.
|
||||
device_group = parser.add_mutually_exclusive_group()
|
||||
device_group.add_argument(
|
||||
'--device',
|
||||
metavar='<device-id>',
|
||||
help=_("Port device ID")
|
||||
)
|
||||
device_group.add_argument(
|
||||
'--device-id',
|
||||
metavar='<device-id>',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--device-owner',
|
||||
metavar='<device-owner>',
|
||||
help=_("Device owner of this port. This is the entity that uses "
|
||||
"the port (for example, network:dhcp).")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--vnic-type',
|
||||
metavar='<vnic-type>',
|
||||
choices=['direct', 'direct-physical', 'macvtap',
|
||||
'normal', 'baremetal'],
|
||||
help=_("VNIC type for this port (direct | direct-physical | "
|
||||
"macvtap | normal | baremetal, default: normal)")
|
||||
)
|
||||
# NOTE(dtroyer): --host-id is deprecated in Mar 2016. Do not
|
||||
# remove before 3.x release or Mar 2017.
|
||||
host_group = parser.add_mutually_exclusive_group()
|
||||
host_group.add_argument(
|
||||
'--host',
|
||||
metavar='<host-id>',
|
||||
help=_("Allocate port on host <host-id> (ID only)")
|
||||
)
|
||||
host_group.add_argument(
|
||||
'--host-id',
|
||||
metavar='<host-id>',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--description',
|
||||
metavar='<description>',
|
||||
help=_("Description of this port")
|
||||
)
|
||||
# NOTE(dtroyer): --device-id is deprecated in Mar 2016. Do not
|
||||
# remove before 3.x release or Mar 2017.
|
||||
device_group = parser.add_mutually_exclusive_group()
|
||||
device_group.add_argument(
|
||||
'--device',
|
||||
metavar='<device-id>',
|
||||
help=_("Port device ID")
|
||||
)
|
||||
device_group.add_argument(
|
||||
'--device-id',
|
||||
metavar='<device-id>',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--device-owner',
|
||||
metavar='<device-owner>',
|
||||
help=_("Device owner of this port. This is the entity that uses "
|
||||
"the port (for example, network:dhcp).")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--vnic-type',
|
||||
metavar='<vnic-type>',
|
||||
choices=['direct', 'direct-physical', 'macvtap',
|
||||
'normal', 'baremetal'],
|
||||
help=_("VNIC type for this port (direct | direct-physical | "
|
||||
"macvtap | normal | baremetal, default: normal)")
|
||||
)
|
||||
# NOTE(dtroyer): --host-id is deprecated in Mar 2016. Do not
|
||||
# remove before 3.x release or Mar 2017.
|
||||
host_group = parser.add_mutually_exclusive_group()
|
||||
host_group.add_argument(
|
||||
'--host',
|
||||
metavar='<host-id>',
|
||||
help=_("Allocate port on host <host-id> (ID only)")
|
||||
)
|
||||
host_group.add_argument(
|
||||
'--host-id',
|
||||
metavar='<host-id>',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
|
||||
|
||||
class CreatePort(command.ShowOne):
|
||||
|
@ -430,6 +430,7 @@ class FakePort(object):
|
||||
'binding:vif_details': {},
|
||||
'binding:vif_type': 'ovs',
|
||||
'binding:vnic_type': 'normal',
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'device_id': 'device-id-' + uuid.uuid4().hex,
|
||||
'device_owner': 'compute:nova',
|
||||
'dns_assignment': [{}],
|
||||
|
@ -41,6 +41,7 @@ class TestPort(network_fakes.TestNetworkV2):
|
||||
'binding_vif_details',
|
||||
'binding_vif_type',
|
||||
'binding_vnic_type',
|
||||
'description',
|
||||
'device_id',
|
||||
'device_owner',
|
||||
'dns_assignment',
|
||||
@ -65,6 +66,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.description,
|
||||
fake_port.device_id,
|
||||
fake_port.device_owner,
|
||||
utils.format_list_of_dicts(fake_port.dns_assignment),
|
||||
@ -130,6 +132,7 @@ class TestCreatePort(TestPort):
|
||||
'--mac-address', 'aa:aa:aa:aa:aa:aa',
|
||||
'--fixed-ip', 'subnet=%s,ip-address=10.0.0.2'
|
||||
% self.fake_subnet.id,
|
||||
'--description', self._port.description,
|
||||
'--device', 'deviceid',
|
||||
'--device-owner', 'fakeowner',
|
||||
'--disable',
|
||||
@ -146,6 +149,7 @@ class TestCreatePort(TestPort):
|
||||
'fixed_ip',
|
||||
[{'subnet': self.fake_subnet.id, 'ip-address': '10.0.0.2'}]
|
||||
),
|
||||
('description', self._port.description),
|
||||
('device', 'deviceid'),
|
||||
('device_owner', 'fakeowner'),
|
||||
('disable', True),
|
||||
@ -163,6 +167,7 @@ class TestCreatePort(TestPort):
|
||||
'mac_address': 'aa:aa:aa:aa:aa:aa',
|
||||
'fixed_ips': [{'subnet_id': self.fake_subnet.id,
|
||||
'ip_address': '10.0.0.2'}],
|
||||
'description': self._port.description,
|
||||
'device_id': 'deviceid',
|
||||
'device_owner': 'fakeowner',
|
||||
'admin_state_up': False,
|
||||
@ -715,6 +720,7 @@ class TestSetPort(TestPort):
|
||||
|
||||
def test_set_that(self):
|
||||
arglist = [
|
||||
'--description', 'newDescription',
|
||||
'--enable',
|
||||
'--vnic-type', 'macvtap',
|
||||
'--binding-profile', 'foo=bar',
|
||||
@ -723,6 +729,7 @@ class TestSetPort(TestPort):
|
||||
self._port.name,
|
||||
]
|
||||
verifylist = [
|
||||
('description', 'newDescription'),
|
||||
('enable', True),
|
||||
('vnic_type', 'macvtap'),
|
||||
('binding_profile', {'foo': 'bar'}),
|
||||
@ -739,6 +746,7 @@ class TestSetPort(TestPort):
|
||||
'binding:vnic_type': 'macvtap',
|
||||
'binding:profile': {'foo': 'bar'},
|
||||
'binding:host_id': 'binding-host-id-xxxx',
|
||||
'description': 'newDescription',
|
||||
'name': 'newName',
|
||||
}
|
||||
self.network.update_port.assert_called_once_with(self._port, **attrs)
|
||||
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Add ``--description`` option to ``port set`` and
|
||||
``port create`` commands.
|
||||
[Blueprint :oscbp:`neutron-client-descriptions`]
|
Loading…
Reference in New Issue
Block a user