summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorTang Chen <chen.tang@easystack.cn>2016-03-24 19:22:07 +0800
committerTang Chen <chen.tang@easystack.cn>2016-04-09 16:25:50 +0800
commitb3649a54cd59dc069c76cbbcd876a1610aee00c0 (patch)
tree7bba85fc7df7e0242b117892e885f18d8fcefaf7 /openstackclient/network
parent6c739466239d6a6565498e5a7bdc25706e91329b (diff)
downloadpython-openstackclient-b3649a54cd59dc069c76cbbcd876a1610aee00c0.tar.gz
Add --address-scope option "subnet pool create/set"
This patch adds --address-scope option to "subnet pool create/set" commands, and --no-address-scope option to "subnet pool set" command to clear the address scope setting. Change-Id: Ie2c370a50b52574fa6ec268083ad013b7544361e Partial-Bug: #1544586 Partial-Bug: #1544591
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/subnet_pool.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index 6b6fc090..497b7f7f 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -35,6 +35,8 @@ _formatters = {
def _get_attrs(client_manager, parsed_args):
attrs = {}
+ network_client = client_manager.network
+
if parsed_args.name is not None:
attrs['name'] = str(parsed_args.name)
if parsed_args.prefixes is not None:
@@ -46,6 +48,12 @@ def _get_attrs(client_manager, parsed_args):
if parsed_args.max_prefix_length is not None:
attrs['max_prefixlen'] = parsed_args.max_prefix_length
+ if parsed_args.address_scope is not None:
+ attrs['address_scope_id'] = network_client.find_address_scope(
+ parsed_args.address_scope, ignore_missing=False).id
+ if 'no_address_scope' in parsed_args and parsed_args.no_address_scope:
+ attrs['address_scope_id'] = None
+
# "subnet pool set" command doesn't support setting project.
if 'project' in parsed_args and parsed_args.project is not None:
identity_client = client_manager.identity
@@ -105,7 +113,13 @@ class CreateSubnetPool(command.ShowOne):
help="Owner's project (name or ID)",
)
identity_common.add_project_domain_option_to_parser(parser)
-
+ parser.add_argument(
+ '--address-scope',
+ metavar='<address-scope>',
+ help="Set address scope associated with the subnet pool "
+ "(name or ID). Prefixes must be unique across address "
+ "scopes.",
+ )
return parser
def take_action(self, parsed_args):
@@ -204,7 +218,19 @@ class SetSubnetPool(command.Command):
help='Set subnet pool name',
)
_add_prefix_options(parser)
-
+ address_scope_group = parser.add_mutually_exclusive_group()
+ address_scope_group.add_argument(
+ '--address-scope',
+ metavar='<address-scope>',
+ help="Set address scope associated with the subnet pool "
+ "(name or ID). Prefixes must be unique across address "
+ "scopes.",
+ )
+ address_scope_group.add_argument(
+ '--no-address-scope',
+ action='store_true',
+ help="Remove address scope associated with the subnet pool",
+ )
return parser
def take_action(self, parsed_args):