summaryrefslogtreecommitdiff
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
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
-rw-r--r--doc/source/command-objects/subnet.rst9
-rw-r--r--openstackclient/network/v2/subnet.py15
-rw-r--r--openstackclient/tests/network/v2/test_subnet.py32
-rw-r--r--releasenotes/notes/bug-1610883-e6345c32a35cc290.yaml7
4 files changed, 63 insertions, 0 deletions
diff --git a/doc/source/command-objects/subnet.rst b/doc/source/command-objects/subnet.rst
index ba800373..e8740e53 100644
--- a/doc/source/command-objects/subnet.rst
+++ b/doc/source/command-objects/subnet.rst
@@ -152,6 +152,7 @@ List subnets
os subnet list
[--long]
[--ip-version {4,6}]
+ [--dhcp | --no-dhcp]
.. option:: --long
@@ -162,6 +163,14 @@ List subnets
List only subnets of given IP version in output.
Allowed values for IP version are 4 and 6.
+.. option:: --dhcp
+
+ List subnets which have DHCP enabled
+
+.. option:: --no-dhcp
+
+ List subnets which have DHCP disabled
+
subnet set
----------
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):
diff --git a/releasenotes/notes/bug-1610883-e6345c32a35cc290.yaml b/releasenotes/notes/bug-1610883-e6345c32a35cc290.yaml
new file mode 100644
index 00000000..710ee397
--- /dev/null
+++ b/releasenotes/notes/bug-1610883-e6345c32a35cc290.yaml
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Make ``subnet list`` command supports listing up subnets with
+ dhcp enabled/disabled by adding ``--dhcp`` and ``--no-dhcp``
+ options to the command.
+ [Bug `1610883 <https://bugs.launchpad.net/bugs/1610883>`_]