)]}'
{"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2560091554f7f127ec769dad95914af83223521a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        file_content \u003d \u0027*\u0027 * 1024"},{"line_number":111,"context_line":"        image_file \u003d StringIO.StringIO(file_content)"},{"line_number":112,"context_line":"        resp, body \u003d self.client.store_image(image_id, image_file)"},{"line_number":113,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # Update Image"},{"line_number":116,"context_line":"        new_image_name \u003d data_utils.rand_name(\u0027new-image\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Fq8%3D","line":113,"updated":"2014-01-31 08:07:39.000000000","message":"nit: assertEqual(\u003cexpected\u003e, \u003cgotten value\u003e)\n\n self.assertEqual(204, resp.status)","commit_id":"391593e1097b6e3e9cf155fbe5511c8d1c5e6061"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2560091554f7f127ec769dad95914af83223521a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # Update Image"},{"line_number":116,"context_line":"        new_image_name \u003d data_utils.rand_name(\u0027new-image\u0027)"},{"line_number":117,"context_line":"        new_visibility \u003d \u0027private\u0027"},{"line_number":118,"context_line":"        self.client.update_image(image_id, new_image_name, new_visibility)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # Verifying updating"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2FrQ%3D","line":118,"updated":"2014-01-31 08:07:39.000000000","message":"Why don\u0027t you check resp.status here?\nThis test purpose seems update_image, so better to add the checks.","commit_id":"391593e1097b6e3e9cf155fbe5511c8d1c5e6061"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        image_id \u003d self.created_images[1]"},{"line_number":210,"context_line":"        # Get image metadata"},{"line_number":211,"context_line":"        resp, image \u003d self.client.get_image(image_id)"},{"line_number":212,"context_line":"        self.assertEqual(200, resp.status, )"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        params \u003d {\"size\": image[\u0027size\u0027]}"},{"line_number":215,"context_line":"        self._list_by_param_value_and_assert(params)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk%2BE%3D","line":212,"updated":"2014-02-20 12:18:51.000000000","message":"the last \", \" seems unnecessary, and please do not change the above in this patch. The above change is the kind of cleanup. That seems out of scope of this patch. and the other guy is doing this kind of cleanup. That makes reviewing difficult.\n\nThere are unnecessary changes in test_images_member.py also.","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        image_id \u003d self.created_images[1]"},{"line_number":221,"context_line":"        # Get image metadata"},{"line_number":222,"context_line":"        resp, image \u003d self.client.get_image(image_id)"},{"line_number":223,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        size \u003d image[\u0027size\u0027]"},{"line_number":226,"context_line":"        params \u003d {\"size_min\": size - 500, \"size_max\": size + 500}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk9Q%3D","line":223,"updated":"2014-02-20 12:18:51.000000000","message":"ditto","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        size \u003d image[\u0027size\u0027]"},{"line_number":226,"context_line":"        params \u003d {\"size_min\": size - 500, \"size_max\": size + 500}"},{"line_number":227,"context_line":"        resp, images_list \u003d self.client.image_list(params\u003dparams)"},{"line_number":228,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":229,"context_line":"        image_size_list \u003d map(lambda x: x[\u0027size\u0027], images_list)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        for image_size in image_size_list:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk9M%3D","line":228,"updated":"2014-02-20 12:18:51.000000000","message":"ditto","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        for image_size in image_size_list:"},{"line_number":232,"context_line":"            self.assertTrue("},{"line_number":233,"context_line":"                params[\u0027size_min\u0027] \u003c\u003d image_size \u003c\u003d params[\u0027size_max\u0027],"},{"line_number":234,"context_line":"                \"Failed to get images by size_min and size_max\")"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":237,"context_line":"    def test_list_images_param_status(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk9E%3D","line":234,"updated":"2014-02-20 12:18:51.000000000","message":"ditto","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        # Test to get images by limit"},{"line_number":245,"context_line":"        params \u003d {\"limit\": 2}"},{"line_number":246,"context_line":"        resp, images_list \u003d self.client.image_list(params\u003dparams)"},{"line_number":247,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        self.assertEqual(len(images_list), params[\u0027limit\u0027],"},{"line_number":250,"context_line":"                         \"Failed to get images by limit\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk88%3D","line":247,"updated":"2014-02-20 12:18:51.000000000","message":"ditto","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"}],"tempest/api/image/v2/test_images_member.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2560091554f7f127ec769dad95914af83223521a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                                     self.alt_tenant_id)"},{"line_number":68,"context_line":"        self.assertEqual(member[\u0027member_id\u0027], self.alt_tenant_id)"},{"line_number":69,"context_line":"        self.assertEqual(member[\u0027image_id\u0027], image_id)"},{"line_number":70,"context_line":"        self.assertEqual(member[\u0027status\u0027], \u0027accepted\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":73,"context_line":"    def test_remove_image_member(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Fqk%3D","line":70,"updated":"2014-01-31 08:07:39.000000000","message":"How about moving line66-70 into test_image_share_accept()?\n\nMost code seems the same.","commit_id":"391593e1097b6e3e9cf155fbe5511c8d1c5e6061"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2560091554f7f127ec769dad95914af83223521a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                 self.alt_tenant_id,"},{"line_number":79,"context_line":"                                                 \u0027accepted\u0027)"},{"line_number":80,"context_line":"        self.assertIn(image_id, self._list_image_ids_as_alt())"},{"line_number":81,"context_line":"        self.os_img_client.remove_member(image_id, self.alt_tenant_id)"},{"line_number":82,"context_line":"        self.assertNotIn(image_id, self._list_image_ids_as_alt())"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Fpw%3D","line":81,"updated":"2014-01-31 08:07:39.000000000","message":"Why don\u0027t you check resp.status here?","commit_id":"391593e1097b6e3e9cf155fbe5511c8d1c5e6061"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"05a6270098999862341ea309e1265e09ba497a85","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"},{"line_number":24,"context_line":"                                                     self.alt_tenant_id)"},{"line_number":25,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":26,"context_line":"        self.assertEqual(self.alt_tenant_id, member[\u0027member_id\u0027])"},{"line_number":27,"context_line":"        self.assertEqual(image_id, member[\u0027image_id\u0027])"},{"line_number":28,"context_line":"        self.assertEqual(\u0027pending\u0027, member[\u0027status\u0027])"},{"line_number":29,"context_line":"        self.assertNotIn(image_id, self._list_image_ids_as_alt())"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAU3%2F%2Fs4E%3D","line":26,"updated":"2014-02-25 07:21:47.000000000","message":"Please do not merge the above kind of change in this patch. That makes reviewing difficult.\nI think this patch would add self.assertEqual(200, resp.status), the test block of self.os_img_client.get_member(), test_get_image_member() and test_remove_image_member() only.\n\nCurrent change is not understandable.","commit_id":"59544933b825c70bd090d360c2248308cfbe5123"}],"tempest/services/image/v2/json/image_client.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"f84579745b2c6b183e4b9829556780b83e0a8b5a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        jsonschema.validate(body, schema)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def update_image(self, image_id, name, visibility):"},{"line_number":69,"context_line":"        params \u003d ["},{"line_number":70,"context_line":"            {\"replace\": \"/name\", \"value\": name},"},{"line_number":71,"context_line":"            {\"replace\": \"/visibility\", \"value\": visibility}"},{"line_number":72,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Fkjs%3D","line":69,"updated":"2014-02-12 09:33:18.000000000","message":"It should be more general.\nThe \u0027name, visibility\u0027 should be replaced by **kwargs, and the params should be generated from the kwargs.","commit_id":"402b71ff3b4b4efa918ad4ed471cf3ee5fbe1b32"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"f84579745b2c6b183e4b9829556780b83e0a8b5a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        url \u003d \u0027v2/images/%s/tags/%s\u0027 % (image_id, tag)"},{"line_number":152,"context_line":"        resp, _ \u003d self.delete(url)"},{"line_number":153,"context_line":"        return resp"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def get_image_membership(self, image_id):"},{"line_number":156,"context_line":"        url \u003d \u0027v2/images/%s/members\u0027 % image_id"},{"line_number":157,"context_line":"        resp, body \u003d self.get(url)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FkdQ%3D","line":154,"updated":"2014-02-12 09:33:18.000000000","message":"This change make this method orphaned.","commit_id":"402b71ff3b4b4efa918ad4ed471cf3ee5fbe1b32"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"307214b39c7f2b0d73e2ee77112a78b8ce6dfb25","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        url \u003d \u0027v2/images/%s/tags/%s\u0027 % (image_id, tag)"},{"line_number":152,"context_line":"        resp, _ \u003d self.delete(url)"},{"line_number":153,"context_line":"        return resp"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def get_image_membership(self, image_id):"},{"line_number":156,"context_line":"        url \u003d \u0027v2/images/%s/members\u0027 % image_id"},{"line_number":157,"context_line":"        resp, body \u003d self.get(url)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FZu4%3D","line":154,"in_reply_to":"AAAAUX%2F%2FkdQ%3D","updated":"2014-02-13 13:26:17.000000000","message":"This method is using in tempest.api.image.v1.test_image_members.ImageMembersTest","commit_id":"402b71ff3b4b4efa918ad4ed471cf3ee5fbe1b32"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            {\"Content-Type\": \"application/openstack-images-v2.0-json-patch\"})"},{"line_number":77,"context_line":"        resp, body \u003d self.patch(\u0027v2/images/%s\u0027 % image_id, data, self.headers)"},{"line_number":78,"context_line":"        body \u003d json.loads(body)"},{"line_number":79,"context_line":"        return resp, body"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def create_image(self, name, container_format, disk_format, **kwargs):"},{"line_number":82,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk8M%3D","line":79,"updated":"2014-02-20 12:18:51.000000000","message":"line 78-79 can be merged to\n\n return resp, self._parse_resp(body)","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"ea40cbb21de2298b09081a315535c6a7c46725a6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            {\"Content-Type\": \"application/openstack-images-v2.0-json-patch\"})"},{"line_number":77,"context_line":"        resp, body \u003d self.patch(\u0027v2/images/%s\u0027 % image_id, data, self.headers)"},{"line_number":78,"context_line":"        body \u003d json.loads(body)"},{"line_number":79,"context_line":"        return resp, body"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def create_image(self, name, container_format, disk_format, **kwargs):"},{"line_number":82,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BkzA%3D","line":79,"in_reply_to":"AAAAUX%2F%2Bk8M%3D","updated":"2014-02-20 12:38:36.000000000","message":"Yea. You\u0027re right","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"472c26c51898181763656b76e16ea9188e47ef39","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        resp, body \u003d self.get(url, self.headers)"},{"line_number":180,"context_line":"        body \u003d json.loads(body)"},{"line_number":181,"context_line":"        self.expected_success(200, resp)"},{"line_number":182,"context_line":"        return resp, body"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def remove_member(self, image_id, member_id):"},{"line_number":185,"context_line":"        url \u003d \u0027v2/images/%s/members/%s\u0027 % (image_id, member_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bk8A%3D","line":182,"updated":"2014-02-20 12:18:51.000000000","message":"ditto: line 180 and 182 can be merged","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"ea40cbb21de2298b09081a315535c6a7c46725a6","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        resp, body \u003d self.get(url, self.headers)"},{"line_number":180,"context_line":"        body \u003d json.loads(body)"},{"line_number":181,"context_line":"        self.expected_success(200, resp)"},{"line_number":182,"context_line":"        return resp, body"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def remove_member(self, image_id, member_id):"},{"line_number":185,"context_line":"        url \u003d \u0027v2/images/%s/members/%s\u0027 % (image_id, member_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BkzE%3D","line":182,"in_reply_to":"AAAAUX%2F%2Bk8A%3D","updated":"2014-02-20 12:38:36.000000000","message":"ok I\u0027ll fix","commit_id":"5a6e785545a88241b80a6266ef4c14af5d2a09fd"}]}
