Merge "Add the support for 'detail' flag"
This commit is contained in:
		@@ -37,11 +37,12 @@ class FakeBayModel(BayModel):
 | 
				
			|||||||
class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
					class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_expected_args_list(self, limit=None, sort_dir=None,
 | 
					    def _get_expected_args_list(self, limit=None, sort_dir=None,
 | 
				
			||||||
                                sort_key=None):
 | 
					                                sort_key=None, detail=False):
 | 
				
			||||||
        expected_args = {}
 | 
					        expected_args = {}
 | 
				
			||||||
        expected_args['limit'] = limit
 | 
					        expected_args['limit'] = limit
 | 
				
			||||||
        expected_args['sort_dir'] = sort_dir
 | 
					        expected_args['sort_dir'] = sort_dir
 | 
				
			||||||
        expected_args['sort_key'] = sort_key
 | 
					        expected_args['sort_key'] = sort_key
 | 
				
			||||||
 | 
					        expected_args['detail'] = detail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return expected_args
 | 
					        return expected_args
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -549,6 +550,13 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
				
			|||||||
        expected_args = self._get_expected_args_list(1, 'asc', 'uuid')
 | 
					        expected_args = self._get_expected_args_list(1, 'asc', 'uuid')
 | 
				
			||||||
        mock_list.assert_called_once_with(**expected_args)
 | 
					        mock_list.assert_called_once_with(**expected_args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mock.patch('magnumclient.v1.baymodels.BayModelManager.list')
 | 
				
			||||||
 | 
					    def test_baymodel_list_success_detailed(self, mock_list):
 | 
				
			||||||
 | 
					        self._test_arg_success('baymodel-list '
 | 
				
			||||||
 | 
					                               '--detail')
 | 
				
			||||||
 | 
					        expected_args = self._get_expected_args_list(detail=True)
 | 
				
			||||||
 | 
					        mock_list.assert_called_once_with(**expected_args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @mock.patch('magnumclient.v1.baymodels.BayModelManager.list')
 | 
					    @mock.patch('magnumclient.v1.baymodels.BayModelManager.list')
 | 
				
			||||||
    def test_baymodel_list_ignored_duplicated_field(self, mock_list):
 | 
					    def test_baymodel_list_ignored_duplicated_field(self, mock_list):
 | 
				
			||||||
        mock_list.return_value = [FakeBayModel()]
 | 
					        mock_list.return_value = [FakeBayModel()]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,11 +37,12 @@ class FakeClusterTemplate(ClusterTemplate):
 | 
				
			|||||||
class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
					class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_expected_args_list(self, limit=None, sort_dir=None,
 | 
					    def _get_expected_args_list(self, limit=None, sort_dir=None,
 | 
				
			||||||
                                sort_key=None):
 | 
					                                sort_key=None, detail=False):
 | 
				
			||||||
        expected_args = {}
 | 
					        expected_args = {}
 | 
				
			||||||
        expected_args['limit'] = limit
 | 
					        expected_args['limit'] = limit
 | 
				
			||||||
        expected_args['sort_dir'] = sort_dir
 | 
					        expected_args['sort_dir'] = sort_dir
 | 
				
			||||||
        expected_args['sort_key'] = sort_key
 | 
					        expected_args['sort_key'] = sort_key
 | 
				
			||||||
 | 
					        expected_args['detail'] = detail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return expected_args
 | 
					        return expected_args
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -730,6 +731,14 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
 | 
				
			|||||||
        expected_args = self._get_expected_args_list(1, 'asc', 'uuid')
 | 
					        expected_args = self._get_expected_args_list(1, 'asc', 'uuid')
 | 
				
			||||||
        mock_list.assert_called_once_with(**expected_args)
 | 
					        mock_list.assert_called_once_with(**expected_args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mock.patch(
 | 
				
			||||||
 | 
					        'magnumclient.v1.cluster_templates.ClusterTemplateManager.list')
 | 
				
			||||||
 | 
					    def test_cluster_template_list_success_detailed(self, mock_list):
 | 
				
			||||||
 | 
					        self._test_arg_success('cluster-template-list '
 | 
				
			||||||
 | 
					                               '--detail')
 | 
				
			||||||
 | 
					        expected_args = self._get_expected_args_list(detail=True)
 | 
				
			||||||
 | 
					        mock_list.assert_called_once_with(**expected_args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @mock.patch(
 | 
					    @mock.patch(
 | 
				
			||||||
        'magnumclient.v1.cluster_templates.ClusterTemplateManager.list')
 | 
					        'magnumclient.v1.cluster_templates.ClusterTemplateManager.list')
 | 
				
			||||||
    def test_cluster_template_list_ignored_duplicated_field(self, mock_list):
 | 
					    def test_cluster_template_list_ignored_duplicated_field(self, mock_list):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,11 @@ CREATION_ATTRIBUTES = ['name', 'image_id', 'flavor_id', 'master_flavor_id',
 | 
				
			|||||||
                       'docker_storage_driver', 'master_lb_enabled',
 | 
					                       'docker_storage_driver', 'master_lb_enabled',
 | 
				
			||||||
                       'floating_ip_enabled']
 | 
					                       'floating_ip_enabled']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OUTPUT_ATTRIBUTES = CREATION_ATTRIBUTES + ['apiserver_port', 'created_at',
 | 
				
			||||||
 | 
					                                           'insecure_registry', 'links',
 | 
				
			||||||
 | 
					                                           'updated_at', 'cluster_distro',
 | 
				
			||||||
 | 
					                                           'uuid']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BaseModel(base.Resource):
 | 
					class BaseModel(base.Resource):
 | 
				
			||||||
    # model_name needs to be overridden by any derived class.
 | 
					    # model_name needs to be overridden by any derived class.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@
 | 
				
			|||||||
from magnumclient.common import cliutils as utils
 | 
					from magnumclient.common import cliutils as utils
 | 
				
			||||||
from magnumclient.common import utils as magnum_utils
 | 
					from magnumclient.common import utils as magnum_utils
 | 
				
			||||||
from magnumclient.i18n import _
 | 
					from magnumclient.i18n import _
 | 
				
			||||||
 | 
					from magnumclient.v1 import basemodels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEPRECATION_MESSAGE = (
 | 
					DEPRECATION_MESSAGE = (
 | 
				
			||||||
@@ -211,6 +212,10 @@ def do_baymodel_show(cs, args):
 | 
				
			|||||||
                  'apiserver_port, server_type, tls_disabled, registry_enabled'
 | 
					                  'apiserver_port, server_type, tls_disabled, registry_enabled'
 | 
				
			||||||
                  )
 | 
					                  )
 | 
				
			||||||
           )
 | 
					           )
 | 
				
			||||||
 | 
					@utils.arg('--detail',
 | 
				
			||||||
 | 
					           action='store_true', default=False,
 | 
				
			||||||
 | 
					           help=_('Show detailed information about the baymodels.')
 | 
				
			||||||
 | 
					           )
 | 
				
			||||||
@utils.deprecated(DEPRECATION_MESSAGE)
 | 
					@utils.deprecated(DEPRECATION_MESSAGE)
 | 
				
			||||||
def do_baymodel_list(cs, args):
 | 
					def do_baymodel_list(cs, args):
 | 
				
			||||||
    """Print a list of baymodels.
 | 
					    """Print a list of baymodels.
 | 
				
			||||||
@@ -219,7 +224,11 @@ def do_baymodel_list(cs, args):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    nodes = cs.baymodels.list(limit=args.limit,
 | 
					    nodes = cs.baymodels.list(limit=args.limit,
 | 
				
			||||||
                              sort_key=args.sort_key,
 | 
					                              sort_key=args.sort_key,
 | 
				
			||||||
                              sort_dir=args.sort_dir)
 | 
					                              sort_dir=args.sort_dir,
 | 
				
			||||||
 | 
					                              detail=args.detail)
 | 
				
			||||||
 | 
					    if args.detail:
 | 
				
			||||||
 | 
					        columns = basemodels.OUTPUT_ATTRIBUTES
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
        columns = ['uuid', 'name']
 | 
					        columns = ['uuid', 'name']
 | 
				
			||||||
    columns += utils._get_list_table_columns_and_formatters(
 | 
					    columns += utils._get_list_table_columns_and_formatters(
 | 
				
			||||||
        args.fields, nodes,
 | 
					        args.fields, nodes,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@
 | 
				
			|||||||
from magnumclient.common import cliutils as utils
 | 
					from magnumclient.common import cliutils as utils
 | 
				
			||||||
from magnumclient.common import utils as magnum_utils
 | 
					from magnumclient.common import utils as magnum_utils
 | 
				
			||||||
from magnumclient.i18n import _
 | 
					from magnumclient.i18n import _
 | 
				
			||||||
 | 
					from magnumclient.v1 import basemodels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Maps old parameter names to their new names and whether they are required
 | 
					# Maps old parameter names to their new names and whether they are required
 | 
				
			||||||
@@ -259,11 +260,19 @@ def do_cluster_template_show(cs, args):
 | 
				
			|||||||
                  'apiserver_port, server_type, tls_disabled, registry_enabled'
 | 
					                  'apiserver_port, server_type, tls_disabled, registry_enabled'
 | 
				
			||||||
                  )
 | 
					                  )
 | 
				
			||||||
           )
 | 
					           )
 | 
				
			||||||
 | 
					@utils.arg('--detail',
 | 
				
			||||||
 | 
					           action='store_true', default=False,
 | 
				
			||||||
 | 
					           help=_('Show detailed information about the cluster templates.')
 | 
				
			||||||
 | 
					           )
 | 
				
			||||||
def do_cluster_template_list(cs, args):
 | 
					def do_cluster_template_list(cs, args):
 | 
				
			||||||
    """Print a list of cluster templates."""
 | 
					    """Print a list of cluster templates."""
 | 
				
			||||||
    nodes = cs.cluster_templates.list(limit=args.limit,
 | 
					    nodes = cs.cluster_templates.list(limit=args.limit,
 | 
				
			||||||
                                      sort_key=args.sort_key,
 | 
					                                      sort_key=args.sort_key,
 | 
				
			||||||
                                      sort_dir=args.sort_dir)
 | 
					                                      sort_dir=args.sort_dir,
 | 
				
			||||||
 | 
					                                      detail=args.detail)
 | 
				
			||||||
 | 
					    if args.detail:
 | 
				
			||||||
 | 
					        columns = basemodels.OUTPUT_ATTRIBUTES
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
        columns = ['uuid', 'name']
 | 
					        columns = ['uuid', 'name']
 | 
				
			||||||
    columns += utils._get_list_table_columns_and_formatters(
 | 
					    columns += utils._get_list_table_columns_and_formatters(
 | 
				
			||||||
        args.fields, nodes,
 | 
					        args.fields, nodes,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user