diff options
| author | Matt Riedemann <mriedem@us.ibm.com> | 2015-05-29 11:55:09 -0700 |
|---|---|---|
| committer | Matt Riedemann <mriedem@us.ibm.com> | 2015-05-29 14:32:51 -0700 |
| commit | 224d375ef4120998dc51fbf55f1778d1ccf118a0 (patch) | |
| tree | 0347f83242d39d28c8164c860e4d9c834fff4337 /openstackclient/tests/compute | |
| parent | 211c14c638b9bf393932be42d4f04a4dd12a84bc (diff) | |
| download | python-openstackclient-224d375ef4120998dc51fbf55f1778d1ccf118a0.tar.gz | |
Add --wait to server delete
This allows the server delete command to wait for the server to be
deleted (obviously).
The wait method is the same model that Tempest uses, i.e. wait for a 404
on server GET (successful deletion), fail if the server went to ERROR
status, or fail if a timeout is reached. The default timeout of 300
seconds is also what Tempest uses.
Closes-Bug: #1460112
Change-Id: I0e66c400903e82832944d1cad61e7eb30177c3e8
Diffstat (limited to 'openstackclient/tests/compute')
| -rw-r--r-- | openstackclient/tests/compute/v2/test_server.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py index baf53742..a8a1936d 100644 --- a/openstackclient/tests/compute/v2/test_server.py +++ b/openstackclient/tests/compute/v2/test_server.py @@ -16,6 +16,7 @@ import copy import mock +from openstackclient.common import utils as common_utils from openstackclient.compute.v2 import server from openstackclient.tests.compute.v2 import fakes as compute_fakes from openstackclient.tests import fakes @@ -319,6 +320,52 @@ class TestServerDelete(TestServer): compute_fakes.server_id, ) + @mock.patch.object(common_utils, 'wait_for_delete', return_value=True) + def test_server_delete_wait_ok(self, mock_wait_for_delete): + arglist = [ + compute_fakes.server_id, '--wait' + ] + verifylist = [ + ('servers', [compute_fakes.server_id]), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + self.cmd.take_action(parsed_args) + + self.servers_mock.delete.assert_called_with( + compute_fakes.server_id, + ) + + mock_wait_for_delete.assert_called_once_with( + self.servers_mock, + compute_fakes.server_id, + callback=server._show_progress + ) + + @mock.patch.object(common_utils, 'wait_for_delete', return_value=False) + def test_server_delete_wait_fails(self, mock_wait_for_delete): + arglist = [ + compute_fakes.server_id, '--wait' + ] + verifylist = [ + ('servers', [compute_fakes.server_id]), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + self.assertRaises(SystemExit, self.cmd.take_action, parsed_args) + + self.servers_mock.delete.assert_called_with( + compute_fakes.server_id, + ) + + mock_wait_for_delete.assert_called_once_with( + self.servers_mock, + compute_fakes.server_id, + callback=server._show_progress + ) + class TestServerImageCreate(TestServer): |
