Comment 3 for bug 1308413

Revision history for this message
Erno Kuvaja (jokke) wrote : Re: TENANT2 can list the image belonging to TENANT1 while using v2 api with registry

> /home/ubuntu/glance/glance/tests/functional/v2/test_images.py(463)test_permissions()
-> self.assertEqual(201, response.status_code)
(Pdb) p headers
{'X-Tenant-Id': '31e5f2ec-f365-400f-bff1-b2b8702b24ff', 'X-User-Id': 'f9a41d13-0c13-47e9-bee2-ce4e8bfe958e', 'X-Auth-Token': '932c5c84-02ac-4fe5-a9ba-620af0e2bb96', 'X-Identity-Status': 'Confirmed', 'Content-Type': 'application/json', 'X-Roles': 'member'}
(Pdb) p response, response.text
(<Response [201]>, u'{"status": "queued", "name": "image-1", "tags": [], "container_format": "bare", "created_at": "2014-04-16T13:18:18Z", "disk_format": "raw", "updated_at": "2014-04-16T13:18:18Z", "visibility": "private", "self": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c", "min_disk": 0, "protected": false, "id": "463d8efb-b110-4f58-a270-79b733daec8c", "file": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c/file", "owner": "31e5f2ec-f365-400f-bff1-b2b8702b24ff", "min_ram": 0, "schema": "/v2/schemas/image"}')
(Pdb) cont
> /home/ubuntu/glance/glance/tests/functional/v2/test_images.py(471)test_permissions()
-> self.assertEqual(204, response.status_code)
(Pdb) p headers
{'X-Tenant-Id': '31e5f2ec-f365-400f-bff1-b2b8702b24ff', 'X-User-Id': 'f9a41d13-0c13-47e9-bee2-ce4e8bfe958e', 'X-Auth-Token': '932c5c84-02ac-4fe5-a9ba-620af0e2bb96', 'X-Identity-Status': 'Confirmed', 'Content-Type': 'application/octet-stream', 'X-Roles': 'member'}
(Pdb) p response, response.text
(<Response [204]>, u'')
(Pdb) cont
> /home/ubuntu/glance/glance/tests/functional/v2/test_images.py(479)test_permissions()
-> self.assertEqual(image_id, images[0]['id'])
(Pdb) p headers
{'X-Tenant-Id': '31e5f2ec-f365-400f-bff1-b2b8702b24ff', 'X-User-Id': 'f9a41d13-0c13-47e9-bee2-ce4e8bfe958e', 'X-Auth-Token': '932c5c84-02ac-4fe5-a9ba-620af0e2bb96', 'X-Identity-Status': 'Confirmed', 'Content-Type': 'application/octet-stream', 'X-Roles': 'member'}
(Pdb) p response, response.text
(<Response [200]>, u'{"images": [{"status": "active", "name": "image-1", "tags": [], "container_format": "bare", "created_at": "2014-04-16T13:18:18Z", "disk_format": "raw", "updated_at": "2014-04-16T13:18:44Z", "visibility": "private", "self": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c", "min_disk": 0, "protected": false, "id": "463d8efb-b110-4f58-a270-79b733daec8c", "file": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c/file", "checksum": "8f113e38d28a79a5a451b16048cc2b72", "owner": "31e5f2ec-f365-400f-bff1-b2b8702b24ff", "size": 5, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}')
(Pdb) cont
> /home/ubuntu/glance/glance/tests/functional/v2/test_images.py(485)test_permissions()
-> self.assertEqual(200, response.status_code)
(Pdb) p headers
{'X-Tenant-Id': '31e5f2ec-f365-400f-bff1-b2b8702b24ff', 'X-User-Id': 'f9a41d13-0c13-47e9-bee2-ce4e8bfe958e', 'X-Auth-Token': '932c5c84-02ac-4fe5-a9ba-620af0e2bb96', 'X-Identity-Status': 'Confirmed', 'Content-Type': 'application/octet-stream', 'X-Roles': 'member'}
(Pdb) p response, response.text
(<Response [200]>, u'{"status": "active", "name": "image-1", "tags": [], "container_format": "bare", "created_at": "2014-04-16T13:18:18Z", "disk_format": "raw", "updated_at": "2014-04-16T13:18:44Z", "visibility": "private", "self": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c", "min_disk": 0, "protected": false, "id": "463d8efb-b110-4f58-a270-79b733daec8c", "file": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c/file", "checksum": "8f113e38d28a79a5a451b16048cc2b72", "owner": "31e5f2ec-f365-400f-bff1-b2b8702b24ff", "size": 5, "min_ram": 0, "schema": "/v2/schemas/image"}')
(Pdb) cont
> /home/ubuntu/glance/glance/tests/functional/v2/test_images.py(494)test_permissions()
-> self.assertEqual(0, len(images))
(Pdb) p headers
{'X-Tenant-Id': '0eb37d47-e393-4583-a036-8e14ca56f378', 'X-User-Id': 'f9a41d13-0c13-47e9-bee2-ce4e8bfe958e', 'X-Auth-Token': '932c5c84-02ac-4fe5-a9ba-620af0e2bb96', 'X-Identity-Status': 'Confirmed', 'X-Roles': 'member'}
(Pdb) p response, response.text
(<Response [200]>, u'{"images": [{"status": "active", "name": "image-1", "tags": [], "container_format": "bare", "created_at": "2014-04-16T13:18:18Z", "disk_format": "raw", "updated_at": "2014-04-16T13:18:44Z", "visibility": "private", "self": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c", "min_disk": 0, "protected": false, "id": "463d8efb-b110-4f58-a270-79b733daec8c", "file": "/v2/images/463d8efb-b110-4f58-a270-79b733daec8c/file", "checksum": "8f113e38d28a79a5a451b16048cc2b72", "owner": "31e5f2ec-f365-400f-bff1-b2b8702b24ff", "size": 5, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}')
(Pdb) cont
======================================================================
FAIL: glance.tests.functional.v2.test_images.TestImages.test_permissions
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ubuntu/glance/glance/tests/functional/v2/test_images.py", line 494, in test_permissions
    self.assertEqual(0, len(images))
  File "/usr/local/lib/python2.7/dist-packages/testtools/testcase.py", line 321, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/usr/local/lib/python2.7/dist-packages/testtools/testcase.py", line 406, in assertThat
    raise mismatch_error
