Merge "Display baymodel info with bay-show command"

This commit is contained in:
Jenkins
2016-07-21 01:17:25 +00:00
committed by Gerrit Code Review
2 changed files with 22 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ import mock
from magnumclient import exceptions
from magnumclient.tests.v1 import shell_test_base
from magnumclient.tests.v1 import test_baymodels_shell
from magnumclient.v1.bays import Bay
@@ -113,6 +114,17 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
'--timeout 15')
self.assertTrue(mock_create.called)
@mock.patch('magnumclient.v1.baymodels.BayModelManager.get')
@mock.patch('magnumclient.v1.bays.BayManager.get')
def test_bay_show_baymodel_metadata(self, mock_bay, mock_baymodel):
mock_bay.return_value = FakeBay(info={'links': 0, 'baymodel_id': 0})
mock_baymodel.return_value = test_baymodels_shell.FakeBayModel(
info={'links': 0, 'uuid': 0, 'id': 0, 'name': ''})
self._test_arg_success('bay-show --long x', 'baymodel_name')
self.assertTrue(mock_bay.called)
self.assertTrue(mock_baymodel.called)
@mock.patch('magnumclient.v1.baymodels.BayModelManager.get')
@mock.patch('magnumclient.v1.bays.BayManager.create')
def test_bay_create_success_only_baymodel_arg(self, mock_create, mock_get):

View File

@@ -124,9 +124,19 @@ def do_bay_delete(cs, args):
@utils.arg('bay',
metavar='<bay>',
help='ID or name of the bay to show.')
@utils.arg('--long',
action='store_true', default=False,
help='Display extra associated Baymodel info.')
def do_bay_show(cs, args):
"""Show details about the given bay."""
bay = cs.bays.get(args.bay)
if args.long:
baymodel = cs.baymodels.get(bay.baymodel_id)
del baymodel._info['links'], baymodel._info['uuid']
for key in baymodel._info:
if 'baymodel_' + key not in bay._info:
bay._info['baymodel_' + key] = baymodel._info[key]
_show_bay(bay)