summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManjeet Singh Bhatia <manjeet.s.bhatia@intel.com>2016-05-12 18:59:58 +0000
committerManjeet Singh Bhatia <manjeet.s.bhatia@intel.com>2016-05-16 22:37:14 +0000
commit668bc028d13b80dfc6ecbef6193678a97e64fdc1 (patch)
treef0ea4b5f5404a726b41996f404b031ee7a5a59c6
parente1c53250bcf430517d254ada998e78b057a56a49 (diff)
downloadpython-openstackclient-668bc028d13b80dfc6ecbef6193678a97e64fdc1.tar.gz
Add ip version filter to subnet list
This patch will add argument ip-version to command subnet list Change-Id: If7458d4979e53aec7e2633c4f1779c3810f9a3f1 Closes-Bug: #1581179
-rw-r--r--doc/source/command-objects/subnet.rst4
-rw-r--r--openstackclient/network/v2/subnet.py14
-rw-r--r--openstackclient/tests/network/v2/test_subnet.py16
-rw-r--r--releasenotes/notes/bug-1581179-4d15dc504777f9e7.yaml6
4 files changed, 39 insertions, 1 deletions
diff --git a/doc/source/command-objects/subnet.rst b/doc/source/command-objects/subnet.rst
index 8daa251f..ff6354e6 100644
--- a/doc/source/command-objects/subnet.rst
+++ b/doc/source/command-objects/subnet.rst
@@ -147,6 +147,10 @@ List subnets
List additional fields in output
+.. option:: --ip-version {4, 6}
+
+ List only subnets of given IP version in output
+
subnet set
----------
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index fb441cbf..5fc01b64 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -296,10 +296,22 @@ class ListSubnet(command.Lister):
default=False,
help=_("List additional fields in output")
)
+ parser.add_argument(
+ '--ip-version',
+ type=int,
+ choices=[4, 6],
+ metavar='<ip-version>',
+ dest='ip_version',
+ help=_("List only subnets of given IP version in output"
+ "Allowed values for IP version are 4 and 6."),
+ )
return parser
def take_action(self, parsed_args):
- data = self.app.client_manager.network.subnets()
+ filters = {}
+ if parsed_args.ip_version:
+ filters['ip_version'] = parsed_args.ip_version
+ data = self.app.client_manager.network.subnets(**filters)
headers = ('ID', 'Name', 'Network', 'Subnet')
columns = ('id', 'name', 'network_id', 'cidr')
diff --git a/openstackclient/tests/network/v2/test_subnet.py b/openstackclient/tests/network/v2/test_subnet.py
index 1923286d..22c288f9 100644
--- a/openstackclient/tests/network/v2/test_subnet.py
+++ b/openstackclient/tests/network/v2/test_subnet.py
@@ -469,6 +469,22 @@ class TestListSubnet(TestSubnet):
self.assertEqual(self.columns_long, columns)
self.assertEqual(self.data_long, list(data))
+ def test_subnet_list_ip_version(self):
+ arglist = [
+ '--ip-version', str(4),
+ ]
+ verifylist = [
+ ('ip_version', 4),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ filters = {'ip_version': 4}
+
+ self.network.subnets.assert_called_once_with(**filters)
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
class TestSetSubnet(TestSubnet):
diff --git a/releasenotes/notes/bug-1581179-4d15dc504777f9e7.yaml b/releasenotes/notes/bug-1581179-4d15dc504777f9e7.yaml
new file mode 100644
index 00000000..53a52849
--- /dev/null
+++ b/releasenotes/notes/bug-1581179-4d15dc504777f9e7.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ -
+ Add the ``--ip-version`` option to the ``subnet list`` command. This
+ will output subnets based on IP version filter.
+ [`Bug 1581179 <https://bugs.launchpad.net/python-openstackclient/+bug/1581179>`_]