From c5c15a0135beb61012b2d0282728a984d859e680 Mon Sep 17 00:00:00 2001 From: reedip Date: Wed, 23 Mar 2016 13:02:25 +0900 Subject: Follow Boolean Option rule OSC has a specific rule for handling boolean based options in [1]. This patch modifies the exisiting code so that it matches the criteria that have been specified in [1]. [1]: http://docs.openstack.org/developer/python-openstackclient/command-options.html#boolean-options Closes-Bug: #1559418 Change-Id: I182381d5579efbc75a5d3e8a91f412398abf5c3c --- openstackclient/network/v2/network.py | 34 ++++++++++++++++------------------ openstackclient/network/v2/port.py | 14 ++++++-------- openstackclient/network/v2/router.py | 27 ++++++++++++--------------- 3 files changed, 34 insertions(+), 41 deletions(-) (limited to 'openstackclient/network') diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 074b2754..42648e45 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -52,10 +52,14 @@ def _get_attrs(client_manager, parsed_args): attrs = {} if parsed_args.name is not None: attrs['name'] = str(parsed_args.name) - if parsed_args.admin_state is not None: - attrs['admin_state_up'] = parsed_args.admin_state - if parsed_args.shared is not None: - attrs['shared'] = parsed_args.shared + if parsed_args.enable: + attrs['admin_state_up'] = True + if parsed_args.disable: + attrs['admin_state_up'] = False + if parsed_args.share: + attrs['shared'] = True + if parsed_args.no_share: + attrs['shared'] = False # "network set" command doesn't support setting project. if 'project' in parsed_args and parsed_args.project is not None: @@ -79,8 +83,10 @@ def _get_attrs_compute(client_manager, parsed_args): attrs = {} if parsed_args.name is not None: attrs['label'] = str(parsed_args.name) - if parsed_args.shared is not None: - attrs['share_address'] = parsed_args.shared + if parsed_args.share: + attrs['share_address'] = True + if parsed_args.no_share: + attrs['share_address'] = False if parsed_args.subnet is not None: attrs['cidr'] = parsed_args.subnet @@ -99,15 +105,13 @@ class CreateNetwork(common.NetworkAndComputeShowOne): share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', - dest='shared', action='store_true', default=None, help='Share the network between projects', ) share_group.add_argument( '--no-share', - dest='shared', - action='store_false', + action='store_true', help='Do not share the network between projects', ) return parser @@ -116,15 +120,13 @@ class CreateNetwork(common.NetworkAndComputeShowOne): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state', action='store_true', default=True, help='Enable network (default)', ) admin_group.add_argument( '--disable', - dest='admin_state', - action='store_false', + action='store_true', help='Disable network', ) parser.add_argument( @@ -301,29 +303,25 @@ class SetNetwork(command.Command): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state', action='store_true', default=None, help='Enable network', ) admin_group.add_argument( '--disable', - dest='admin_state', - action='store_false', + action='store_true', help='Disable network', ) share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', - dest='shared', action='store_true', default=None, help='Share the network between projects', ) share_group.add_argument( '--no-share', - dest='shared', - action='store_false', + action='store_true', help='Do not share the network between projects', ) return parser diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index 23350cf8..45ad1c72 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -86,8 +86,10 @@ def _get_attrs(client_manager, parsed_args): attrs['device_id'] = parsed_args.device if parsed_args.device_owner is not None: attrs['device_owner'] = parsed_args.device_owner - if parsed_args.admin_state is not None: - attrs['admin_state_up'] = parsed_args.admin_state + if parsed_args.enable: + attrs['admin_state_up'] = True + if parsed_args.disable: + attrs['admin_state_up'] = False if parsed_args.binding_profile is not None: attrs['binding:profile'] = parsed_args.binding_profile if parsed_args.vnic_type is not None: @@ -217,15 +219,13 @@ class CreatePort(command.ShowOne): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state', action='store_true', default=True, help='Enable port (default)', ) admin_group.add_argument( '--disable', - dest='admin_state', - action='store_false', + action='store_true', help='Disable port', ) parser.add_argument( @@ -333,15 +333,13 @@ class SetPort(command.Command): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state', action='store_true', default=None, help='Enable port', ) admin_group.add_argument( '--disable', - dest='admin_state', - action='store_false', + action='store_true', help='Disable port', ) parser.add_argument( diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py index 39431111..6819733b 100644 --- a/openstackclient/network/v2/router.py +++ b/openstackclient/network/v2/router.py @@ -53,10 +53,15 @@ def _get_attrs(client_manager, parsed_args): attrs = {} if parsed_args.name is not None: attrs['name'] = str(parsed_args.name) - if parsed_args.admin_state_up is not None: - attrs['admin_state_up'] = parsed_args.admin_state_up - if parsed_args.distributed is not None: - attrs['distributed'] = parsed_args.distributed + if parsed_args.enable: + attrs['admin_state_up'] = True + if parsed_args.disable: + attrs['admin_state_up'] = False + # centralized is available only for SetRouter and not for CreateRouter + if 'centralized' in parsed_args and parsed_args.centralized: + attrs['distributed'] = False + if parsed_args.distributed: + attrs['distributed'] = True if ('availability_zone_hints' in parsed_args and parsed_args.availability_zone_hints is not None): attrs['availability_zone_hints'] = parsed_args.availability_zone_hints @@ -95,15 +100,13 @@ class CreateRouter(command.ShowOne): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state_up', action='store_true', default=True, help="Enable router (default)", ) admin_group.add_argument( '--disable', - dest='admin_state_up', - action='store_false', + action='store_true', help="Disable router", ) parser.add_argument( @@ -235,29 +238,24 @@ class SetRouter(command.Command): admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', - dest='admin_state_up', action='store_true', default=None, help='Enable router', ) admin_group.add_argument( '--disable', - dest='admin_state_up', - action='store_false', + action='store_true', help='Disable router', ) distribute_group = parser.add_mutually_exclusive_group() distribute_group.add_argument( '--distributed', - dest='distributed', action='store_true', - default=None, help="Set router to distributed mode (disabled router only)", ) distribute_group.add_argument( '--centralized', - dest='distributed', - action='store_false', + action='store_true', help="Set router to centralized mode (disabled router only)", ) routes_group = parser.add_mutually_exclusive_group() @@ -275,7 +273,6 @@ class SetRouter(command.Command): ) routes_group.add_argument( '--clear-routes', - dest='clear_routes', action='store_true', help="Clear routes associated with the router", ) -- cgit v1.2.1