summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInessa Vasilevskaya <ivasilevskaya@mirantis.com>2016-04-25 12:22:14 +0000
committerInessa Vasilevskaya <ivasilevskaya@mirantis.com>2016-04-27 18:38:35 +0300
commit08759b853a2611144a2d3f0e9216d6801fc23ef2 (patch)
tree500eeb89a020fa05fcdb45b6cf7486353ce551cf
parenta0a29df3e67b29880e62e1974dde18a4993f2aa1 (diff)
downloadpython-openstackclient-08759b853a2611144a2d3f0e9216d6801fc23ef2.tar.gz
Fixes BadRequest when no --pool-prefix given
--pool-prefix is made required on subnetpool creation. Closes-bug: #1536479 Change-Id: I3d183e45e9b96bc08011c36f45ec2b7a9c01b627
-rw-r--r--doc/source/command-objects/subnet-pool.rst12
-rw-r--r--openstackclient/network/v2/subnet_pool.py5
-rw-r--r--openstackclient/tests/network/v2/test_subnet_pool.py15
-rw-r--r--releasenotes/notes/bug-1536479-d1f03ed2177d06ed.yaml5
4 files changed, 28 insertions, 9 deletions
diff --git a/doc/source/command-objects/subnet-pool.rst b/doc/source/command-objects/subnet-pool.rst
index 867153ef..523f78c2 100644
--- a/doc/source/command-objects/subnet-pool.rst
+++ b/doc/source/command-objects/subnet-pool.rst
@@ -13,7 +13,6 @@ Create subnet pool
.. code:: bash
os subnet pool create
- [--pool-prefix <pool-prefix> [...]]
[--default-prefix-length <default-prefix-length>]
[--min-prefix-length <min-prefix-length>]
[--max-prefix-length <max-prefix-length>]
@@ -21,13 +20,9 @@ Create subnet pool
[--address-scope <address-scope>]
[--default | --no-default]
[--share | --no-share]
+ --pool-prefix <pool-prefix> [...]
<name>
-.. option:: --pool-prefix <pool-prefix>
-
- Set subnet pool prefixes (in CIDR notation)
- (repeat option to set multiple prefixes)
-
.. option:: --default-prefix-length <default-prefix-length>
Set subnet pool default prefix length
@@ -70,6 +65,11 @@ Create subnet pool
Set this subnet pool as not shared
+.. describe:: --pool-prefix <pool-prefix>
+
+ Set subnet pool prefixes (in CIDR notation)
+ (repeat option to set multiple prefixes)
+
.. _subnet_pool_create-name:
.. describe:: <name>
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index 688dd2ca..435db2e1 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -78,12 +78,13 @@ def _get_attrs(client_manager, parsed_args):
return attrs
-def _add_prefix_options(parser):
+def _add_prefix_options(parser, for_create=False):
parser.add_argument(
'--pool-prefix',
metavar='<pool-prefix>',
dest='prefixes',
action='append',
+ required=for_create,
help=_("Set subnet pool prefixes (in CIDR notation) "
"(repeat option to set multiple prefixes)")
)
@@ -131,7 +132,7 @@ class CreateSubnetPool(command.ShowOne):
metavar='<name>',
help=_("Name of the new subnet pool")
)
- _add_prefix_options(parser)
+ _add_prefix_options(parser, for_create=True)
parser.add_argument(
'--project',
metavar='<project>',
diff --git a/openstackclient/tests/network/v2/test_subnet_pool.py b/openstackclient/tests/network/v2/test_subnet_pool.py
index 369a8b11..b40390a1 100644
--- a/openstackclient/tests/network/v2/test_subnet_pool.py
+++ b/openstackclient/tests/network/v2/test_subnet_pool.py
@@ -113,6 +113,17 @@ class TestCreateSubnetPool(TestSubnetPool):
self.assertRaises(tests_utils.ParserException, self.check_parser,
self.cmd, arglist, verifylist)
+ def test_create_no_pool_prefix(self):
+ """Make sure --pool-prefix is a required argument"""
+ arglist = [
+ self._subnet_pool.name,
+ ]
+ verifylist = [
+ ('name', self._subnet_pool.name),
+ ]
+ self.assertRaises(tests_utils.ParserException, self.check_parser,
+ self.cmd, arglist, verifylist)
+
def test_create_default_options(self):
arglist = [
'--pool-prefix', '10.0.10.0/24',
@@ -138,6 +149,7 @@ class TestCreateSubnetPool(TestSubnetPool):
'--default-prefix-length', self._subnet_pool.default_prefixlen,
'--max-prefix-length', self._subnet_pool.max_prefixlen,
'--min-prefix-length', self._subnet_pool.min_prefixlen,
+ '--pool-prefix', '10.0.10.0/24',
self._subnet_pool.name,
]
verifylist = [
@@ -145,6 +157,7 @@ class TestCreateSubnetPool(TestSubnetPool):
('max_prefix_length', self._subnet_pool.max_prefixlen),
('min_prefix_length', self._subnet_pool.min_prefixlen),
('name', self._subnet_pool.name),
+ ('prefixes', ['10.0.10.0/24']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -154,7 +167,7 @@ class TestCreateSubnetPool(TestSubnetPool):
'default_prefixlen': self._subnet_pool.default_prefixlen,
'max_prefixlen': self._subnet_pool.max_prefixlen,
'min_prefixlen': self._subnet_pool.min_prefixlen,
- 'prefixes': [],
+ 'prefixes': ['10.0.10.0/24'],
'name': self._subnet_pool.name,
})
self.assertEqual(self.columns, columns)
diff --git a/releasenotes/notes/bug-1536479-d1f03ed2177d06ed.yaml b/releasenotes/notes/bug-1536479-d1f03ed2177d06ed.yaml
new file mode 100644
index 00000000..b9932ad4
--- /dev/null
+++ b/releasenotes/notes/bug-1536479-d1f03ed2177d06ed.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ ``--pool-prefix`` option made required for ``subnet pool create``
+ [Bug `1536479 <https://bugs.launchpad.net/bugs/1536479>`_]