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
This commit is contained in:
jeremy.zhang 2017-10-09 14:54:58 +08:00
parent b39e6b25c9
commit 50688db21b
2 changed files with 10 additions and 12 deletions

View File

@ -1324,14 +1324,6 @@ class ObjectStorageScenarioTest(ScenarioTest):
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)

View File

@ -58,12 +58,18 @@ class TestObjectStorageBasicOps(manager.ObjectStorageScenarioTest):
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)