)]}'
{"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"715cccd979d498621ccf2c3aa4d42a46fd57d84f","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":116,"context_line":"    def test_get_image_by_id(self):"},{"line_number":117,"context_line":"        #The expected image details should be returned"},{"line_number":118,"context_line":"        image_name \u003d \"test_image\""},{"line_number":119,"context_line":"        resp, body \u003d self.create_image(name\u003dimage_name,"},{"line_number":120,"context_line":"                                       container_format\u003d\u0027bare\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATX%2F%2F%2BN0%3D","line":117,"updated":"2013-10-23 13:45:05.000000000","message":"there should be a space after #","commit_id":"6b0fb917bcca7bcc786fbef88cb5917145c7bc82"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"715cccd979d498621ccf2c3aa4d42a46fd57d84f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        resp, body \u003d self.client.get_image(image_id)"},{"line_number":125,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        #converting body datastructure from string to dict"},{"line_number":128,"context_line":"        body \u003d json.loads(body)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        #verifying the image id and name"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATX%2F%2F%2BNw%3D","line":127,"updated":"2013-10-23 13:45:05.000000000","message":"ditto","commit_id":"6b0fb917bcca7bcc786fbef88cb5917145c7bc82"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"715cccd979d498621ccf2c3aa4d42a46fd57d84f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        #converting body datastructure from string to dict"},{"line_number":128,"context_line":"        body \u003d json.loads(body)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        #verifying the image id and name"},{"line_number":131,"context_line":"        self.assertEqual(image_id, body[\u0027id\u0027])"},{"line_number":132,"context_line":"        self.assertEqual(image_name, body[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATX%2F%2F%2BNg%3D","line":130,"updated":"2013-10-23 13:45:05.000000000","message":"ditto","commit_id":"6b0fb917bcca7bcc786fbef88cb5917145c7bc82"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"55900ad8c408184c1fe91389926bb540030fa525","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # converting body datastructure from string to dict"},{"line_number":128,"context_line":"        body \u003d json.loads(body)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # verifying the image id and name"},{"line_number":131,"context_line":"        self.assertEqual(image_id, body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATX%2F%2F9Ps%3D","line":128,"updated":"2013-10-23 17:31:27.000000000","message":"why you are not keeping this in v2 client ?","commit_id":"c9dfd640f6b70213cab640e6c400fc27a6298aff"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"efb9dc592c203ab075239e69946d9f4b53a72587","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # converting body datastructure from string to dict"},{"line_number":128,"context_line":"        body \u003d json.loads(body)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # verifying the image id and name"},{"line_number":131,"context_line":"        self.assertEqual(image_id, body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2F%2FrM%3D","line":128,"in_reply_to":"AAAATX%2F%2F9Ps%3D","updated":"2013-10-24 04:59:28.000000000","message":"yea, that conversion should be in image_client.py","commit_id":"c9dfd640f6b70213cab640e6c400fc27a6298aff"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"8285e5562999d9209e6e21bea769d2d65268b53c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        # verifying the image id and name"},{"line_number":127,"context_line":"        self.assertEqual(image_id, body[\u0027id\u0027])"},{"line_number":128,"context_line":"        self.assertEqual(image_name, body[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2F%2FVU%3D","line":127,"updated":"2013-10-24 06:46:15.000000000","message":"No need to add this line: self.assertEqual(image_id, body[\u0027id\u0027])\nIt always is true.\n\nbecause: \n122\t        image_id \u003d body[\u0027id\u0027]\n127\t        self.assertEqual(image_id, body[\u0027id\u0027])","commit_id":"ae07322a13dc47515dca481a3632fffcf54ad430"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"04788300d5a27754e0961b2826fba8faabc36389","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        # verifying the image id and name"},{"line_number":127,"context_line":"        self.assertEqual(image_id, body[\u0027id\u0027])"},{"line_number":128,"context_line":"        self.assertEqual(image_name, body[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2F%2FQg%3D","line":127,"in_reply_to":"AAAATn%2F%2F%2FVU%3D","updated":"2013-10-24 08:13:32.000000000","message":"Please ignore this comment.","commit_id":"ae07322a13dc47515dca481a3632fffcf54ad430"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"b791ee930e89c7dc969111e2c6150b3dc2736f7b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp, body \u003d self.client.store_image(image_id, image_file)"},{"line_number":63,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":64,"context_line":"        resp, body \u003d self.client.get_image(image_id)"},{"line_number":65,"context_line":"        self.assertIn(\u0027size\u0027, body)"},{"line_number":66,"context_line":"        self.assertEqual(1024, body.get(\u0027size\u0027))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2F%2Bvg%3D","line":65,"updated":"2013-10-24 10:32:35.000000000","message":"If you add here\nself.assertEqual(200, resp.status)\nself.assertEqual(image_id, body[\u0027id\u0027])\n\nThis test case covers the get as the test_get_image_by_id.\n\nBTW I noticed the \u0027get_image_file\u0027 method in the services is not in use.","commit_id":"4922c5d8ad23cdd44cb68e9f94668a025c96e93b"},{"author":{"_account_id":7039,"name":"Hoisaleshwara Madan V S","email":"hoisalvs@in.ibm.com","username":"Madan"},"change_message_id":"db8a5237001befa146a1ca5c2e1c9eca63fa6bdd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp, body \u003d self.client.store_image(image_id, image_file)"},{"line_number":63,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":64,"context_line":"        resp, body \u003d self.client.get_image(image_id)"},{"line_number":65,"context_line":"        self.assertIn(\u0027size\u0027, body)"},{"line_number":66,"context_line":"        self.assertEqual(1024, body.get(\u0027size\u0027))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2F%2BTo%3D","line":65,"in_reply_to":"AAAATn%2F%2F%2Bvg%3D","updated":"2013-10-24 12:28:35.000000000","message":"Done","commit_id":"4922c5d8ad23cdd44cb68e9f94668a025c96e93b"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"9e80b20dbba887f2dedea8c4404824d3fcb7c292","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(\u0027queued\u0027, body[\u0027status\u0027])"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # Now try uploading an image file"},{"line_number":67,"context_line":"        image_file \u003d StringIO.StringIO((\u0027*\u0027 * 1024))"},{"line_number":68,"context_line":"        resp, body \u003d self.client.store_image(image_id, image_file)"},{"line_number":69,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2F%2BOk%3D","line":67,"updated":"2013-10-24 12:47:12.000000000","message":"file_content \u003d \u0027*\u0027 * 1024\n image_file \u003d StringIO.StringIO(file_content)","commit_id":"6bf8a3519efa2d9c8f5c3bfd3139907329bcee44"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"9e80b20dbba887f2dedea8c4404824d3fcb7c292","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        # Now try get image file"},{"line_number":80,"context_line":"        resp, body \u003d self.client.get_image_file(image_id)"},{"line_number":81,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2F%2BOo%3D","line":81,"updated":"2013-10-24 12:47:12.000000000","message":"Can you assert the body ?\nself.assertEqual(body, file_content)","commit_id":"6bf8a3519efa2d9c8f5c3bfd3139907329bcee44"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"88d5e4eb8d98c341e00a0c941a6b3bbb8dde6f95","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        get image and get image file api\u0027s"},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        image_name \u003d \u0027New Name\u0027"},{"line_number":53,"context_line":"        resp, body \u003d self.create_image(name\u003dimage_name,"},{"line_number":54,"context_line":"                                       container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"                                       disk_format\u003d\u0027raw\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F9io%3D","line":52,"updated":"2013-10-24 15:25:31.000000000","message":"This should use rand_name.","commit_id":"2d1052e34ce9d4efb5c27dc65fd7d11ca996a6f4"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"2cbe88080c7f61cdde6bdee902f0b2d0e9a8af3d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        get image and get image file api\u0027s"},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        image_name \u003d \u0027New Name\u0027"},{"line_number":53,"context_line":"        resp, body \u003d self.create_image(name\u003dimage_name,"},{"line_number":54,"context_line":"                                       container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"                                       disk_format\u003d\u0027raw\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F7SE%3D","line":52,"in_reply_to":"AAAATn%2F%2F7TQ%3D","updated":"2013-10-25 05:37:11.000000000","message":"Hii, David said to use a random value rather using a static value image_name.\n\nfor example:\n\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/servers/test_servers_negative.py#L197","commit_id":"2d1052e34ce9d4efb5c27dc65fd7d11ca996a6f4"},{"author":{"_account_id":7039,"name":"Hoisaleshwara Madan V S","email":"hoisalvs@in.ibm.com","username":"Madan"},"change_message_id":"a0810d1efa5d6fe597cc422820a674d27ba0ed59","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        get image and get image file api\u0027s"},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        image_name \u003d \u0027New Name\u0027"},{"line_number":53,"context_line":"        resp, body \u003d self.create_image(name\u003dimage_name,"},{"line_number":54,"context_line":"                                       container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"                                       disk_format\u003d\u0027raw\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F7TQ%3D","line":52,"in_reply_to":"AAAATn%2F%2F9io%3D","updated":"2013-10-25 05:22:06.000000000","message":"Done","commit_id":"2d1052e34ce9d4efb5c27dc65fd7d11ca996a6f4"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e25bb48823e82a2f182a73cb7a1a97097aaa607a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import random"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest import exceptions"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from tempest.api.image import base"},{"line_number":25,"context_line":"from tempest.common.utils import data_utils"},{"line_number":26,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2F01c%3D","line":23,"updated":"2013-10-28 12:41:40.000000000","message":"there should be no blank line here. tempest internal imports should be together and sorted alphabetically","commit_id":"e79d8ed1208d28d61c48d547ad32fbbb4a9c4302"},{"author":{"_account_id":7039,"name":"Hoisaleshwara Madan V S","email":"hoisalvs@in.ibm.com","username":"Madan"},"change_message_id":"01ac21c5582485ff900a6e8495266df93aaf5765","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import random"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest import exceptions"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from tempest.api.image import base"},{"line_number":25,"context_line":"from tempest.common.utils import data_utils"},{"line_number":26,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtYc%3D","line":23,"in_reply_to":"AAAATn%2F%2F01c%3D","updated":"2013-10-30 06:31:39.000000000","message":"Done","commit_id":"e79d8ed1208d28d61c48d547ad32fbbb4a9c4302"}],"tempest/services/image/v2/json/image_client.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"efb9dc592c203ab075239e69946d9f4b53a72587","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        url \u003d \u0027v2/images/%s\u0027 % image_id"},{"line_number":105,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":106,"context_line":"        return resp, body"},{"line_number":107,"context_line":" "},{"line_number":108,"context_line":"    def get_image_metadata(self, image_id):"},{"line_number":109,"context_line":"        url \u003d \u0027v2/images/%s\u0027 % image_id"},{"line_number":110,"context_line":"        resp, body \u003d self.get(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2F%2FrY%3D","line":107,"updated":"2013-10-24 04:59:28.000000000","message":"rogue whitespace here","commit_id":"c9dfd640f6b70213cab640e6c400fc27a6298aff"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"8285e5562999d9209e6e21bea769d2d65268b53c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        self._validate_schema(body, type\u003d\u0027images\u0027)"},{"line_number":101,"context_line":"        return resp, body[\u0027images\u0027]"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_image(self, image_id):"},{"line_number":104,"context_line":"        url \u003d \u0027v2/images/%s\u0027 % image_id"},{"line_number":105,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":106,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2F%2FXQ%3D","line":103,"updated":"2013-10-24 06:46:15.000000000","message":"What is the difference in the function body between get_image(self, image_id) and get_image_metadata(self, image_id)?\n\nOne function is enough, Maybe we need a better function name.\nHow about get_image_details?","commit_id":"ae07322a13dc47515dca481a3632fffcf54ad430"}]}
