Only create 1 server for server actions tests.
This switches the setUp() and tearDown() methods in
test_server_actions.py to be setUpClass() and tearDownClass().
The server create and delete for each test method were taking
a significant amount of time. This minimizes the time spent for
those operations by only using one server since there wasn't a
need to use separate servers for each test.
Change-Id: I5e7a3831c9f018e871c0fcfcd575e662a143cd9b
diff --git a/tempest/tests/compute/servers/test_server_actions.py b/tempest/tests/compute/servers/test_server_actions.py
index 91f0674..2fe8464 100644
--- a/tempest/tests/compute/servers/test_server_actions.py
+++ b/tempest/tests/compute/servers/test_server_actions.py
@@ -34,18 +34,6 @@
resize_available = tempest.config.TempestConfig().compute.resize_available
run_ssh = tempest.config.TempestConfig().compute.run_ssh
- def setUp(self):
- self.name = rand_name('server')
- resp, server = self.create_server_with_extras(self.name,
- self.image_ref,
- self.flavor_ref)
- self.server_id = server['id']
- self.password = server['adminPass']
- self.client.wait_for_server_status(self.server_id, 'ACTIVE')
-
- def tearDown(self):
- self.clear_servers()
-
@attr(type='smoke')
@unittest.skipUnless(compute.CHANGE_PASSWORD_AVAILABLE,
'Change password not available.')
@@ -207,27 +195,69 @@
class ServerActionsTestXML(base.BaseComputeTestXML,
ServerActionsTestBase):
+ def setUp(self):
+ super(ServerActionsTestXML, self).setUp()
+ # Check if the server is in a clean state after test
+ try:
+ self.client.wait_for_server_status(self.server_id, 'ACTIVE')
+ except exceptions:
+ # Rebuild server if something happened to it during a test
+ self.clear_servers()
+ resp, server = self.create_server_with_extras(self.name,
+ self.image_ref,
+ self.flavor_ref)
+ self.server_id = server['id']
+ self.password = server['adminPass']
+ self.client.wait_for_server_status(self.server_id, 'ACTIVE')
+
@classmethod
def setUpClass(cls):
super(ServerActionsTestXML, cls).setUpClass()
cls.client = cls.servers_client
+ cls.name = rand_name('server')
+ resp, server = cls.create_server_with_extras(cls.name,
+ cls.image_ref,
+ cls.flavor_ref)
+ cls.server_id = server['id']
+ cls.password = server['adminPass']
+ cls.client.wait_for_server_status(cls.server_id, 'ACTIVE')
- def setUp(self):
- ServerActionsTestBase.setUp(self)
-
- def tearDown(self):
- ServerActionsTestBase.tearDown(self)
+ @classmethod
+ def tearDownClass(cls):
+ cls.clear_servers()
+ super(ServerActionsTestXML, cls).tearDownClass()
class ServerActionsTestJSON(base.BaseComputeTestJSON,
ServerActionsTestBase):
+ def setUp(self):
+ super(ServerActionsTestJSON, self).setUp()
+ # Check if the server is in a clean state after test
+ try:
+ self.client.wait_for_server_status(self.server_id, 'ACTIVE')
+ except exceptions:
+ # Rebuild server if something happened to it during a test
+ self.clear_servers()
+ resp, server = self.create_server_with_extras(self.name,
+ self.image_ref,
+ self.flavor_ref)
+ self.server_id = server['id']
+ self.password = server['adminPass']
+ self.client.wait_for_server_status(self.server_id, 'ACTIVE')
+
@classmethod
def setUpClass(cls):
super(ServerActionsTestJSON, cls).setUpClass()
cls.client = cls.servers_client
+ cls.name = rand_name('server')
+ resp, server = cls.create_server_with_extras(cls.name,
+ cls.image_ref,
+ cls.flavor_ref)
+ cls.server_id = server['id']
+ cls.password = server['adminPass']
+ cls.client.wait_for_server_status(cls.server_id, 'ACTIVE')
- def setUp(self):
- ServerActionsTestBase.setUp(self)
-
- def tearDown(self):
- ServerActionsTestBase.tearDown(self)
+ @classmethod
+ def tearDownClass(cls):
+ cls.clear_servers()
+ super(ServerActionsTestJSON, cls).tearDownClass()