Compute servers via addClassResourceCleanup
Cleanup servers in compute tests via addClassResourceCleanup. Change-Id: I9350c5f1db5d757c44c25b139f5586bf01613dd5
This commit is contained in:
committed by
Andrea Frittoli (andreaf)
parent
991d62df79
commit
0d0a3f3045
@@ -61,7 +61,7 @@ class ServersAdminNegativeTestJSON(base.BaseV2ComputeAdminTest):
|
||||
flavor_ref = self.create_flavor(ram=ram, vcpus=vcpus, disk=disk)
|
||||
self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit),
|
||||
self.client.resize_server,
|
||||
self.servers[0]['id'],
|
||||
self.s1_id,
|
||||
flavor_ref['id'])
|
||||
|
||||
@decorators.idempotent_id('7368a427-2f26-4ad9-9ba9-911a0ec2b0db')
|
||||
@@ -83,7 +83,7 @@ class ServersAdminNegativeTestJSON(base.BaseV2ComputeAdminTest):
|
||||
flavor_ref = self.create_flavor(ram=ram, vcpus=vcpus, disk=disk)
|
||||
self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit),
|
||||
self.client.resize_server,
|
||||
self.servers[0]['id'],
|
||||
self.s1_id,
|
||||
flavor_ref['id'])
|
||||
|
||||
@decorators.attr(type=['negative'])
|
||||
|
||||
@@ -116,14 +116,12 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
|
||||
cls.ssh_user = CONF.validation.image_ssh_user
|
||||
cls.image_ssh_user = CONF.validation.image_ssh_user
|
||||
cls.image_ssh_password = CONF.validation.image_ssh_password
|
||||
cls.servers = []
|
||||
cls.security_groups = []
|
||||
cls.server_groups = []
|
||||
cls.volumes = []
|
||||
|
||||
@classmethod
|
||||
def resource_cleanup(cls):
|
||||
cls.clear_servers()
|
||||
cls.clear_resources('security groups', cls.security_groups,
|
||||
cls.security_groups_client.delete_security_group)
|
||||
cls.clear_resources('server groups', cls.server_groups,
|
||||
@@ -131,25 +129,6 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
|
||||
cls.clear_volumes()
|
||||
super(BaseV2ComputeTest, cls).resource_cleanup()
|
||||
|
||||
@classmethod
|
||||
def clear_servers(cls):
|
||||
LOG.debug('Clearing servers: %s', ','.join(
|
||||
server['id'] for server in cls.servers))
|
||||
for server in cls.servers:
|
||||
try:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.servers_client.delete_server, server['id'])
|
||||
except Exception:
|
||||
LOG.exception('Deleting server %s failed', server['id'])
|
||||
|
||||
for server in cls.servers:
|
||||
try:
|
||||
waiters.wait_for_server_termination(cls.servers_client,
|
||||
server['id'])
|
||||
except Exception:
|
||||
LOG.exception('Waiting for deletion of server %s failed',
|
||||
server['id'])
|
||||
|
||||
@classmethod
|
||||
def server_check_teardown(cls):
|
||||
"""Checks is the shared server clean enough for subsequent test.
|
||||
@@ -222,7 +201,15 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
|
||||
volume_backed=volume_backed,
|
||||
**kwargs)
|
||||
|
||||
cls.servers.extend(servers)
|
||||
# For each server schedule wait and delete, so we first delete all
|
||||
# and then wait for all
|
||||
for server in servers:
|
||||
cls.addClassResourceCleanup(waiters.wait_for_server_termination,
|
||||
cls.servers_client, server['id'])
|
||||
for server in servers:
|
||||
cls.addClassResourceCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
cls.servers_client.delete_server, server['id'])
|
||||
|
||||
return body
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ from tempest.api.compute import base
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib.common.utils import test_utils
|
||||
from tempest.lib import decorators
|
||||
|
||||
CONF = config.CONF
|
||||
@@ -31,10 +32,6 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
super(ServersTestJSON, cls).setup_clients()
|
||||
cls.client = cls.servers_client
|
||||
|
||||
def tearDown(self):
|
||||
self.clear_servers()
|
||||
super(ServersTestJSON, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('b92d5ec7-b1dd-44a2-87e4-45e888c46ef0')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||
enable_instance_password,
|
||||
@@ -43,6 +40,11 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
# If an admin password is provided on server creation, the server's
|
||||
# root password should be set to that password.
|
||||
server = self.create_test_server(adminPass='testpassword')
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, server['id'])
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, server['id'])
|
||||
|
||||
# Verify the password is set correctly in the response
|
||||
self.assertEqual('testpassword', server['adminPass'])
|
||||
@@ -57,9 +59,19 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
server = self.create_test_server(name=server_name,
|
||||
wait_until='ACTIVE')
|
||||
id1 = server['id']
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, id1)
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, id1)
|
||||
server = self.create_test_server(name=server_name,
|
||||
wait_until='ACTIVE')
|
||||
id2 = server['id']
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, id2)
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, id2)
|
||||
self.assertNotEqual(id1, id2, "Did not create a new server")
|
||||
server = self.client.show_server(id1)['server']
|
||||
name1 = server['name']
|
||||
@@ -76,6 +88,11 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
self.addCleanup(self.keypairs_client.delete_keypair, key_name)
|
||||
self.keypairs_client.list_keypairs()
|
||||
server = self.create_test_server(key_name=key_name)
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, server['id'])
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, server['id'])
|
||||
waiters.wait_for_server_status(self.client, server['id'], 'ACTIVE')
|
||||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual(key_name, server['key_name'])
|
||||
@@ -98,6 +115,11 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
def test_update_server_name(self):
|
||||
# The server name should be changed to the provided value
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, server['id'])
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, server['id'])
|
||||
# Update instance name with non-ASCII characters
|
||||
prefix_name = u'\u00CD\u00F1st\u00E1\u00F1c\u00E9'
|
||||
self._update_server_name(server['id'], 'ACTIVE', prefix_name)
|
||||
@@ -115,6 +137,11 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
def test_update_access_server_address(self):
|
||||
# The server's access addresses should reflect the provided values
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, server['id'])
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, server['id'])
|
||||
|
||||
# Update the IPv4 and IPv6 access addresses
|
||||
self.client.update_server(server['id'],
|
||||
@@ -131,6 +158,11 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
||||
def test_create_server_with_ipv6_addr_only(self):
|
||||
# Create a server without an IPv4 address(only IPv6 address).
|
||||
server = self.create_test_server(accessIPv6='2001:2001::3')
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client, server['id'])
|
||||
self.addCleanup(
|
||||
test_utils.call_and_ignore_notfound_exc,
|
||||
self.servers_client.delete_server, server['id'])
|
||||
waiters.wait_for_server_status(self.client, server['id'], 'ACTIVE')
|
||||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual('2001:2001::3', server['accessIPv6'])
|
||||
|
||||
Reference in New Issue
Block a user