Fix senario test: test_swift_acl_anonymous_download
In Zuul and Jenkins gate jobs like [1][2], the senario test:
test_swift_acl_anonymous_download is always failed, which is in
file test_object_storage_basic_ops.py. The reason is that the function
'change_container_acl' in tempest.senario.manager.ObjectStorageSenarioTest
is implemented incorrectly. This patch fixes the problem.
[1] legacy-tempest-dsvm-neutron-scenario-multinode-lvm-multibackend
[2] gate-tempest-dsvm-neutron-scenario-multinode-lvm-multibackend-ubuntu-xenial-nv
Closes-bug: #1722164
Change-Id: I4b3b6f4d7c5fd5e1e968b0144ecc2a7b3eae206b
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index c70ab49..f866fac 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -1324,14 +1324,6 @@
for obj in not_present_obj:
self.assertNotIn(obj, object_list)
- def change_container_acl(self, container_name, acl):
- metadata_param = {'metadata_prefix': 'x-container-',
- 'metadata': {'read': acl}}
- self.container_client.create_update_or_delete_container_metadata(
- container_name, create_update_metadata=metadata_param)
- resp, _ = self.container_client.list_container_metadata(container_name)
- self.assertEqual(resp['x-container-read'], acl)
-
def download_and_verify(self, container_name, obj_name, expected_data):
_, obj = self.object_client.get_object(container_name, obj_name)
self.assertEqual(obj, expected_data)
diff --git a/tempest/scenario/test_object_storage_basic_ops.py b/tempest/scenario/test_object_storage_basic_ops.py
index da0b1e8..cbe321e 100644
--- a/tempest/scenario/test_object_storage_basic_ops.py
+++ b/tempest/scenario/test_object_storage_basic_ops.py
@@ -58,12 +58,18 @@
5. Delete the object and container
"""
container_name = self.create_container()
- obj_name, _ = self.upload_object_to_container(container_name)
+ obj_name, obj_data = self.upload_object_to_container(container_name)
obj_url = '%s/%s/%s' % (self.object_client.base_url,
container_name, obj_name)
resp, _ = self.object_client.raw_request(obj_url, 'GET')
self.assertEqual(resp.status, 401)
-
- self.change_container_acl(container_name, '.r:*')
- resp, _ = self.object_client.raw_request(obj_url, 'GET')
+ metadata_param = {'X-Container-Read': '.r:*'}
+ self.container_client.create_update_or_delete_container_metadata(
+ container_name, create_update_metadata=metadata_param,
+ create_update_metadata_prefix='')
+ resp, _ = self.container_client.list_container_metadata(container_name)
+ self.assertEqual(metadata_param['X-Container-Read'],
+ resp['x-container-read'])
+ resp, data = self.object_client.raw_request(obj_url, 'GET')
self.assertEqual(resp.status, 200)
+ self.assertEqual(obj_data, data)