network: Make better use of argparse

Change-Id: I7421a0ab957412a8283eee6ae9783dac9d3f6a4a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane 2023-08-10 19:32:07 +01:00
parent 5ef5cc9c82
commit c888cf2556
2 changed files with 20 additions and 21 deletions
openstackclient
network/v2
tests/unit/network/v2

@ -558,7 +558,7 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
'--security-group',
metavar='<security-group>',
action='append',
dest='security_group',
dest='security_groups',
help=_(
"Security group to associate with this port (name or ID) "
"(repeat option to set multiple security groups)"
@ -566,8 +566,9 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
)
secgroups.add_argument(
'--no-security-group',
dest='no_security_group',
action='store_true',
action='store_const',
const=[],
dest='security_groups',
help=_("Associate no security groups with this port"),
)
parser.add_argument(
@ -633,13 +634,11 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
elif parsed_args.no_fixed_ip:
attrs['fixed_ips'] = []
if parsed_args.security_group:
if parsed_args.security_groups is not None:
attrs['security_group_ids'] = [
client.find_security_group(sg, ignore_missing=False).id
for sg in parsed_args.security_group
for sg in parsed_args.security_groups
]
elif parsed_args.no_security_group:
attrs['security_group_ids'] = []
if parsed_args.allowed_address_pairs:
attrs['allowed_address_pairs'] = _convert_address_pairs(
@ -1006,7 +1005,7 @@ class SetPort(common.NeutronCommandWithExtraArgs):
'--security-group',
metavar='<security-group>',
action='append',
dest='security_group',
dest='security_groups',
help=_(
"Security group to associate with this port (name or ID) "
"(repeat option to set multiple security groups)"
@ -1107,7 +1106,7 @@ class SetPort(common.NeutronCommandWithExtraArgs):
if parsed_args.no_security_group:
attrs['security_group_ids'] = []
if parsed_args.security_group:
if parsed_args.security_groups:
if 'security_group_ids' not in attrs:
# NOTE(dtroyer): Get existing security groups, iterate the
# list to force a new list object to be
@ -1118,7 +1117,7 @@ class SetPort(common.NeutronCommandWithExtraArgs):
]
attrs['security_group_ids'].extend(
client.find_security_group(sg, ignore_missing=False).id
for sg in parsed_args.security_group
for sg in parsed_args.security_groups
)
if parsed_args.no_allowed_address_pair:
@ -1231,7 +1230,7 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs):
'--security-group',
metavar='<security-group>',
action='append',
dest='security_group_ids',
dest='security_groups',
help=_(
"Security group which should be removed this port (name "
"or ID) (repeat option to unset multiple security groups)"
@ -1316,9 +1315,9 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs):
msg = _("Port does not contain binding-profile %s") % key
raise exceptions.CommandError(msg)
attrs['binding:profile'] = tmp_binding_profile
if parsed_args.security_group_ids:
if parsed_args.security_groups:
try:
for sg in parsed_args.security_group_ids:
for sg in parsed_args.security_groups:
sg_id = client.find_security_group(
sg, ignore_missing=False
).id

@ -332,7 +332,7 @@ class TestCreatePort(TestPort):
self._port.network_id,
),
('enable', True),
('security_group', [secgroup.id]),
('security_groups', [secgroup.id]),
('name', 'test-port'),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -405,7 +405,7 @@ class TestCreatePort(TestPort):
self._port.network_id,
),
('enable', True),
('security_group', [sg_1.id, sg_2.id]),
('security_groups', [sg_1.id, sg_2.id]),
('name', 'test-port'),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -434,7 +434,7 @@ class TestCreatePort(TestPort):
verifylist = [
('network', self._port.network_id),
('enable', True),
('no_security_group', True),
('security_groups', []),
('name', 'test-port'),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -2067,7 +2067,7 @@ class TestSetPort(TestPort):
self._port.name,
]
verifylist = [
('security_group', [sg.id]),
('security_groups', [sg.id]),
('port', self._port.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -2100,7 +2100,7 @@ class TestSetPort(TestPort):
_testport.name,
]
verifylist = [
('security_group', [sg_2.id, sg_3.id]),
('security_groups', [sg_2.id, sg_3.id]),
('port', _testport.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -2149,7 +2149,7 @@ class TestSetPort(TestPort):
_testport.name,
]
verifylist = [
('security_group', [sg2.id]),
('security_groups', [sg2.id]),
('no_security_group', True),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -2770,7 +2770,7 @@ class TestUnsetPort(TestPort):
_fake_port.name,
]
verifylist = [
('security_group_ids', [_fake_sg2.id]),
('security_groups', [_fake_sg2.id]),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -2797,7 +2797,7 @@ class TestUnsetPort(TestPort):
_fake_port.name,
]
verifylist = [
('security_group_ids', [_fake_sg2.id]),
('security_groups', [_fake_sg2.id]),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)