Add --description to Neutron commands
Added simple option for floating ip description when creating a floating ip. Added option for create and set router as well. Partially Implements: blueprint neutron-client-descriptions Partially Implements: blueprint network-commands-options Change-Id: Ib8cd8af449e9ff33b980017b2527a6b196894a00
This commit is contained in:
parent
ccd2d658d1
commit
0981931628
@ -17,6 +17,7 @@ Create floating IP
|
||||
[--port <port>]
|
||||
[--floating-ip-address <floating-ip-address>]
|
||||
[--fixed-ip-address <fixed-ip-address>]
|
||||
[--description <description>]
|
||||
<network>
|
||||
|
||||
.. option:: --subnet <subnet>
|
||||
@ -39,6 +40,11 @@ Create floating IP
|
||||
Fixed IP address mapped to the floating IP
|
||||
*Network version 2 only*
|
||||
|
||||
.. option:: --description <description>
|
||||
|
||||
Set floating IP description
|
||||
*Network version 2 only*
|
||||
|
||||
.. describe:: <network>
|
||||
|
||||
Network to allocate floating IP from (name or ID)
|
||||
|
@ -64,6 +64,7 @@ Create new router
|
||||
[--project <project> [--project-domain <project-domain>]]
|
||||
[--enable | --disable]
|
||||
[--distributed]
|
||||
[--description <description>]
|
||||
[--availability-zone-hint <availability-zone>]
|
||||
<name>
|
||||
|
||||
@ -88,6 +89,10 @@ Create new router
|
||||
|
||||
Create a distributed router
|
||||
|
||||
.. option:: --description <description>
|
||||
|
||||
Set router description
|
||||
|
||||
.. option:: --availability-zone-hint <availability-zone>
|
||||
|
||||
Availability Zone in which to create this router
|
||||
@ -186,6 +191,7 @@ Set router properties
|
||||
[--name <name>]
|
||||
[--enable | --disable]
|
||||
[--distributed | --centralized]
|
||||
[--description <description>]
|
||||
[--route destination=<subnet>,gateway=<ip-address> | --no-route]
|
||||
<router>
|
||||
|
||||
@ -209,6 +215,10 @@ Set router properties
|
||||
|
||||
Set router to centralized mode (disabled router only)
|
||||
|
||||
.. option:: --description <description>
|
||||
|
||||
Set router description
|
||||
|
||||
.. option:: --route destination=<subnet>,gateway=<ip-address>
|
||||
|
||||
Routes associated with the router
|
||||
|
@ -55,6 +55,9 @@ def _get_attrs(client_manager, parsed_args):
|
||||
if parsed_args.fixed_ip_address:
|
||||
attrs['fixed_ip_address'] = parsed_args.fixed_ip_address
|
||||
|
||||
if parsed_args.description is not None:
|
||||
attrs['description'] = parsed_args.description
|
||||
|
||||
return attrs
|
||||
|
||||
|
||||
@ -97,6 +100,11 @@ class CreateFloatingIP(common.NetworkAndComputeShowOne):
|
||||
dest='fixed_ip_address',
|
||||
help=_("Fixed IP address mapped to the floating IP")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--description',
|
||||
metavar='<description>',
|
||||
help=_('Set floating IP description')
|
||||
)
|
||||
return parser
|
||||
|
||||
def take_action_network(self, client, parsed_args):
|
||||
|
@ -82,7 +82,8 @@ def _get_attrs(client_manager, parsed_args):
|
||||
if ('availability_zone_hints' in parsed_args
|
||||
and parsed_args.availability_zone_hints is not None):
|
||||
attrs['availability_zone_hints'] = parsed_args.availability_zone_hints
|
||||
|
||||
if parsed_args.description is not None:
|
||||
attrs['description'] = parsed_args.description
|
||||
# "router set" command doesn't support setting project.
|
||||
if 'project' in parsed_args and parsed_args.project is not None:
|
||||
identity_client = client_manager.identity
|
||||
@ -179,6 +180,11 @@ class CreateRouter(command.ShowOne):
|
||||
default=False,
|
||||
help=_("Create a distributed router")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--description',
|
||||
metavar='<description>',
|
||||
help=_('Set router description')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--project',
|
||||
metavar='<project>',
|
||||
@ -370,6 +376,11 @@ class SetRouter(command.Command):
|
||||
metavar='<name>',
|
||||
help=_("Set router name")
|
||||
)
|
||||
parser.add_argument(
|
||||
'--description',
|
||||
metavar='<description>',
|
||||
help=_('Set router description')
|
||||
)
|
||||
admin_group = parser.add_mutually_exclusive_group()
|
||||
admin_group.add_argument(
|
||||
'--enable',
|
||||
|
@ -651,6 +651,7 @@ class FakeRouter(object):
|
||||
'name': 'router-name-' + uuid.uuid4().hex,
|
||||
'status': 'ACTIVE',
|
||||
'admin_state_up': True,
|
||||
'description': 'router-description-' + uuid.uuid4().hex,
|
||||
'distributed': False,
|
||||
'ha': False,
|
||||
'tenant_id': 'project-id-' + uuid.uuid4().hex,
|
||||
@ -970,6 +971,7 @@ class FakeFloatingIP(object):
|
||||
'router_id': 'router-id-' + uuid.uuid4().hex,
|
||||
'port_id': 'port-id-' + uuid.uuid4().hex,
|
||||
'tenant_id': 'project-id-' + uuid.uuid4().hex,
|
||||
'description': 'floating-ip-description-' + uuid.uuid4().hex,
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
|
@ -49,6 +49,7 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
)
|
||||
|
||||
columns = (
|
||||
'description',
|
||||
'dns_domain',
|
||||
'dns_name',
|
||||
'fixed_ip_address',
|
||||
@ -62,6 +63,7 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
)
|
||||
|
||||
data = (
|
||||
floating_ip.description,
|
||||
floating_ip.dns_domain,
|
||||
floating_ip.dns_name,
|
||||
floating_ip.fixed_ip_address,
|
||||
@ -117,14 +119,16 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
'--port', self.floating_ip.port_id,
|
||||
'--floating-ip-address', self.floating_ip.floating_ip_address,
|
||||
'--fixed-ip-address', self.floating_ip.fixed_ip_address,
|
||||
'--description', self.floating_ip.description,
|
||||
self.floating_ip.floating_network_id,
|
||||
]
|
||||
verifylist = [
|
||||
('subnet', self.subnet.id),
|
||||
('port', self.floating_ip.port_id),
|
||||
('floating_ip_address', self.floating_ip.floating_ip_address),
|
||||
('fixed_ip_address', self.floating_ip.fixed_ip_address),
|
||||
('network', self.floating_ip.floating_network_id),
|
||||
('description', self.floating_ip.description),
|
||||
('floating_ip_address', self.floating_ip.floating_ip_address),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -136,6 +140,7 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
'floating_ip_address': self.floating_ip.floating_ip_address,
|
||||
'fixed_ip_address': self.floating_ip.fixed_ip_address,
|
||||
'floating_network_id': self.floating_ip.floating_network_id,
|
||||
'description': self.floating_ip.description,
|
||||
})
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertEqual(self.data, data)
|
||||
@ -269,6 +274,7 @@ class TestShowFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
floating_ip = network_fakes.FakeFloatingIP.create_one_floating_ip()
|
||||
|
||||
columns = (
|
||||
'description',
|
||||
'dns_domain',
|
||||
'dns_name',
|
||||
'fixed_ip_address',
|
||||
@ -282,6 +288,7 @@ class TestShowFloatingIPNetwork(TestFloatingIPNetwork):
|
||||
)
|
||||
|
||||
data = (
|
||||
floating_ip.description,
|
||||
floating_ip.dns_domain,
|
||||
floating_ip.dns_name,
|
||||
floating_ip.fixed_ip_address,
|
||||
|
@ -119,6 +119,7 @@ class TestCreateRouter(TestRouter):
|
||||
'admin_state_up',
|
||||
'availability_zone_hints',
|
||||
'availability_zones',
|
||||
'description',
|
||||
'distributed',
|
||||
'external_gateway_info',
|
||||
'ha',
|
||||
@ -132,6 +133,7 @@ class TestCreateRouter(TestRouter):
|
||||
router._format_admin_state(new_router.admin_state_up),
|
||||
osc_utils.format_list(new_router.availability_zone_hints),
|
||||
osc_utils.format_list(new_router.availability_zones),
|
||||
new_router.description,
|
||||
new_router.distributed,
|
||||
router._format_external_gateway_info(new_router.external_gateway_info),
|
||||
new_router.ha,
|
||||
@ -503,12 +505,14 @@ class TestSetRouter(TestRouter):
|
||||
'--enable',
|
||||
'--distributed',
|
||||
'--name', 'noob',
|
||||
'--description', 'router',
|
||||
]
|
||||
verifylist = [
|
||||
('router', self._router.name),
|
||||
('enable', True),
|
||||
('distributed', True),
|
||||
('name', 'noob'),
|
||||
('description', 'router'),
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@ -518,6 +522,7 @@ class TestSetRouter(TestRouter):
|
||||
'admin_state_up': True,
|
||||
'distributed': True,
|
||||
'name': 'noob',
|
||||
'description': 'router',
|
||||
}
|
||||
self.network.update_router.assert_called_once_with(
|
||||
self._router, **attrs)
|
||||
@ -681,6 +686,7 @@ class TestShowRouter(TestRouter):
|
||||
'admin_state_up',
|
||||
'availability_zone_hints',
|
||||
'availability_zones',
|
||||
'description',
|
||||
'distributed',
|
||||
'external_gateway_info',
|
||||
'ha',
|
||||
@ -694,6 +700,7 @@ class TestShowRouter(TestRouter):
|
||||
router._format_admin_state(_router.admin_state_up),
|
||||
osc_utils.format_list(_router.availability_zone_hints),
|
||||
osc_utils.format_list(_router.availability_zones),
|
||||
_router.description,
|
||||
_router.distributed,
|
||||
router._format_external_gateway_info(_router.external_gateway_info),
|
||||
_router.ha,
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Add ``--description`` option for core network resources. Allows users to
|
||||
set a description for: ``floating ip create`` and ``router set/create``.
|
||||
[Blueprint :oscbp:`neutron-client-descriptions`]
|
||||
[Blueprint :oscbp:`network-commands-options`]
|
Loading…
Reference in New Issue
Block a user