diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-05-11 07:59:04 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-05-11 07:59:04 +0000 |
| commit | fe02162bd32cd0e29011c553376b1530ae48bb83 (patch) | |
| tree | 5b0118556fc001ff526d05d0f6c543ae9499d75b /openstackclient/network | |
| parent | 94de0d3ebd18580f4faf9097322a47b2c7117aa1 (diff) | |
| parent | cc78d48a2895413f0ae7547db19ea843ae796cca (diff) | |
| download | python-openstackclient-fe02162bd32cd0e29011c553376b1530ae48bb83.tar.gz | |
Merge "Implement "address scope set" command"
Diffstat (limited to 'openstackclient/network')
| -rw-r--r-- | openstackclient/network/v2/address_scope.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py index 86f39c34..fac0849f 100644 --- a/openstackclient/network/v2/address_scope.py +++ b/openstackclient/network/v2/address_scope.py @@ -14,6 +14,7 @@ """Address scope action implementations""" from openstackclient.common import command +from openstackclient.common import exceptions from openstackclient.common import utils from openstackclient.i18n import _ from openstackclient.identity import common as identity_common @@ -142,6 +143,53 @@ class ListAddressScope(command.Lister): ) for s in data)) +class SetAddressScope(command.Command): + """Set address scope properties""" + + def get_parser(self, prog_name): + parser = super(SetAddressScope, self).get_parser(prog_name) + parser.add_argument( + 'address_scope', + metavar="<address-scope>", + help=_("Address scope to modify (name or ID)") + ) + parser.add_argument( + '--name', + metavar="<name>", + help=_('Set address scope name') + ) + share_group = parser.add_mutually_exclusive_group() + share_group.add_argument( + '--share', + action='store_true', + help=_('Share the address scope between projects') + ) + share_group.add_argument( + '--no-share', + action='store_true', + help=_('Do not share the address scope between projects') + ) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.network + obj = client.find_address_scope( + parsed_args.address_scope, + ignore_missing=False) + attrs = {} + if parsed_args.name is not None: + attrs['name'] = parsed_args.name + if parsed_args.share: + attrs['shared'] = True + if parsed_args.no_share: + attrs['shared'] = False + if attrs == {}: + msg = "Nothing specified to be set." + raise exceptions.CommandError(msg) + client.update_address_scope(obj, **attrs) + + class ShowAddressScope(command.ShowOne): """Display address scope details""" |
