)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"1262d3ff8eb57b0113ee0263157778e455dc4ed5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Abhijeet Malawade \u003cAbhijeet.Malawade@nttdata.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-09-17 21:50:24 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"GET Volume tests for APIs that accept params (p2)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Second patch of a series that adds tests for those GET API"},{"line_number":10,"context_line":"functions that accept params"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAS3%2F%2F2H0%3D","line":7,"updated":"2013-09-18 10:24:08.000000000","message":"It is no business with \"volume\".","commit_id":"fed368274efaa3b71304b9a544d56ddcdc2ad245"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"1262d3ff8eb57b0113ee0263157778e455dc4ed5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"GET Volume tests for APIs that accept params (p2)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Second patch of a series that adds tests for those GET API"},{"line_number":10,"context_line":"functions that accept params"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"* image_list glance API"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAS3%2F%2F2HI%3D","line":9,"updated":"2013-09-18 10:24:08.000000000","message":"\"Second patch of a series that\" is not needed.","commit_id":"fed368274efaa3b71304b9a544d56ddcdc2ad245"}],"tempest/api/compute/admin/test_security_groups.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"7b26f14673412dcea74a43c036972cb46bbcfbe9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FsEQ%3D","line":19,"updated":"2013-10-11 06:58:25.000000000","message":"https://review.openstack.org/#/c/46886/10/tempest/api/compute/floating_ips/test_floating_ips_actions.py\n\nFollow this patch for importing","commit_id":"eb5ce9cdb1f15520ad556fca69275aac91255bf4"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"7b26f14673412dcea74a43c036972cb46bbcfbe9","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            name \u003d rand_name(\u0027securitygroup-\u0027)"},{"line_number":48,"context_line":"            description \u003d rand_name(\u0027description-\u0027)"},{"line_number":49,"context_line":"            resp, securitygroup \u003d \\"},{"line_number":50,"context_line":"                self.client.create_security_group(name, description)"},{"line_number":51,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":52,"context_line":"            self.addCleanup(self._delete_security_group,"},{"line_number":53,"context_line":"                            securitygroup[\u0027id\u0027], admin\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FsD8%3D","line":50,"updated":"2013-10-11 06:58:25.000000000","message":"Cleanup should be used before checking status code.","commit_id":"eb5ce9cdb1f15520ad556fca69275aac91255bf4"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"7b26f14673412dcea74a43c036972cb46bbcfbe9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            description \u003d rand_name(\u0027description-\u0027)"},{"line_number":61,"context_line":"            resp, adm_securitygroup \u003d \\"},{"line_number":62,"context_line":"                self.adm_client.create_security_group(name, description)"},{"line_number":63,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":64,"context_line":"            self.addCleanup(self._delete_security_group,"},{"line_number":65,"context_line":"                            adm_securitygroup[\u0027id\u0027])"},{"line_number":66,"context_line":"            security_group_list.append(adm_securitygroup)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FsEM%3D","line":63,"updated":"2013-10-11 06:58:25.000000000","message":"Cleanup should be used before checking status code.","commit_id":"eb5ce9cdb1f15520ad556fca69275aac91255bf4"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"0fcf847a4f69c4fd860fc6fdcf8030faec220300","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":41,"context_line":"    def test_list_security_groups_list_all_tenants_filter(self):"},{"line_number":42,"context_line":"        # Admin can list security groups of all tenants"},{"line_number":43,"context_line":"        # List of all security groups created"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FQGU%3D","line":40,"updated":"2013-10-19 07:19:58.000000000","message":"With the security group tests we should use the \u0027smoke\u0027 flag, in order to be tested on the neutron gate as well.","commit_id":"46983120af9641a5819bd1e218a5860aa438ac9f"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6b3e1306325c4de5f62290e4cc6f175dba14cd22","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @testtools.skipIf(config.TempestConfig().service_available.neutron,"},{"line_number":44,"context_line":"                      \"Skipped until the Bug #1250327 is resolved\")"},{"line_number":45,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":46,"context_line":"    def test_list_security_groups_list_all_tenants_filter(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FGrQ%3D","line":43,"updated":"2013-11-14 11:37:13.000000000","message":"This is a little difficult code for me.\nI think we can use @skip_because() here.\nCould you see api/compute/security_groups/test_security_groups.py?","commit_id":"57bdda3a3cadd1eb0e396f932b961ec98225878b"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"29996d6166964897b3b83ea53752c80f349e692e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @skip_because(bug\u003d\"1250327\","},{"line_number":43,"context_line":"                  condition\u003dconfig.TempestConfig().service_available.neutron)"},{"line_number":44,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":45,"context_line":"    def test_list_security_groups_list_all_tenants_filter(self):"},{"line_number":46,"context_line":"        # Admin can list security groups of all tenants"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2BJEg%3D","line":43,"updated":"2013-12-02 02:29:04.000000000","message":"This test case is against Tempest policy.\nPlease remove @skip_because() from a new test case.\nmeaning we have to fix the problem first.\n\n from HACKING.rst\n - Do not submit changesets with only testcases which are skipped as they will not be merged.","commit_id":"804cc447672d4d99176d603c934442e2c4aa1cc0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"29996d6166964897b3b83ea53752c80f349e692e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                self.client.create_security_group(name, description)"},{"line_number":55,"context_line":"            self.addCleanup(self._delete_security_group,"},{"line_number":56,"context_line":"                            securitygroup[\u0027id\u0027], admin\u003dFalse)"},{"line_number":57,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":58,"context_line":"            security_group_list.append(securitygroup)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        client_tenant_id \u003d securitygroup[\u0027tenant_id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2BJEI%3D","line":57,"updated":"2013-12-02 02:29:04.000000000","message":"better to put self.assertEqual(200, resp.status) before self.addCleanup() because of deleting the succeeded security_groups later.","commit_id":"804cc447672d4d99176d603c934442e2c4aa1cc0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"29996d6166964897b3b83ea53752c80f349e692e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                self.adm_client.create_security_group(name, description)"},{"line_number":67,"context_line":"            self.addCleanup(self._delete_security_group,"},{"line_number":68,"context_line":"                            adm_securitygroup[\u0027id\u0027])"},{"line_number":69,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":70,"context_line":"            security_group_list.append(adm_securitygroup)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Fetch all security groups based on \u0027all_tenants\u0027 search filter"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2BJEA%3D","line":69,"updated":"2013-12-02 02:29:04.000000000","message":"ditto","commit_id":"804cc447672d4d99176d603c934442e2c4aa1cc0"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"15132a3b8a267124f20fffa1394e1d4970233b57","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self.assertEqual(image[\"disk_format\"],"},{"line_number":139,"context_line":"                             params[\"disk_format\"],"},{"line_number":140,"context_line":"                             \"Failed to get images by disk_format\")"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_list_images_param_visibility(self):"},{"line_number":143,"context_line":"        # Test to get all images with visibility \u003d public"},{"line_number":144,"context_line":"        params \u003d {\"visibility\": \"public\"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FXpk%3D","line":141,"updated":"2013-11-08 04:35:23.000000000","message":"use @attr(type\u003d\u0027gate\u0027) here","commit_id":"b6bc1e3c0f385f6d9fd441d1cfc0b6d2cce15b17"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"15132a3b8a267124f20fffa1394e1d4970233b57","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    def test_get_image_meta_by_null_id(self):"},{"line_number":155,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":156,"context_line":"                          self.client.get_image_metadata, \u0027\u0027)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def test_list_images_param_size(self):"},{"line_number":159,"context_line":"        # Test to get all images by size"},{"line_number":160,"context_line":"        image_id \u003d self.created_images[1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FXlk%3D","line":157,"updated":"2013-11-08 04:35:23.000000000","message":"ditto","commit_id":"b6bc1e3c0f385f6d9fd441d1cfc0b6d2cce15b17"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"15132a3b8a267124f20fffa1394e1d4970233b57","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        for image in images_list:"},{"line_number":170,"context_line":"            self.assertEqual(image[\u0027size\u0027], params[\u0027size\u0027],"},{"line_number":171,"context_line":"                             \"Failed to get images by size\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def test_list_images_param_min_max_size(self):"},{"line_number":174,"context_line":"        # Test to get all images with size between 2000 to 3000"},{"line_number":175,"context_line":"        image_id \u003d self.created_images[1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FXpY%3D","line":172,"updated":"2013-11-08 04:35:23.000000000","message":"ditto","commit_id":"b6bc1e3c0f385f6d9fd441d1cfc0b6d2cce15b17"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"15132a3b8a267124f20fffa1394e1d4970233b57","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        for image in images_list:"},{"line_number":199,"context_line":"            self.assertEqual(image[\"status\"], params[\"status\"],"},{"line_number":200,"context_line":"                             \"Failed to get images by status\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_list_images_param_limit(self):"},{"line_number":203,"context_line":"        # Test to get images by limit"},{"line_number":204,"context_line":"        params \u003d {\"limit\": 2}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FXoY%3D","line":201,"updated":"2013-11-08 04:35:23.000000000","message":"ditto","commit_id":"b6bc1e3c0f385f6d9fd441d1cfc0b6d2cce15b17"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c59958bed846e6823f328635a086ef9d852be503","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        img_id3 \u003d cls._create_standard_image(3, \u0027ami\u0027, \u0027raw\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        cls.bare_images \u003d set((img_id1, img_id2))"},{"line_number":111,"context_line":"        cls.raw_images \u003d set((img_id1, img_id2, img_id3))"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # Add some more for listing"},{"line_number":114,"context_line":"        cls._create_standard_image(4, \u0027ami\u0027, \u0027ami\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F9lGg%3D","line":111,"updated":"2013-12-10 01:19:08.000000000","message":"The above \"bare_images\" and \"raw_images\" are not used in this patch. Are they necessary?","commit_id":"9e2bf454a7d037ed0ebd7de3ec9edd5907766f10"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"ca71b514a19185c2effefd6f8ac6bc7a18c75b06","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        resp, body \u003d cls.create_image(name\u003dname,"},{"line_number":124,"context_line":"                                      container_format\u003dcontainer_format,"},{"line_number":125,"context_line":"                                      disk_format\u003ddisk_format,"},{"line_number":126,"context_line":"                                      visibility\u003d\u0027public\u0027)"},{"line_number":127,"context_line":"        image_id \u003d body[\u0027id\u0027]"},{"line_number":128,"context_line":"        resp, body \u003d cls.client.store_image(image_id, data\u003dimage_file)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F9LuQ%3D","line":126,"updated":"2013-12-15 12:17:19.000000000","message":"The v1 test also creates public images with same naming convention,\n\nI wonder wouldn\u0027t be better to use private images and/or a different base name like \n\"New Standard v2Image\".\n\nThe potential name collision may cause unexpected failures in parallel runs.","commit_id":"0941f2a6a79324727c52a3288ef6d511bab8ced8"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"0df04a88c0b3dff25af190fceea42ec2b9a2697e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        cls._create_standard_image(6, \u0027aki\u0027, \u0027aki\u0027)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @classmethod"},{"line_number":115,"context_line":"    def _create_standard_image(cls, number, container_format, disk_format):"},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        Create a new standard image and return the ID of the newly-registered"},{"line_number":118,"context_line":"        image. Note that the size of the new image is a random number between"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F87qc%3D","line":115,"updated":"2013-12-18 16:43:37.000000000","message":"number is no longer used anywhere, please remove","commit_id":"bf5b06692432c25ae3a3e33af8a21e4e567892c0"}]}
