)]}'
{"glance/api/v2/images.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6118bb73e6df22678e3a9e86a8a3bbfffd3b9457","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    _reserved_properties \u003d (\u0027location\u0027, \u0027deleted\u0027, \u0027deleted_at\u0027)"},{"line_number":330,"context_line":"    _base_properties \u003d (\u0027checksum\u0027, \u0027created_at\u0027, \u0027container_format\u0027,"},{"line_number":331,"context_line":"                        \u0027disk_format\u0027, \u0027id\u0027, \u0027min_disk\u0027, \u0027min_ram\u0027, \u0027name\u0027,"},{"line_number":332,"context_line":"                        \u0027size\u0027, \u0027virtual_size\u0027, \u0027status\u0027, \u0027tags\u0027, \u0027owner\u0027,"},{"line_number":333,"context_line":"                        \u0027updated_at\u0027, \u0027visibility\u0027, \u0027protected\u0027)"},{"line_number":334,"context_line":"    _available_sort_keys \u003d (\u0027name\u0027, \u0027status\u0027, \u0027container_format\u0027,"},{"line_number":335,"context_line":"                            \u0027disk_format\u0027, \u0027size\u0027, \u0027id\u0027, \u0027created_at\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_683584f5","line":332,"updated":"2015-10-06 22:23:02.000000000","message":"you\u0027re right, owner is part of base properties\n\nhttps://github.com/openstack/glance/blob/master/glance/api/v2/images.py#L843","commit_id":"c201b049e3a9692d7a857c3fc7b55a232bc9821f"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"0150a7122b64cbd30f8e66c6acf9c286e9bdf838","unresolved":false,"context_lines":[{"line_number":721,"context_line":"        output \u003d self.controller.create(request, image\u003dimage,"},{"line_number":722,"context_line":"                                        extra_properties\u003d{}, tags\u003d[])"},{"line_number":723,"context_line":"        self.assertEqual(\u002712345\u0027, output.owner)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"    def test_create_with_duplicate_location(self):"},{"line_number":726,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":727,"context_line":"        location \u003d {\u0027url\u0027: \u0027%s/fake_location\u0027 % BASE_URI, \u0027metadata\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_bac67647","line":724,"updated":"2015-09-28 04:15:58.000000000","message":"Here need another function to test with \u0027owner\u0027 when context.owner equal to \u0027owner\u0027. \n\nexample:\nrequest.context.owner \u003d \u002712345\u0027 and image\u003d{\u0027owner\u0027: \u002712345\u0027}","commit_id":"c247bcb924aa82b599af6370b422474a910e4666"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"bbadabe4f08a702a7d0edda0e62bda27ec409c49","unresolved":false,"context_lines":[{"line_number":722,"context_line":"                                        extra_properties\u003d{}, tags\u003d[])"},{"line_number":723,"context_line":"        self.assertEqual(\u002712345\u0027, output.owner)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"    def test_create_with_owner_admin_context(self):"},{"line_number":726,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":727,"context_line":"        request.context.is_admin \u003d True"},{"line_number":728,"context_line":"        request.context.owner \u003d \u002712345\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_9521f8a1","line":725,"updated":"2015-09-28 11:40:07.000000000","message":"According to :https://github.com/openstack/glance/blob/master/glance/api/authorization.py#L182\n\nhere should be like:\n\n\n    request \u003d unit_test_utils.get_fake_request()\n    request.context.is_admin \u003d False\n    image \u003d {\u0027owner\u0027: TENANT1}\n    output \u003d self.controller.create(request, image\u003dimage,\n                                extra_properties\u003d{}, tags\u003d[])\n    self.assertEqual(TENANT1, output.owner)\n\nand could be combined with test_create_with_owner_non_admin","commit_id":"a30307ae171a0a32d9cbcf54d44e4a4bcf15cf82"}]}
