Merge "Moved swift container cleanup to a class method."
This commit is contained in:
commit
2326ec4062
|
@ -47,3 +47,31 @@ class BaseObjectTest(tempest.test.BaseTestCase):
|
|||
except exceptions.EndpointNotFound:
|
||||
skip_msg = "No OpenStack Object Storage API endpoint"
|
||||
raise cls.skipException(skip_msg)
|
||||
|
||||
@classmethod
|
||||
def delete_containers(cls, containers, container_client=None,
|
||||
object_client=None):
|
||||
"""Remove given containers and all objects in them.
|
||||
|
||||
The containers should be visible from the container_client given.
|
||||
Will not throw any error if the containers don't exist.
|
||||
|
||||
:param containers: list of container names to remove
|
||||
:param container_client: if None, use cls.container_client, this means
|
||||
that the default testing user will be used (see 'username' in
|
||||
'etc/tempest.conf')
|
||||
:param object_client: if None, use cls.object_client
|
||||
"""
|
||||
if container_client is None:
|
||||
container_client = cls.container_client
|
||||
if object_client is None:
|
||||
object_client = cls.object_client
|
||||
for cont in containers:
|
||||
try:
|
||||
objlist = container_client.list_all_container_objects(cont)
|
||||
# delete every object in the container
|
||||
for obj in objlist:
|
||||
object_client.delete_object(cont, obj['name'])
|
||||
container_client.delete_container(cont)
|
||||
except exceptions.NotFound:
|
||||
pass
|
||||
|
|
|
@ -29,15 +29,7 @@ class ContainerTest(base.BaseObjectTest):
|
|||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
for container in cls.containers:
|
||||
objlist = \
|
||||
cls.container_client.list_all_container_objects(container)
|
||||
# delete every object in the container
|
||||
for obj in objlist:
|
||||
resp, _ = \
|
||||
cls.object_client.delete_object(container, obj['name'])
|
||||
# delete the container
|
||||
resp, _ = cls.container_client.delete_container(container)
|
||||
cls.delete_containers(cls.containers)
|
||||
|
||||
@attr(type='smoke')
|
||||
def test_create_container(self):
|
||||
|
@ -125,8 +117,3 @@ class ContainerTest(base.BaseObjectTest):
|
|||
self.assertEqual(resp['status'], '204')
|
||||
self.assertNotIn('x-container-meta-name', resp)
|
||||
self.assertNotIn('x-container-meta-description', resp)
|
||||
|
||||
# delete container
|
||||
resp, _ = self.container_client.delete_container(container_name)
|
||||
self.assertEqual(resp['status'], '204')
|
||||
self.containers.remove(container_name)
|
||||
|
|
|
@ -48,14 +48,8 @@ class ContainerSyncTest(base.BaseObjectTest):
|
|||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
for cont_name, client in cls.clients.items():
|
||||
objlist = client[0].list_all_container_objects(cont_name)
|
||||
# delete every object in the container
|
||||
if objlist:
|
||||
for obj in objlist:
|
||||
resp, _ = client[1].delete_object(cont_name, obj['name'])
|
||||
# delete the container
|
||||
resp, _ = client[0].delete_container(cont_name)
|
||||
for client in cls.clients.values():
|
||||
cls.delete_containers(cls.containers, client[0], client[1])
|
||||
|
||||
@testtools.skip('Until Bug #1093743 is resolved.')
|
||||
@attr(type=['positive', 'gate'])
|
||||
|
|
|
@ -40,15 +40,7 @@ class ObjectExpiryTest(base.BaseObjectTest):
|
|||
But delete action for the expired object is raising
|
||||
NotFound exception and also non empty container cannot be deleted.
|
||||
"""
|
||||
objlist = \
|
||||
cls.container_client.list_all_container_objects(cls.container_name)
|
||||
# delete every object in the container
|
||||
if objlist:
|
||||
for obj in objlist:
|
||||
resp, _ = cls.object_client.delete_object(cls.container_name,
|
||||
obj['name'])
|
||||
# delete the container
|
||||
resp, _ = cls.container_client.delete_container(cls.container_name)
|
||||
cls.delete_containers([cls.container_name])
|
||||
|
||||
@testtools.skip('Until Bug #1069849 is resolved.')
|
||||
@attr(type='gate')
|
||||
|
|
|
@ -32,6 +32,7 @@ class ObjectTest(base.BaseObjectTest):
|
|||
super(ObjectTest, cls).setUpClass()
|
||||
cls.container_name = rand_name(name='TestContainer')
|
||||
cls.container_client.create_container(cls.container_name)
|
||||
cls.containers = [cls.container_name]
|
||||
|
||||
cls.data.setup_test_user()
|
||||
resp, body = cls.token_client.auth(cls.data.test_user,
|
||||
|
@ -44,14 +45,7 @@ class ObjectTest(base.BaseObjectTest):
|
|||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
objlist = cls.container_client.list_all_container_objects(
|
||||
cls.container_name)
|
||||
# delete every object in the container
|
||||
for obj in objlist:
|
||||
resp, _ = cls.object_client.delete_object(cls.container_name,
|
||||
obj['name'])
|
||||
# delete the container
|
||||
resp, _ = cls.container_client.delete_container(cls.container_name)
|
||||
cls.delete_containers(cls.containers)
|
||||
# delete the user setup created
|
||||
cls.data.teardown_all()
|
||||
|
||||
|
@ -198,9 +192,11 @@ class ObjectTest(base.BaseObjectTest):
|
|||
# create a container to use as asource container
|
||||
src_container_name = rand_name(name='TestSourceContainer')
|
||||
self.container_client.create_container(src_container_name)
|
||||
self.containers.append(src_container_name)
|
||||
# create a container to use as a destination container
|
||||
dst_container_name = rand_name(name='TestDestinationContainer')
|
||||
self.container_client.create_container(dst_container_name)
|
||||
self.containers.append(dst_container_name)
|
||||
# create object in source container
|
||||
object_name = rand_name(name='Object')
|
||||
data = arbitrary_string(size=len(object_name) * 2,
|
||||
|
@ -233,17 +229,6 @@ class ObjectTest(base.BaseObjectTest):
|
|||
except Exception as e:
|
||||
self.fail("Got exception :%s ; while copying"
|
||||
" object across containers" % e)
|
||||
finally:
|
||||
# delete objects from respective containers
|
||||
resp, _ = self.object_client.delete_object(dst_container_name,
|
||||
object_name)
|
||||
resp, _ = self.object_client.delete_object(src_container_name,
|
||||
object_name)
|
||||
# delete containers created in this method
|
||||
resp, _ = self.container_client.delete_container(
|
||||
src_container_name)
|
||||
resp, _ = self.container_client.delete_container(
|
||||
dst_container_name)
|
||||
|
||||
@attr(type=['negative', 'gate'])
|
||||
def test_write_object_without_using_creds(self):
|
||||
|
@ -389,14 +374,7 @@ class PublicObjectTest(base.BaseObjectTest):
|
|||
self.container_client.create_container(self.container_name)
|
||||
|
||||
def tearDown(self):
|
||||
objlist = self.container_client.list_all_container_objects(
|
||||
self.container_name)
|
||||
# delete every object in the container
|
||||
for obj in objlist:
|
||||
resp, _ = self.object_client.delete_object(
|
||||
self.container_name, obj['name'])
|
||||
# delete the container
|
||||
resp, _ = self.container_client.delete_container(self.container_name)
|
||||
self.delete_containers([self.container_name])
|
||||
super(PublicObjectTest, self).tearDown()
|
||||
|
||||
@attr(type='smoke')
|
||||
|
|
|
@ -28,15 +28,7 @@ class ContainerTest(base.BaseObjectTest):
|
|||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
for container in cls.containers:
|
||||
objlist = \
|
||||
cls.container_client.list_all_container_objects(container)
|
||||
# delete every object in the container
|
||||
for obj in objlist:
|
||||
resp, _ = \
|
||||
cls.object_client.delete_object(container, obj['name'])
|
||||
# delete the container
|
||||
resp, _ = cls.container_client.delete_container(container)
|
||||
cls.delete_containers(cls.containers)
|
||||
|
||||
def assertContainer(self, container, count, byte, versioned):
|
||||
resp, _ = self.container_client.list_container_metadata(container)
|
||||
|
@ -94,10 +86,3 @@ class ContainerTest(base.BaseObjectTest):
|
|||
vers_container_name)
|
||||
self.assertContainer(vers_container_name, '0', '0',
|
||||
'Missing Header')
|
||||
# delete containers
|
||||
resp, _ = self.container_client.delete_container(base_container_name)
|
||||
self.assertEqual(resp['status'], '204')
|
||||
self.containers.remove(base_container_name)
|
||||
resp, _ = self.container_client.delete_container(vers_container_name)
|
||||
self.assertEqual(resp['status'], '204')
|
||||
self.containers.remove(vers_container_name)
|
||||
|
|
Loading…
Reference in New Issue