Merge "evacuate: respect original SHUTOFF state in --wait completion"
This commit is contained in:
@@ -3882,9 +3882,15 @@ host."""
|
|||||||
compute_client.evacuate_server(server, **kwargs)
|
compute_client.evacuate_server(server, **kwargs)
|
||||||
|
|
||||||
if parsed_args.wait:
|
if parsed_args.wait:
|
||||||
|
orig_status = server.status
|
||||||
|
success = ['ACTIVE']
|
||||||
|
if orig_status == 'SHUTOFF':
|
||||||
|
success.append('SHUTOFF')
|
||||||
|
|
||||||
if utils.wait_for_status(
|
if utils.wait_for_status(
|
||||||
compute_client.get_server,
|
compute_client.get_server,
|
||||||
server.id,
|
server.id,
|
||||||
|
success_status=success,
|
||||||
callback=_show_progress,
|
callback=_show_progress,
|
||||||
):
|
):
|
||||||
self.app.stdout.write(_('Complete\n'))
|
self.app.stdout.write(_('Complete\n'))
|
||||||
|
|||||||
@@ -7039,6 +7039,7 @@ class TestServerEvacuate(TestServer):
|
|||||||
'image': self.image,
|
'image': self.image,
|
||||||
'networks': {},
|
'networks': {},
|
||||||
'adminPass': 'passw0rd',
|
'adminPass': 'passw0rd',
|
||||||
|
'status': 'ACTIVE',
|
||||||
}
|
}
|
||||||
self.server = compute_fakes.create_one_server(attrs=attrs)
|
self.server = compute_fakes.create_one_server(attrs=attrs)
|
||||||
attrs['id'] = self.server.id
|
attrs['id'] = self.server.id
|
||||||
@@ -7176,6 +7177,33 @@ class TestServerEvacuate(TestServer):
|
|||||||
mock_wait_for_status.assert_called_once_with(
|
mock_wait_for_status.assert_called_once_with(
|
||||||
self.compute_client.get_server,
|
self.compute_client.get_server,
|
||||||
self.server.id,
|
self.server.id,
|
||||||
|
success_status=['ACTIVE'],
|
||||||
|
callback=mock.ANY,
|
||||||
|
)
|
||||||
|
|
||||||
|
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
||||||
|
def test_evacuate_with_wait_ok_shutoff(self, mock_wait_for_status):
|
||||||
|
self.server.status = 'SHUTOFF'
|
||||||
|
self.compute_client.get_server.return_value = self.server
|
||||||
|
|
||||||
|
args = [
|
||||||
|
self.server.id,
|
||||||
|
'--wait',
|
||||||
|
]
|
||||||
|
verify_args = [
|
||||||
|
('server', self.server.id),
|
||||||
|
('wait', True),
|
||||||
|
]
|
||||||
|
evac_args = {
|
||||||
|
'host': None,
|
||||||
|
'on_shared_storage': False,
|
||||||
|
'admin_pass': None,
|
||||||
|
}
|
||||||
|
self._test_evacuate(args, verify_args, evac_args)
|
||||||
|
mock_wait_for_status.assert_called_once_with(
|
||||||
|
self.compute_client.get_server,
|
||||||
|
self.server.id,
|
||||||
|
success_status=['ACTIVE', 'SHUTOFF'],
|
||||||
callback=mock.ANY,
|
callback=mock.ANY,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user