summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-05-17 22:28:06 +0000
committerGerrit Code Review <review@openstack.org>2016-05-17 22:28:06 +0000
commitc6555696289894331fd1445e5cfd16a5f58ac5cd (patch)
treeb6c5c5c3afd27dd7f48d7716cd148d23795dd3bb /openstackclient
parentdcc825698253bfabe0be6cc10b7f577301266a3f (diff)
parent668bc028d13b80dfc6ecbef6193678a97e64fdc1 (diff)
downloadpython-openstackclient-c6555696289894331fd1445e5cfd16a5f58ac5cd.tar.gz
Merge "Add ip version filter to subnet list"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/subnet.py14
-rw-r--r--openstackclient/tests/network/v2/test_subnet.py16
2 files changed, 29 insertions, 1 deletions
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index f51aec5b..e7e1be99 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):