summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorCao Xuan Hoang <hoangcx@vn.fujitsu.com>2016-08-09 11:25:35 +0700
committerCao Xuan Hoang <hoangcx@vn.fujitsu.com>2016-08-10 08:27:03 +0700
commit831546fb9e4150074baecee9470a0b8d681e0f86 (patch)
tree67da77f1dcc97726bb57d834d9ad610ae9322c98 /openstackclient
parent0b91368164acc596bf97fe4073083e26892f5b1a (diff)
downloadpython-openstackclient-831546fb9e4150074baecee9470a0b8d681e0f86.tar.gz
Add '--dhcp' and '--no-dhcp' options to os subnet list cmd
This patch adds '--dhcp' and '--no-dhcp' options to filter subnets resulted by os subnet list command. Change-Id: Ib574cc54594845bc5c5afc38bf44e3b224d33b17 Partial-Bug: #1610883
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/subnet.py15
-rw-r--r--openstackclient/tests/network/v2/test_subnet.py32
2 files changed, 47 insertions, 0 deletions
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index f26f6804..22452809 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -341,12 +341,27 @@ class ListSubnet(command.Lister):
help=_("List only subnets of given IP version in output."
"Allowed values for IP version are 4 and 6."),
)
+ dhcp_enable_group = parser.add_mutually_exclusive_group()
+ dhcp_enable_group.add_argument(
+ '--dhcp',
+ action='store_true',
+ help=_("List subnets which have DHCP enabled")
+ )
+ dhcp_enable_group.add_argument(
+ '--no-dhcp',
+ action='store_true',
+ help=_("List subnets which have DHCP disabled")
+ )
return parser
def take_action(self, parsed_args):
filters = {}
if parsed_args.ip_version:
filters['ip_version'] = parsed_args.ip_version
+ if parsed_args.dhcp:
+ filters['enable_dhcp'] = True
+ elif parsed_args.no_dhcp:
+ filters['enable_dhcp'] = False
data = self.app.client_manager.network.subnets(**filters)
headers = ('ID', 'Name', 'Network', 'Subnet')
diff --git a/openstackclient/tests/network/v2/test_subnet.py b/openstackclient/tests/network/v2/test_subnet.py
index e7f3e748..ba757c98 100644
--- a/openstackclient/tests/network/v2/test_subnet.py
+++ b/openstackclient/tests/network/v2/test_subnet.py
@@ -584,6 +584,38 @@ class TestListSubnet(TestSubnet):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+ def test_subnet_list_dhcp(self):
+ arglist = [
+ '--dhcp',
+ ]
+ verifylist = [
+ ('dhcp', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ filters = {'enable_dhcp': True}
+
+ self.network.subnets.assert_called_once_with(**filters)
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_subnet_list_no_dhcp(self):
+ arglist = [
+ '--no-dhcp',
+ ]
+ verifylist = [
+ ('no_dhcp', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ filters = {'enable_dhcp': False}
+
+ self.network.subnets.assert_called_once_with(**filters)
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
class TestSetSubnet(TestSubnet):