Skip to content

Commit 08759b8

Browse files
author
Inessa Vasilevskaya
committed
Fixes BadRequest when no --pool-prefix given
--pool-prefix is made required on subnetpool creation. Closes-bug: #1536479 Change-Id: I3d183e45e9b96bc08011c36f45ec2b7a9c01b627
1 parent a0a29df commit 08759b8

4 files changed

Lines changed: 28 additions & 9 deletions

File tree

doc/source/command-objects/subnet-pool.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,16 @@ Create subnet pool
1313
.. code:: bash
1414
1515
os subnet pool create
16-
[--pool-prefix <pool-prefix> [...]]
1716
[--default-prefix-length <default-prefix-length>]
1817
[--min-prefix-length <min-prefix-length>]
1918
[--max-prefix-length <max-prefix-length>]
2019
[--project <project> [--project-domain <project-domain>]]
2120
[--address-scope <address-scope>]
2221
[--default | --no-default]
2322
[--share | --no-share]
23+
--pool-prefix <pool-prefix> [...]
2424
<name>
2525
26-
.. option:: --pool-prefix <pool-prefix>
27-
28-
Set subnet pool prefixes (in CIDR notation)
29-
(repeat option to set multiple prefixes)
30-
3126
.. option:: --default-prefix-length <default-prefix-length>
3227
3328
Set subnet pool default prefix length
@@ -70,6 +65,11 @@ Create subnet pool
7065
7166
Set this subnet pool as not shared
7267
68+
.. describe:: --pool-prefix <pool-prefix>
69+
70+
Set subnet pool prefixes (in CIDR notation)
71+
(repeat option to set multiple prefixes)
72+
7373
.. _subnet_pool_create-name:
7474
.. describe:: <name>
7575

openstackclient/network/v2/subnet_pool.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,13 @@ def _get_attrs(client_manager, parsed_args):
7878
return attrs
7979

8080

81-
def _add_prefix_options(parser):
81+
def _add_prefix_options(parser, for_create=False):
8282
parser.add_argument(
8383
'--pool-prefix',
8484
metavar='<pool-prefix>',
8585
dest='prefixes',
8686
action='append',
87+
required=for_create,
8788
help=_("Set subnet pool prefixes (in CIDR notation) "
8889
"(repeat option to set multiple prefixes)")
8990
)
@@ -131,7 +132,7 @@ def get_parser(self, prog_name):
131132
metavar='<name>',
132133
help=_("Name of the new subnet pool")
133134
)
134-
_add_prefix_options(parser)
135+
_add_prefix_options(parser, for_create=True)
135136
parser.add_argument(
136137
'--project',
137138
metavar='<project>',

openstackclient/tests/network/v2/test_subnet_pool.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ def test_create_no_options(self):
113113
self.assertRaises(tests_utils.ParserException, self.check_parser,
114114
self.cmd, arglist, verifylist)
115115

116+
def test_create_no_pool_prefix(self):
117+
"""Make sure --pool-prefix is a required argument"""
118+
arglist = [
119+
self._subnet_pool.name,
120+
]
121+
verifylist = [
122+
('name', self._subnet_pool.name),
123+
]
124+
self.assertRaises(tests_utils.ParserException, self.check_parser,
125+
self.cmd, arglist, verifylist)
126+
116127
def test_create_default_options(self):
117128
arglist = [
118129
'--pool-prefix', '10.0.10.0/24',
@@ -138,13 +149,15 @@ def test_create_prefixlen_options(self):
138149
'--default-prefix-length', self._subnet_pool.default_prefixlen,
139150
'--max-prefix-length', self._subnet_pool.max_prefixlen,
140151
'--min-prefix-length', self._subnet_pool.min_prefixlen,
152+
'--pool-prefix', '10.0.10.0/24',
141153
self._subnet_pool.name,
142154
]
143155
verifylist = [
144156
('default_prefix_length', self._subnet_pool.default_prefixlen),
145157
('max_prefix_length', self._subnet_pool.max_prefixlen),
146158
('min_prefix_length', self._subnet_pool.min_prefixlen),
147159
('name', self._subnet_pool.name),
160+
('prefixes', ['10.0.10.0/24']),
148161
]
149162
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
150163

@@ -154,7 +167,7 @@ def test_create_prefixlen_options(self):
154167
'default_prefixlen': self._subnet_pool.default_prefixlen,
155168
'max_prefixlen': self._subnet_pool.max_prefixlen,
156169
'min_prefixlen': self._subnet_pool.min_prefixlen,
157-
'prefixes': [],
170+
'prefixes': ['10.0.10.0/24'],
158171
'name': self._subnet_pool.name,
159172
})
160173
self.assertEqual(self.columns, columns)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
``--pool-prefix`` option made required for ``subnet pool create``
5+
[Bug `1536479 <https://bugs.launchpad.net/bugs/1536479>`_]

0 commit comments

Comments
 (0)