summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v2_0/service.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2012-05-09 17:17:04 -0500
committerDean Troyer <dtroyer@gmail.com>2012-05-10 14:11:17 -0500
commitcc0adad81ec48de27c1cbb6eac5563b13439d368 (patch)
tree980b3f8643ec44306cc25df6b93a42b0a1aaad0b /openstackclient/identity/v2_0/service.py
parent6fb1a4e496f6860c800f08e68c05b7e95be36c3b (diff)
downloadpython-openstackclient-cc0adad81ec48de27c1cbb6eac5563b13439d368.tar.gz
Add tenant commands, work on service
* adds {list|show} tenant * fleshes out service commands (still WIP) Change-Id: I9dabb6ed3f128a30f140146928320f033d097a06
Diffstat (limited to 'openstackclient/identity/v2_0/service.py')
-rw-r--r--openstackclient/identity/v2_0/service.py84
1 files changed, 82 insertions, 2 deletions
diff --git a/openstackclient/identity/v2_0/service.py b/openstackclient/identity/v2_0/service.py
index 24ead928..fd1d7bf9 100644
--- a/openstackclient/identity/v2_0/service.py
+++ b/openstackclient/identity/v2_0/service.py
@@ -21,11 +21,57 @@ Service action implementations
import logging
+from cliff import lister
+from cliff import show
+
from openstackclient.common import command
from openstackclient.common import utils
-class List_Service(command.OpenStackCommand):
+def get_service_properties(service, fields, formatters={}):
+ """Return a tuple containing the service properties.
+
+ :param server: a single Service resource
+ :param fields: tuple of strings with the desired field names
+ :param formatters: dictionary mapping field names to callables
+ to format the values
+ """
+ row = []
+ mixed_case_fields = []
+
+ for field in fields:
+ if field in formatters:
+ row.append(formatters[field](service))
+ else:
+ if field in mixed_case_fields:
+ field_name = field.replace(' ', '_')
+ else:
+ field_name = field.lower().replace(' ', '_')
+ data = getattr(service, field_name, '')
+ row.append(data)
+ return tuple(row)
+
+
+class Create_Service(command.OpenStackCommand):
+ "Create service command."
+
+ api = 'identity'
+ log = logging.getLogger(__name__)
+
+ def get_parser(self, prog_name):
+ parser = super(Create_Service, self).get_parser(prog_name)
+ parser.add_argument(
+ '--long',
+ action='store_true',
+ default=False,
+ help='Additional fields are listed in output')
+ return parser
+
+ def run(self, parsed_args):
+ self.log.info('v2.Create_Service.run(%s)' % parsed_args)
+
+
+class List_Service(command.OpenStackCommand, lister.Lister):
"List service command."
api = 'identity'
@@ -40,5 +86,39 @@ class List_Service(command.OpenStackCommand):
help='Additional fields are listed in output')
return parser
+ def get_data(self, parsed_args):
+ self.log.debug('v2.List_Service.run(%s)' % parsed_args)
+ if parsed_args.long:
+ columns = ('ID', 'Name', 'Type', 'Description')
+ else:
+ columns = ('ID', 'Name')
+ data = self.app.client_manager.identity.services.list()
+ print "data: %s" % data
+ return (columns,
+ (get_service_properties(
+ s, columns,
+ formatters={},
+ ) for s in data),
+ )
+
+ #def run(self, parsed_args):
+ # self.log.info('v2.List_Service.run(%s)' % parsed_args)
+
+
+class Show_Service(command.OpenStackCommand):
+ "Show service command."
+
+ api = 'identity'
+ log = logging.getLogger(__name__)
+
+ def get_parser(self, prog_name):
+ parser = super(Show_Service, self).get_parser(prog_name)
+ parser.add_argument(
+ '--long',
+ action='store_true',
+ default=False,
+ help='Additional fields are listed in output')
+ return parser
+
def run(self, parsed_args):
- self.log.info('v2.List_Service.run(%s)' % parsed_args)
+ self.log.info('v2.Show_Service.run(%s)' % parsed_args)