Print adminPass when rebuilding from shell
The 'nova rebuild' command did not print the adminPass returned by the server. This is because it discards the instance information returned by the rebuild action and fetchs the information again. This would lose the adminPass and it would not be printed for the user. This patch reuses the instance information returned by the rebuild action which ensures that the adminPass is printed by the shell. Change-Id: I144bfa298bef529c78ca04042cd37a763537f09e Closes-bug: 1302696
This commit is contained in:
parent
9162a5fe8f
commit
496e39a260
novaclient
@ -535,11 +535,11 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
assert list(body[action]) == ['type']
|
||||
assert body[action]['type'] in ['HARD', 'SOFT']
|
||||
elif action == 'rebuild':
|
||||
keys = list(body[action])
|
||||
if 'adminPass' in keys:
|
||||
keys.remove('adminPass')
|
||||
assert 'imageRef' in keys
|
||||
body = body[action]
|
||||
adminPass = body.get('adminPass', 'randompassword')
|
||||
assert 'imageRef' in body
|
||||
_body = self.get_servers_1234()[2]
|
||||
_body['server']['adminPass'] = adminPass
|
||||
elif action == 'resize':
|
||||
keys = body[action].keys()
|
||||
assert 'flavorRef' in keys
|
||||
|
@ -739,34 +739,37 @@ class ShellTest(utils.TestCase):
|
||||
{'reboot': {'type': 'HARD'}})
|
||||
|
||||
def test_rebuild(self):
|
||||
self.run_command('rebuild sample-server 1')
|
||||
self.assert_called('GET', '/servers', pos=-8)
|
||||
self.assert_called('GET', '/servers/1234', pos=-7)
|
||||
self.assert_called('GET', '/images/1', pos=-6)
|
||||
output = self.run_command('rebuild sample-server 1')
|
||||
self.assert_called('GET', '/servers', pos=-6)
|
||||
self.assert_called('GET', '/servers/1234', pos=-5)
|
||||
self.assert_called('GET', '/images/1', pos=-4)
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'rebuild': {'imageRef': 1}}, pos=-5)
|
||||
{'rebuild': {'imageRef': 1}}, pos=-3)
|
||||
self.assert_called('GET', '/flavors/1', pos=-2)
|
||||
self.assert_called('GET', '/images/2')
|
||||
self.assertIn('adminPass', output)
|
||||
|
||||
def test_rebuild_password(self):
|
||||
self.run_command('rebuild sample-server 1 --rebuild-password asdf')
|
||||
self.assert_called('GET', '/servers', pos=-8)
|
||||
self.assert_called('GET', '/servers/1234', pos=-7)
|
||||
self.assert_called('GET', '/images/1', pos=-6)
|
||||
output = self.run_command('rebuild sample-server 1'
|
||||
' --rebuild-password asdf')
|
||||
self.assert_called('GET', '/servers', pos=-6)
|
||||
self.assert_called('GET', '/servers/1234', pos=-5)
|
||||
self.assert_called('GET', '/images/1', pos=-4)
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'rebuild': {'imageRef': 1, 'adminPass': 'asdf'}},
|
||||
pos=-5)
|
||||
pos=-3)
|
||||
self.assert_called('GET', '/flavors/1', pos=-2)
|
||||
self.assert_called('GET', '/images/2')
|
||||
self.assertIn('adminPass', output)
|
||||
|
||||
def test_rebuild_preserve_ephemeral(self):
|
||||
self.run_command('rebuild sample-server 1 --preserve-ephemeral')
|
||||
self.assert_called('GET', '/servers', pos=-8)
|
||||
self.assert_called('GET', '/servers/1234', pos=-7)
|
||||
self.assert_called('GET', '/images/1', pos=-6)
|
||||
self.assert_called('GET', '/servers', pos=-6)
|
||||
self.assert_called('GET', '/servers/1234', pos=-5)
|
||||
self.assert_called('GET', '/images/1', pos=-4)
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'rebuild': {'imageRef': 1,
|
||||
'preserve_ephemeral': True}}, pos=-5)
|
||||
'preserve_ephemeral': True}}, pos=-3)
|
||||
self.assert_called('GET', '/flavors/1', pos=-2)
|
||||
self.assert_called('GET', '/images/2')
|
||||
|
||||
|
@ -1210,8 +1210,8 @@ def do_rebuild(cs, args):
|
||||
|
||||
kwargs = utils.get_resource_manager_extra_kwargs(do_rebuild, args)
|
||||
kwargs['preserve_ephemeral'] = args.preserve_ephemeral
|
||||
server.rebuild(image, _password, **kwargs)
|
||||
_print_server(cs, args)
|
||||
server = server.rebuild(image, _password, **kwargs)
|
||||
_print_server(cs, args, server)
|
||||
|
||||
if args.poll:
|
||||
_poll_for_status(cs.servers.get, server.id, 'rebuilding', ['active'])
|
||||
|
@ -1055,8 +1055,8 @@ def do_rebuild(cs, args):
|
||||
_password = None
|
||||
|
||||
kwargs = utils.get_resource_manager_extra_kwargs(do_rebuild, args)
|
||||
server.rebuild(image, _password, **kwargs)
|
||||
_print_server(cs, args)
|
||||
server = server.rebuild(image, _password, **kwargs)
|
||||
_print_server(cs, args, server)
|
||||
|
||||
if args.poll:
|
||||
_poll_for_status(cs.servers.get, server.id, 'rebuilding', ['active'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user