Add support to list volume extensions
Since cinderclient has support to list extensions, we should add some of the logic to our list extensions command. Change-Id: I7dc7ca325ea9b82194bba6d875e7b8dc1884d77e Closes-Bug: #1337687
This commit is contained in:
		| @@ -47,6 +47,11 @@ class ListExtension(lister.Lister): | ||||
|             action='store_true', | ||||
|             default=False, | ||||
|             help='List extensions for the Compute API') | ||||
|         parser.add_argument( | ||||
|             '--volume', | ||||
|             action='store_true', | ||||
|             default=False, | ||||
|             help='List extensions for the Volume API') | ||||
|         return parser | ||||
|  | ||||
|     def take_action(self, parsed_args): | ||||
| @@ -63,7 +68,8 @@ 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 and compute are supported. | ||||
|         show_all = (not parsed_args.identity and not parsed_args.compute) | ||||
|         show_all = (not parsed_args.identity and not parsed_args.compute | ||||
|                     and not parsed_args.volume) | ||||
|  | ||||
|         if parsed_args.identity or show_all: | ||||
|             identity_client = self.app.client_manager.identity | ||||
| @@ -81,6 +87,14 @@ class ListExtension(lister.Lister): | ||||
|                 message = "Extensions list not supported by Compute API" | ||||
|                 self.log.warning(message) | ||||
|  | ||||
|         if parsed_args.volume or show_all: | ||||
|             volume_client = self.app.client_manager.volume | ||||
|             try: | ||||
|                 data += volume_client.list_extensions.show_all() | ||||
|             except Exception: | ||||
|                 message = "Extensions list not supported by Volume API" | ||||
|                 self.log.warning(message) | ||||
|  | ||||
|         return (columns, | ||||
|                 (utils.get_item_properties( | ||||
|                     s, columns, | ||||
|   | ||||
| @@ -15,8 +15,11 @@ | ||||
|  | ||||
| import logging | ||||
|  | ||||
| from cinderclient import extension | ||||
| from cinderclient.v1.contrib import list_extensions | ||||
| from cinderclient.v1 import volume_snapshots | ||||
| from cinderclient.v1 import volumes | ||||
|  | ||||
| from openstackclient.common import utils | ||||
|  | ||||
| # Monkey patch for v1 cinderclient | ||||
| @@ -46,6 +49,7 @@ def make_client(instance): | ||||
|     # Set client http_log_debug to True if verbosity level is high enough | ||||
|     http_log_debug = utils.get_effective_log_level() <= logging.DEBUG | ||||
|  | ||||
|     extensions = [extension.Extension('list_extensions', list_extensions)] | ||||
|     client = volume_client( | ||||
|         username=instance._username, | ||||
|         api_key=instance._password, | ||||
| @@ -54,7 +58,8 @@ def make_client(instance): | ||||
|         cacert=instance._cacert, | ||||
|         insecure=instance._insecure, | ||||
|         region_name=instance._region_name, | ||||
|         http_log_debug=http_log_debug | ||||
|         extensions=extensions, | ||||
|         http_log_debug=http_log_debug, | ||||
|     ) | ||||
|  | ||||
|     # Populate the Cinder client to skip another auth query to Identity | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Steve Martinelli
					Steve Martinelli