diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:55:07 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:58:28 -0500 |
| commit | 8898e020fb874871e4d120e686abac0a94afd392 (patch) | |
| tree | 96ca294fa56a9e086299aa3281feb453eb72e4fe /openstackclient/identity/v3/service.py | |
| parent | 7a0a7d67ed639cf664f02e1148c7b4a9348f4672 (diff) | |
| download | python-openstackclient-8898e020fb874871e4d120e686abac0a94afd392.tar.gz | |
Identity v3 tests
* Add project, user, role and service v3 tests
* Fix issues in commands with enable/disable
* Make commands and tests more consistent between versions
* Make formatting and comments more consistent
Change-Id: Id21e7a5abd7e421a7742f937861ec46b53095fc7
Diffstat (limited to 'openstackclient/identity/v3/service.py')
| -rw-r--r-- | openstackclient/identity/v3/service.py | 113 |
1 files changed, 71 insertions, 42 deletions
diff --git a/openstackclient/identity/v3/service.py b/openstackclient/identity/v3/service.py index 77efbead..7e3bfc6b 100644 --- a/openstackclient/identity/v3/service.py +++ b/openstackclient/identity/v3/service.py @@ -17,7 +17,6 @@ import logging import six -import sys from cliff import command from cliff import lister @@ -27,7 +26,7 @@ from openstackclient.common import utils class CreateService(show.ShowOne): - """Create service command""" + """Create new service""" log = logging.getLogger(__name__ + '.CreateService') @@ -36,38 +35,45 @@ class CreateService(show.ShowOne): parser.add_argument( 'type', metavar='<service-type>', - help='New service type (compute, image, identity, volume, etc)') + help='New service type (compute, image, identity, volume, etc)', + ) parser.add_argument( '--name', metavar='<service-name>', - help='New service name') + help='New service name', + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', - dest='enabled', action='store_true', - default=True, - help='Enable user') + help='Enable project', + ) enable_group.add_argument( '--disable', - dest='enabled', - action='store_false', - help='Disable user') + action='store_true', + help='Disable project', + ) return parser def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity + + enabled = True + if parsed_args.disable: + enabled = False + service = identity_client.services.create( parsed_args.name, parsed_args.type, - parsed_args.enabled) + enabled, + ) return zip(*sorted(six.iteritems(service._info))) class DeleteService(command.Command): - """Delete service command""" + """Delete service""" log = logging.getLogger(__name__ + '.DeleteService') @@ -76,27 +82,31 @@ class DeleteService(command.Command): parser.add_argument( 'service', metavar='<service>', - help='Name or ID of service to delete') + help='Service to delete (name or ID)', + ) return parser def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - service_id = utils.find_resource( - identity_client.services, parsed_args.service).id + service = utils.find_resource( + identity_client.services, + parsed_args.service, + ) - identity_client.services.delete(service_id) + identity_client.services.delete(service.id) return class ListService(lister.Lister): - """List service command""" + """List services""" log = logging.getLogger(__name__ + '.ListService') def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) + columns = ('ID', 'Name', 'Type', 'Enabled') data = self.app.client_manager.identity.services.list() return (columns, @@ -106,8 +116,8 @@ class ListService(lister.Lister): ) for s in data)) -class SetService(show.ShowOne): - """Set service command""" +class SetService(command.Command): + """Set service properties""" log = logging.getLogger(__name__ + '.SetService') @@ -116,51 +126,67 @@ class SetService(show.ShowOne): parser.add_argument( 'service', metavar='<service>', - help='Service name or ID to update') + help='Service to update (name or ID)', + ) parser.add_argument( '--type', metavar='<service-type>', - help='New service type (compute, image, identity, volume, etc)') + help='New service type (compute, image, identity, volume, etc)', + ) parser.add_argument( '--name', metavar='<service-name>', - help='New service name') + help='New service name', + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', - dest='enabled', action='store_true', - default=True, - help='Enable user') + help='Enable project', + ) enable_group.add_argument( '--disable', - dest='enabled', - action='store_false', - help='Disable user') + action='store_true', + help='Disable project', + ) return parser def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - service = utils.find_resource(identity_client.services, - parsed_args.service) - - if not parsed_args.name and not parsed_args.type: - sys.stdout.write("Service not updated, no arguments present") + if (not parsed_args.name + and not parsed_args.type + and not parsed_args.enable + and not parsed_args.disable): return - identity_client.services.update( - service, - parsed_args.name, - parsed_args.type, - parsed_args.enabled) + service = utils.find_resource( + identity_client.services, + parsed_args.service, + ) + + kwargs = service._info + if parsed_args.type: + kwargs['type'] = parsed_args.type + if parsed_args.name: + kwargs['name'] = parsed_args.name + if parsed_args.enable: + kwargs['enabled'] = True + if parsed_args.disable: + kwargs['enabled'] = False + if 'id' in kwargs: + del kwargs['id'] + identity_client.services.update( + service.id, + **kwargs + ) return class ShowService(show.ShowOne): - """Show service command""" + """Show service details""" log = logging.getLogger(__name__ + '.ShowService') @@ -169,14 +195,17 @@ class ShowService(show.ShowOne): parser.add_argument( 'service', metavar='<service>', - help='Type, name or ID of service to display') + help='Service to display (type, name or ID)', + ) return parser def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - service = utils.find_resource(identity_client.services, - parsed_args.service) + service = utils.find_resource( + identity_client.services, + parsed_args.service, + ) return zip(*sorted(six.iteritems(service._info))) |
