Fixes unclear error when no --pool-prefix given

--pool-prefix is required on subnetpool creation.
refactor: removed unused 'for_create' argument in
add_updatable_arguments in subnetpool module.
Closes-bug: #1536479

Change-Id: I79573369cb95c0b090e9ebfea9af40485d968e2f
This commit is contained in:
Inessa Vasilevskaya 2016-04-11 17:22:48 +03:00
parent 97ed202387
commit 37ec942417
2 changed files with 18 additions and 4 deletions

View File

@ -26,7 +26,7 @@ def _format_prefixes(subnetpool):
return subnetpool['prefixes']
def add_updatable_arguments(parser):
def add_updatable_arguments(parser, for_create=False):
parser.add_argument(
'--description',
help=_('Description of subnetpool.'))
@ -42,6 +42,7 @@ def add_updatable_arguments(parser):
parser.add_argument(
'--pool-prefix',
action='append', dest='prefixes',
required=for_create,
help=_('Subnetpool prefixes (This option can be repeated).'))
utils.add_boolean_argument(
parser, '--is-default',
@ -49,7 +50,7 @@ def add_updatable_arguments(parser):
'(True meaning default).'))
def updatable_args2body(parsed_args, body, for_create=True):
def updatable_args2body(parsed_args, body):
neutronV20.update_dict(parsed_args, body,
['name', 'prefixes', 'default_prefixlen',
'min_prefixlen', 'max_prefixlen', 'is_default',
@ -79,7 +80,7 @@ class CreateSubnetPool(neutronV20.CreateCommand):
resource = 'subnetpool'
def add_known_arguments(self, parser):
add_updatable_arguments(parser)
add_updatable_arguments(parser, for_create=True)
parser.add_argument(
'--shared',
action='store_true',
@ -139,7 +140,7 @@ class UpdateSubnetPool(neutronV20.UpdateCommand):
def args2body(self, parsed_args):
body = {}
updatable_args2body(parsed_args, body, for_create=False)
updatable_args2body(parsed_args, body)
# Parse and update for "address-scope" option/s
if parsed_args.no_address_scope:

View File

@ -119,6 +119,19 @@ class CLITestV20SubnetPoolJSON(test_cli20.CLITestV20Base):
self._test_create_resource(resource, cmd, name, myid, args,
position_names, position_values)
def test_create_subnetpool_no_poolprefix(self):
# Should raise an error because --pool-prefix is required
resource = 'subnetpool'
cmd = subnetpool.CreateSubnetPool(test_cli20.MyApp(sys.stdout), None)
name = 'myname'
myid = 'myid'
args = [name]
position_names = ['name']
position_values = [name]
self.assertRaises(SystemExit, self._test_create_resource, resource,
cmd, name, myid, args, position_names,
position_values)
def test_list_subnetpool_pagination(self):
cmd = subnetpool.ListSubnetPool(test_cli20.MyApp(sys.stdout), None)
self.mox.StubOutWithMock(subnetpool.ListSubnetPool, "extend_list")