From 547a306af133f1ca9588bfba026081cca26f93b4 Mon Sep 17 00:00:00 2001 From: Ken'ichi Ohmichi Date: Mon, 2 Dec 2013 09:30:36 +0900 Subject: [PATCH] Change unstable test which gets console output We don't necessarily get "REBOOT" status of a server because the state is ephemeral. As the result, the test fails sometimes. This patch changes the server status from "REBOOT" to "SHUTOFF" for stable test condition. Closes-Bug: #1014683 Change-Id: I4b06b148b5d9bceda0cef2d2bb5f3b72325928ac --- .../compute/servers/test_server_actions.py | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/tempest/api/compute/servers/test_server_actions.py b/tempest/api/compute/servers/test_server_actions.py index 5fa4c35cf2..af498d77c3 100644 --- a/tempest/api/compute/servers/test_server_actions.py +++ b/tempest/api/compute/servers/test_server_actions.py @@ -266,6 +266,14 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest): self.assertEqual((backup2, backup3), (image_list[0]['name'], image_list[1]['name'])) + def _get_output(self): + resp, output = self.servers_client.get_console_output( + self.server_id, 10) + self.assertEqual(200, resp.status) + self.assertTrue(output, "Console output was empty.") + lines = len(output.split('\n')) + self.assertEqual(lines, 10) + @attr(type='gate') def test_get_console_output(self): # Positive test:Should be able to GET the console output @@ -280,29 +288,24 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest): self.assertEqual(202, resp.status) self.servers_client.wait_for_server_status(self.server_id, 'ACTIVE') - def get_output(): - resp, output = self.servers_client.get_console_output( - self.server_id, 10) - self.assertEqual(200, resp.status) - self.assertTrue(output, "Console output was empty.") - lines = len(output.split('\n')) - self.assertEqual(lines, 10) - self.wait_for(get_output) + self.wait_for(self._get_output) - @skip_because(bug="1014683") @attr(type='gate') - def test_get_console_output_server_id_in_reboot_status(self): + def test_get_console_output_server_id_in_shutoff_status(self): # Positive test:Should be able to GET the console output - # for a given server_id in reboot status - resp, output = self.servers_client.reboot(self.server_id, 'SOFT') - self.servers_client.wait_for_server_status(self.server_id, - 'REBOOT') - resp, output = self.servers_client.get_console_output(self.server_id, - 10) - self.assertEqual(200, resp.status) - self.assertIsNotNone(output) - lines = len(output.split('\n')) - self.assertEqual(lines, 10) + # for a given server_id in SHUTOFF status + + # NOTE: SHUTOFF is irregular status. To avoid test instability, + # one server is created only for this test without using + # the server that was created in setupClass. + resp, server = self.create_test_server(wait_until='ACTIVE') + temp_server_id = server['id'] + + resp, server = self.servers_client.stop(temp_server_id) + self.assertEqual(202, resp.status) + self.servers_client.wait_for_server_status(temp_server_id, 'SHUTOFF') + + self.wait_for(self._get_output) @attr(type='gate') def test_pause_unpause_server(self):