Merge "Improve cleanup after Swift testing"
diff --git a/releasenotes/notes/swift-improve-cleanup-63cfc21ffb3aff6f.yaml b/releasenotes/notes/swift-improve-cleanup-63cfc21ffb3aff6f.yaml
new file mode 100644
index 0000000..9e48510
--- /dev/null
+++ b/releasenotes/notes/swift-improve-cleanup-63cfc21ffb3aff6f.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Improve cleanup after Swift testing. Ensures containers are empty before
+ deleting to prevent errors due to delayed execution.
diff --git a/tempest/api/object_storage/base.py b/tempest/api/object_storage/base.py
index 77e26ef..8d8039b 100644
--- a/tempest/api/object_storage/base.py
+++ b/tempest/api/object_storage/base.py
@@ -29,11 +29,6 @@
The containers should be visible from the container_client given.
Will not throw any error if the containers don't exist.
- Will not check that object and container deletions succeed.
- After delete all the objects from a container, it will wait 2
- seconds before delete the container itself, in order to deployments
- using HA proxy sync the deletion properly, otherwise, the container
- might fail to be deleted because it's not empty.
:param containers: List of containers(or string of a container)
to be deleted
diff --git a/tempest/api/object_storage/test_container_services_negative.py b/tempest/api/object_storage/test_container_services_negative.py
index 31c33db..51c711f 100644
--- a/tempest/api/object_storage/test_container_services_negative.py
+++ b/tempest/api/object_storage/test_container_services_negative.py
@@ -36,6 +36,11 @@
body = cls.capabilities_client.list_capabilities()
cls.constraints = body['swift']
+ @classmethod
+ def resource_cleanup(cls):
+ cls.delete_containers()
+ super(ContainerNegativeTest, cls).resource_cleanup()
+
@decorators.attr(type=["negative"])
@decorators.idempotent_id('30686921-4bed-4764-a038-40d741ed4e78')
@testtools.skipUnless(
@@ -167,11 +172,7 @@
# create a container and an object within it
# attempt to delete a container that isn't empty.
container_name = self.create_container()
- self.addCleanup(self.container_client.delete_container,
- container_name)
object_name, _ = self.create_object(container_name)
- self.addCleanup(self.object_client.delete_object,
- container_name, object_name)
ex = self.assertRaises(exceptions.Conflict,
self.container_client.delete_container,
diff --git a/tempest/api/object_storage/test_object_slo.py b/tempest/api/object_storage/test_object_slo.py
index 0c84357..22d12ce 100644
--- a/tempest/api/object_storage/test_object_slo.py
+++ b/tempest/api/object_storage/test_object_slo.py
@@ -18,7 +18,6 @@
from tempest.api.object_storage import base
from tempest.common import utils
from tempest.lib.common.utils import data_utils
-from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
# Each segment, except for the final one, must be at least 1 megabyte
@@ -34,11 +33,7 @@
self.objects = []
def tearDown(self):
- for obj in self.objects:
- test_utils.call_and_ignore_notfound_exc(
- self.object_client.delete_object,
- self.container_name, obj)
- self.container_client.delete_container(self.container_name)
+ self.delete_containers()
super(ObjectSloTest, self).tearDown()
def _create_object(self, container_name, object_name, data, params=None):