Add is_default column to type-list command output

Add additional column "is_default" to output provided
by command "type-list".

Partially implements blueprint default-volume-type

Change-Id: Ia0a97a7a4999e239b6cee89502cfa3cc5d0b950a
This commit is contained in:
Igor Malinovskiy 2015-02-02 15:36:42 +02:00
parent f4ddf3626c
commit 1b6a1370d5
4 changed files with 24 additions and 4 deletions

@ -266,6 +266,9 @@ class FakeHTTPClient(fakes.FakeHTTPClient):
def get_shares_1234_metadata(self, **kw):
return (200, {}, {"metadata": {"key1": "val1", "key2": "val2"}})
def get_types_default(self, **kw):
return self.get_types_1(**kw)
def get_types(self, **kw):
return (200, {}, {
'share_types': [{'id': 1,

@ -252,6 +252,10 @@ class ShellTest(test_utils.TestCase):
)
self.assert_called('GET', '/share-networks/detail')
def test_type_list_default_volume_type(self):
self.run_command('type-list')
self.assert_called_anytime('GET', '/types/default')
def test_list_filter_by_project_id(self):
aliases = ['--project-id', '--project_id']
for alias in aliases:

@ -82,7 +82,7 @@ class ShareTypeManager(base.ManagerWithFind):
"""
return self._list("/types", "share_types")
def get(self, share_type):
def get(self, share_type="default"):
"""Get a specific share type.
:param share_type: The ID of the :class:`ShareType` to get.

@ -1589,8 +1589,16 @@ def _print_type_extra_specs(share_type):
return None
def _print_share_type_list(stypes):
cliutils.print_list(stypes, ['ID', 'Name'])
def _print_share_type_list(stypes, default_share_type=None):
def _is_default(share_type):
if share_type == default_share_type:
return 'YES'
else:
return '-'
formatters = {'is_default': _is_default}
cliutils.print_list(stypes, ['ID', 'Name', 'is_default'], formatters)
def _print_type_and_extra_specs_list(stypes):
@ -1606,8 +1614,13 @@ def _find_share_type(cs, stype):
@cliutils.service_type('share')
def do_type_list(cs, args):
"""Print a list of available 'share types'."""
try:
default = cs.share_types.get()
except exceptions.NotFound:
default = None
stypes = cs.share_types.list()
_print_share_type_list(stypes)
_print_share_type_list(stypes, default_share_type=default)
@cliutils.service_type('share')