diff options
| author | Jenkins <jenkins@review.openstack.org> | 2014-07-08 15:41:37 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2014-07-08 15:41:37 +0000 |
| commit | ab5416a385f3597c2a63b5518f20dce7de75efc4 (patch) | |
| tree | 593b6b9a72d6746b8489b0beede26d433602b3ae /openstackclient/common | |
| parent | 6575581f79afc79b3ab933ed962eb0b9c1b6e06f (diff) | |
| parent | 270c7fe96727cedf81e7f4fe6361672c512fc150 (diff) | |
| download | python-openstackclient-ab5416a385f3597c2a63b5518f20dce7de75efc4.tar.gz | |
Merge "Add support to list compute extensions"
Diffstat (limited to 'openstackclient/common')
| -rw-r--r-- | openstackclient/common/extension.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py index a8b1a6b0..a3f94c09 100644 --- a/openstackclient/common/extension.py +++ b/openstackclient/common/extension.py @@ -19,16 +19,14 @@ import logging from cliff import lister -from openstackclient.common import exceptions as exc from openstackclient.common import utils class ListExtension(lister.Lister): """List extension command""" - # TODO(mfisch): add support for volume and compute - # when the underlying APIs support it. Add support - # for network when it's added to openstackclient. + # TODO(mfisch): add support for volume and network + # when the underlying APIs support it. log = logging.getLogger(__name__ + '.ListExtension') @@ -44,6 +42,11 @@ class ListExtension(lister.Lister): action='store_true', default=False, help='List extensions for the Identity API') + parser.add_argument( + '--compute', + action='store_true', + default=False, + help='List extensions for the Compute API') return parser def take_action(self, parsed_args): @@ -59,17 +62,24 @@ class ListExtension(lister.Lister): # by default we want to show everything, unless the # user specifies one or more of the APIs to show - # for now, only identity is supported - show_all = (not parsed_args.identity) + # for now, only identity and compute are supported. + show_all = (not parsed_args.identity and not parsed_args.compute) if parsed_args.identity or show_all: identity_client = self.app.client_manager.identity try: data += identity_client.extensions.list() except Exception: - raise exc.CommandError( - "Extensions list not supported by" - " identity API") + message = "Extensions list not supported by Identity API" + self.log.warning(message) + + if parsed_args.compute or show_all: + compute_client = self.app.client_manager.compute + try: + data += compute_client.list_extensions.show_all() + except Exception: + message = "Extensions list not supported by Compute API" + self.log.warning(message) return (columns, (utils.get_item_properties( |
