Fix: incorrect check when no shared/private input
When neither of "--shared" and "--private" is input, we should not allow to specify "--project". Defaulting the created network segment range to shared is expected. Therefore, "project_id" attr should only be populated on a private range creation. Change-Id: Iab345e1651dd8b7904ff64a20633f194d719bb84 Story: 2005206 Task: 29980
This commit is contained in:
parent
28c06d0688
commit
510e9a7b8e
openstackclient
@ -168,7 +168,7 @@ class CreateNetworkSegmentRange(command.ShowOne):
|
|||||||
|
|
||||||
identity_client = self.app.client_manager.identity
|
identity_client = self.app.client_manager.identity
|
||||||
|
|
||||||
if parsed_args.shared and parsed_args.project:
|
if not parsed_args.private and parsed_args.project:
|
||||||
msg = _("--project is only allowed with --private")
|
msg = _("--project is only allowed with --private")
|
||||||
raise exceptions.CommandError(msg)
|
raise exceptions.CommandError(msg)
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ class CreateNetworkSegmentRange(command.ShowOne):
|
|||||||
msg = (_("Failed to create the network segment range for "
|
msg = (_("Failed to create the network segment range for "
|
||||||
"project %(project_id)s") % parsed_args.project_id)
|
"project %(project_id)s") % parsed_args.project_id)
|
||||||
raise exceptions.CommandError(msg)
|
raise exceptions.CommandError(msg)
|
||||||
elif not parsed_args.shared:
|
elif not attrs['shared']:
|
||||||
# default to the current project if no project specified and shared
|
# default to the current project if no project specified and shared
|
||||||
# is not specified.
|
# is not specified.
|
||||||
# Get the project id from the current auth.
|
# Get the project id from the current auth.
|
||||||
|
@ -98,6 +98,27 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange):
|
|||||||
self.assertRaises(tests_utils.ParserException, self.check_parser,
|
self.assertRaises(tests_utils.ParserException, self.check_parser,
|
||||||
self.cmd, arglist, [])
|
self.cmd, arglist, [])
|
||||||
|
|
||||||
|
def test_create_default_with_project_id(self):
|
||||||
|
arglist = [
|
||||||
|
'--project', self._network_segment_range.project_id,
|
||||||
|
'--network-type', 'vxlan',
|
||||||
|
'--minimum', str(self._network_segment_range.minimum),
|
||||||
|
'--maximum', str(self._network_segment_range.maximum),
|
||||||
|
self._network_segment_range.name,
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('project', self._network_segment_range.project_id),
|
||||||
|
('network_type', 'vxlan'),
|
||||||
|
('minimum', self._network_segment_range.minimum),
|
||||||
|
('maximum', self._network_segment_range.maximum),
|
||||||
|
('name', self._network_segment_range.name),
|
||||||
|
]
|
||||||
|
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
self.assertRaises(exceptions.CommandError,
|
||||||
|
self.cmd.take_action,
|
||||||
|
parsed_args)
|
||||||
|
|
||||||
def test_create_shared_with_project_id(self):
|
def test_create_shared_with_project_id(self):
|
||||||
arglist = [
|
arglist = [
|
||||||
'--shared',
|
'--shared',
|
||||||
@ -144,6 +165,34 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange):
|
|||||||
self.cmd.take_action,
|
self.cmd.take_action,
|
||||||
parsed_args)
|
parsed_args)
|
||||||
|
|
||||||
|
def test_create_minimum_options(self):
|
||||||
|
arglist = [
|
||||||
|
'--network-type', 'vxlan',
|
||||||
|
'--minimum', str(self._network_segment_range.minimum),
|
||||||
|
'--maximum', str(self._network_segment_range.maximum),
|
||||||
|
self._network_segment_range.name,
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('network_type', 'vxlan'),
|
||||||
|
('minimum', self._network_segment_range.minimum),
|
||||||
|
('maximum', self._network_segment_range.maximum),
|
||||||
|
('name', self._network_segment_range.name),
|
||||||
|
]
|
||||||
|
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.network.create_network_segment_range.assert_called_once_with(**{
|
||||||
|
'shared': True,
|
||||||
|
'network_type': 'vxlan',
|
||||||
|
'minimum': self._network_segment_range.minimum,
|
||||||
|
'maximum': self._network_segment_range.maximum,
|
||||||
|
'name': self._network_segment_range.name,
|
||||||
|
})
|
||||||
|
|
||||||
|
self.assertEqual(self.columns, columns)
|
||||||
|
self.assertEqual(self.data, data)
|
||||||
|
|
||||||
def test_create_private_minimum_options(self):
|
def test_create_private_minimum_options(self):
|
||||||
arglist = [
|
arglist = [
|
||||||
'--private',
|
'--private',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user