summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-07-01 15:20:17 +0000
committerGerrit Code Review <review@openstack.org>2016-07-01 15:20:18 +0000
commit605efe67111790ed4801fd5b75ff314d2353d625 (patch)
tree776eddc393252b93c706955a63f8098caed7b2f8 /openstackclient/network
parent8a3b5d2b50c83b0708cee7d676d881faacb01de7 (diff)
parent063c722a110031883e9615064092644de6df8da2 (diff)
downloadpython-openstackclient-605efe67111790ed4801fd5b75ff314d2353d625.tar.gz
Merge "Add command to unset information from Subnet-pools"
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/subnet_pool.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index 55dfed83..ed2bb0ef 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -12,6 +12,7 @@
#
"""Subnet pool action implementations"""
+import copy
import logging
@@ -337,3 +338,43 @@ class ShowSubnetPool(command.ShowOne):
columns = _get_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters)
return (columns, data)
+
+
+class UnsetSubnetPool(command.Command):
+ """Unset subnet pool properties"""
+
+ def get_parser(self, prog_name):
+ parser = super(UnsetSubnetPool, self).get_parser(prog_name)
+ parser.add_argument(
+ '--pool-prefix',
+ metavar='<pool-prefix>',
+ action='append',
+ dest='prefixes',
+ help=_('Remove subnet pool prefixes (in CIDR notation). '
+ '(repeat option to unset multiple prefixes).'),
+ )
+ parser.add_argument(
+ 'subnet_pool',
+ metavar="<subnet-pool>",
+ help=_("Subnet pool to modify (name or ID)")
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ client = self.app.client_manager.network
+ obj = client.find_subnet_pool(
+ parsed_args.subnet_pool, ignore_missing=False)
+ tmp_prefixes = copy.deepcopy(obj.prefixes)
+ attrs = {}
+ if parsed_args.prefixes:
+ for prefix in parsed_args.prefixes:
+ try:
+ tmp_prefixes.remove(prefix)
+ except ValueError:
+ msg = _(
+ "Subnet pool does not "
+ "contain prefix %s") % prefix
+ raise exceptions.CommandError(msg)
+ attrs['prefixes'] = tmp_prefixes
+ if attrs:
+ client.update_subnet_pool(obj, **attrs)