MismatchError: 0 != 1

Ran 1 test in 63.899s
FAILED (failures=1)

Reproduced on devstack:

ubuntu@devstack-02:~/glance$ export GT1ID="5d71050f22c64ae2bf459161a92eed0d"
ubuntu@devstack-02:~/glance$ export GT2ID="9744a2900c5b466390aa206464da7857"

ubuntu@devstack-02:~/glance$ curl -H "X-Auth-Token: $GTOKEN" -H "X-Tenant-Id: $GT1ID" http://localhost:9292/v2/images

{"images": [{"status": "queued", "name": "testImage2", "tags": [], "container_format": "ami", "created_at": "2014-04-16T11:03:39Z", "disk_format": "ami", "updated_at": "2014-04-16T11:03:39Z", "visibility": "private", "self": "/v2/images/3684d123-e089-4362-90b8-53c00f16d9a7", "min_disk": 0, "protected": false, "id": "3684d123-e089-4362-90b8-53c00f16d9a7", "file": "/v2/images/3684d123-e089-4362-90b8-53c00f16d9a7/file", "owner": "5d71050f22c64ae2bf459161a92eed0d", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "name": "testImage1", "tags": [], "container_format": "ami", "created_at": "2014-04-16T10:59:44Z", "disk_format": "ami", "updated_at": "2014-04-16T10:59:47Z", "visibility": "private", "self": "/v2/images/82e6551d-7ae9-40ad-a5ff-cef8a428c035", "min_disk": 0, "protected": false, "id": "82e6551d-7ae9-40ad-a5ff-cef8a428c035", "file": "/v2/images/82e6551d-7ae9-40ad-a5ff-cef8a428c035/file", "checksum": "f8a2eeee2dc65b3d9b6e63678955bd83", "owner": "5d71050f22c64ae2bf459161a92eed0d", "size": 25165824, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}

ubuntu@devstack-02:~/glance$ curl -H "X-Auth-Token: $GTOKEN" -H "X-Tenant-Id: $GT2ID" http://localhost:9292/v2/images

{"images": [{"status": "queued", "name": "testImage2", "tags": [], "container_format": "ami", "created_at": "2014-04-16T11:03:39Z", "disk_format": "ami", "updated_at": "2014-04-16T11:03:39Z", "visibility": "private", "self": "/v2/images/3684d123-e089-4362-90b8-53c00f16d9a7", "min_disk": 0, "protected": false, "id": "3684d123-e089-4362-90b8-53c00f16d9a7", "file": "/v2/images/3684d123-e089-4362-90b8-53c00f16d9a7/file", "owner": "5d71050f22c64ae2bf459161a92eed0d", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "name": "testImage1", "tags": [], "container_format": "ami", "created_at": "2014-04-16T10:59:44Z", "disk_format": "ami", "updated_at": "2014-04-16T10:59:47Z", "visibility": "private", "self": "/v2/images/82e6551d-7ae9-40ad-a5ff-cef8a428c035", "min_disk": 0, "protected": false, "id": "82e6551d-7ae9-40ad-a5ff-cef8a428c035", "file": "/v2/images/82e6551d-7ae9-40ad-a5ff-cef8a428c035/file", "checksum": "f8a2eeee2dc65b3d9b6e63678955bd83", "owner": "5d71050f22c64ae2bf459161a92eed0d", "size": 25165824, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}