diff --git a/novaclient/tests/v1_1/fakes.py b/novaclient/tests/v1_1/fakes.py index 4457d0b94..89a1d60fb 100644 --- a/novaclient/tests/v1_1/fakes.py +++ b/novaclient/tests/v1_1/fakes.py @@ -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 diff --git a/novaclient/tests/v1_1/test_shell.py b/novaclient/tests/v1_1/test_shell.py index fb0a6e613..d86180267 100644 --- a/novaclient/tests/v1_1/test_shell.py +++ b/novaclient/tests/v1_1/test_shell.py @@ -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') diff --git a/novaclient/v1_1/shell.py b/novaclient/v1_1/shell.py index f2dac6224..1c6b28c21 100644 --- a/novaclient/v1_1/shell.py +++ b/novaclient/v1_1/shell.py @@ -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']) diff --git a/novaclient/v3/shell.py b/novaclient/v3/shell.py index 75e435985..b9a03ba4f 100644 --- a/novaclient/v3/shell.py +++ b/novaclient/v3/shell.py @@ -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'])