)]}'
{"tempest/api/image/base.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"e489335ed42b9e92b690e6579c1729c2c9cbaff8","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        image_ids \u003d map(lambda x: x[\u0027id\u0027], image_list)"},{"line_number":136,"context_line":"        return image_ids"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _create_image(self):"},{"line_number":139,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":140,"context_line":"        resp, image \u003d self.os_img_client.create_image(name,"},{"line_number":141,"context_line":"                                                      container_format\u003d\u0027bare\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FrgQ%3D","line":138,"updated":"2013-10-30 14:54:55.000000000","message":"I think you have create_image in BaseImageTest already","commit_id":"9edc0a375216089418adde81d4dbe71a3f05e501"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"46c8c31bf64494ee79ea8c6f2579da324c6d3913","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        image_ids \u003d map(lambda x: x[\u0027id\u0027], image_list)"},{"line_number":136,"context_line":"        return image_ids"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _create_image(self):"},{"line_number":139,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":140,"context_line":"        resp, image \u003d self.os_img_client.create_image(name,"},{"line_number":141,"context_line":"                                                      container_format\u003d\u0027bare\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Folo%3D","line":138,"in_reply_to":"AAAATn%2F%2FrgQ%3D","updated":"2013-10-31 05:59:38.000000000","message":"It uses the v2 client, the Base uses the v1.","commit_id":"9edc0a375216089418adde81d4dbe71a3f05e501"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"f8fdf3c0e3f737907a1f72d2d0c3f4e9261d96d7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        cls.os_img_client \u003d cls.os.image_client_v2"},{"line_number":131,"context_line":"        cls.alt_img_client \u003d cls.os_alt.image_client_v2"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _alt_img_list(self):"},{"line_number":134,"context_line":"        _, image_list \u003d self.alt_img_client.image_list()"},{"line_number":135,"context_line":"        image_ids \u003d map(lambda x: x[\u0027id\u0027], image_list)"},{"line_number":136,"context_line":"        return image_ids"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2Fncg%3D","line":133,"updated":"2013-10-31 11:36:49.000000000","message":"this is kind of a terrible name for this function. Can we call it something like _list_image_ids() or _image_id_list()","commit_id":"65594b337e07ccf06c2fc4fd1d4c12ba65b5928c"}],"tempest/api/image/v2/test_images_member.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"ef9ab436b93490fa51be71ffebd17f496f579a16","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            username, tenant_name, password \u003d creds"},{"line_number":31,"context_line":"            cls.os_alt \u003d clients.Manager(username\u003dusername,"},{"line_number":32,"context_line":"                                         password\u003dpassword,"},{"line_number":33,"context_line":"                                         tenant_name\u003dtenant_name)"},{"line_number":34,"context_line":"        else:"},{"line_number":35,"context_line":"            cls.os_alt \u003d clients.AltManager()"},{"line_number":36,"context_line":"        alt_tenant_name \u003d cls.os_alt.tenant_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2F2LI%3D","line":33,"updated":"2013-10-09 02:33:12.000000000","message":"shall we pass interface\u003dcls._interface too to make sure this will work when the XML service methods will be implemented and this class extended to use the XML interface too?","commit_id":"2383fc490b1725cbed70e63fe231741a684079dc"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"ef9ab436b93490fa51be71ffebd17f496f579a16","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":50,"context_line":"    def test_image_share_v2_accept(self):"},{"line_number":51,"context_line":"        resp, image \u003d self.os_img_cli.create_image(rand_name(\u0027image\u0027),"},{"line_number":52,"context_line":"                                                   container_format\u003d\u0027bare\u0027,"},{"line_number":53,"context_line":"                                                   disk_format\u003d\u0027raw\u0027)"},{"line_number":54,"context_line":"        image_id \u003d image[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2F2JE%3D","line":51,"updated":"2013-10-09 02:33:12.000000000","message":"maybe lines from 51 to 60 can be put in some _method and shared amongst the tests?","commit_id":"2383fc490b1725cbed70e63fe231741a684079dc"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"ef9ab436b93490fa51be71ffebd17f496f579a16","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @attr(type\u003d[\u0027gate\u0027, \u0027negative\u0027])"},{"line_number":108,"context_line":"    def test_image_share_v2_not_my_tenant(self):"},{"line_number":109,"context_line":"        resp, image \u003d self.os_img_cli.create_image(rand_name(\u0027image\u0027),"},{"line_number":110,"context_line":"                                                   container_format\u003d\u0027bare\u0027,"},{"line_number":111,"context_line":"                                                   disk_format\u003d\u0027raw\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2F2I0%3D","line":108,"updated":"2013-10-09 02:33:12.000000000","message":"invalid_tenant instead of not_my_tenant probably would describe this better","commit_id":"2383fc490b1725cbed70e63fe231741a684079dc"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"88811a7015b9f11f8e7282c3ce4f6b0e53c96ba2","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @attr(type\u003d[\u0027gate\u0027, \u0027negative\u0027])"},{"line_number":108,"context_line":"    def test_image_share_v2_not_my_tenant(self):"},{"line_number":109,"context_line":"        resp, image \u003d self.os_img_cli.create_image(rand_name(\u0027image\u0027),"},{"line_number":110,"context_line":"                                                   container_format\u003d\u0027bare\u0027,"},{"line_number":111,"context_line":"                                                   disk_format\u003d\u0027raw\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2F0t8%3D","line":108,"in_reply_to":"AAAATH%2F%2F2I0%3D","updated":"2013-10-09 11:25:17.000000000","message":"This will be removed.\n\nIt is not non existing test, it is more about authz.\nThe authz test comes first, but it is not a guaranteed behavior.","commit_id":"2383fc490b1725cbed70e63fe231741a684079dc"},{"author":{"_account_id":8282,"name":"Dong Liu","email":"willowd878@gmail.com","username":"liudong"},"change_message_id":"1d51f34e1c609eb0ba5567cf16e6b5c92f9d98a0","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                          self.alt_img_cli.update_member_status,"},{"line_number":102,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @attr(type\u003d[\u0027gate\u0027])"},{"line_number":105,"context_line":"    def test_image_share_v2_owner_accept(self):"},{"line_number":106,"context_line":"        image_id \u003d self._create_image()"},{"line_number":107,"context_line":"        resp, member \u003d self.os_img_cli.add_member(image_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FhW8%3D","line":104,"updated":"2013-10-15 02:14:44.000000000","message":"I would write this without \u0027[]\u0027","commit_id":"b1b811e32b2af2654ab3bd1764e20a2a08118564"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0b6c27bcb8d223c8c25a1fd29afb0bda91c5a442","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            cls.os_alt \u003d clients.Manager(username\u003dusername,"},{"line_number":32,"context_line":"                                         password\u003dpassword,"},{"line_number":33,"context_line":"                                         tenant_name\u003dtenant_name,"},{"line_number":34,"context_line":"                                         interface\u003dcls._interface)"},{"line_number":35,"context_line":"        else:"},{"line_number":36,"context_line":"            cls.os_alt \u003d clients.AltManager(interface\u003dcls._interface)"},{"line_number":37,"context_line":"        alt_tenant_name \u003d cls.os_alt.tenant_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTes%3D","line":34,"updated":"2013-10-18 02:09:53.000000000","message":"This actually isn\u0027t needed, the glance api doesn\u0027t support xml. But it doesn\u0027t do any harm.","commit_id":"2c541c31462138c4b5cdf611bb442d2f7b95504f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0b6c27bcb8d223c8c25a1fd29afb0bda91c5a442","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        alt_tenant_name \u003d cls.os_alt.tenant_name"},{"line_number":38,"context_line":"        identity_client \u003d cls._get_identity_admin_client()"},{"line_number":39,"context_line":"        _, tenants \u003d identity_client.list_tenants()"},{"line_number":40,"context_line":"        cls.alt_tenant_id \u003d [tnt[\u0027id\u0027] for tnt in tenants if tnt[\u0027name\u0027] \u003d\u003d"},{"line_number":41,"context_line":"                             alt_tenant_name][0]"},{"line_number":42,"context_line":"        cls.os_img_cli \u003d cls.os.image_client_v2"},{"line_number":43,"context_line":"        cls.alt_img_cli \u003d cls.os_alt.image_client_v2"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTfc%3D","line":40,"updated":"2013-10-18 02:09:53.000000000","message":"I think you should just do a self.isolated_creds.get_alt_tenant() in the allow tenant isolation if block and save this workaround for the else. (unless there is an easier way to get the tenant id in the non-isolated case)","commit_id":"2c541c31462138c4b5cdf611bb442d2f7b95504f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0b6c27bcb8d223c8c25a1fd29afb0bda91c5a442","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        _, tenants \u003d identity_client.list_tenants()"},{"line_number":40,"context_line":"        cls.alt_tenant_id \u003d [tnt[\u0027id\u0027] for tnt in tenants if tnt[\u0027name\u0027] \u003d\u003d"},{"line_number":41,"context_line":"                             alt_tenant_name][0]"},{"line_number":42,"context_line":"        cls.os_img_cli \u003d cls.os.image_client_v2"},{"line_number":43,"context_line":"        cls.alt_img_cli \u003d cls.os_alt.image_client_v2"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _alt_img_list(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTfY%3D","line":42,"updated":"2013-10-18 02:09:53.000000000","message":"cli here makes me think command line, can you change the name?","commit_id":"2c541c31462138c4b5cdf611bb442d2f7b95504f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0b6c27bcb8d223c8c25a1fd29afb0bda91c5a442","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        cls.alt_tenant_id \u003d [tnt[\u0027id\u0027] for tnt in tenants if tnt[\u0027name\u0027] \u003d\u003d"},{"line_number":41,"context_line":"                             alt_tenant_name][0]"},{"line_number":42,"context_line":"        cls.os_img_cli \u003d cls.os.image_client_v2"},{"line_number":43,"context_line":"        cls.alt_img_cli \u003d cls.os_alt.image_client_v2"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _alt_img_list(self):"},{"line_number":46,"context_line":"        _, image_list \u003d self.alt_img_cli.image_list()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTfU%3D","line":43,"updated":"2013-10-18 02:09:53.000000000","message":"same here","commit_id":"2c541c31462138c4b5cdf611bb442d2f7b95504f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0b6c27bcb8d223c8c25a1fd29afb0bda91c5a442","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":105,"context_line":"    def test_image_share_v2_owner_accept(self):"},{"line_number":106,"context_line":"        image_id \u003d self._create_image()"},{"line_number":107,"context_line":"        resp, member \u003d self.os_img_cli.add_member(image_id,"},{"line_number":108,"context_line":"                                                  self.alt_tenant_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTew%3D","line":105,"updated":"2013-10-18 02:09:53.000000000","message":"Isn\u0027t this a negative test?","commit_id":"2c541c31462138c4b5cdf611bb442d2f7b95504f"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e2d0a476d21ff12556749b7aaae157277edc2450","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            cls.os_alt \u003d clients.AltManager()"},{"line_number":38,"context_line":"            alt_tenant_name \u003d cls.os_alt.tenant_name"},{"line_number":39,"context_line":"            identity_client \u003d cls._get_identity_admin_client()"},{"line_number":40,"context_line":"            _, tenants \u003d identity_client.list_tenants()"},{"line_number":41,"context_line":"            cls.alt_tenant_id \u003d [tnt[\u0027id\u0027] for tnt in tenants"},{"line_number":42,"context_line":"                                 if tnt[\u0027name\u0027] \u003d\u003d alt_tenant_name][0]"},{"line_number":43,"context_line":"        cls.os_img_client \u003d cls.os.image_client_v2"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2F0FE%3D","line":40,"updated":"2013-10-28 16:18:53.000000000","message":"use \u0027identity_client.get_tenant_by_name(alt_tenant_name)\u0027 to get alt_tenant may be better","commit_id":"d593caf2af44c6cf43895104dd0b2a112b690a61"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d710a974f38be56dc40a22a6fc89234d0b2a9d46","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.image import base"},{"line_number":16,"context_line":"from tempest import clients"},{"line_number":17,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FyPY%3D","line":17,"updated":"2013-10-29 05:24:02.000000000","message":"when adding a new test file, it is better to change here to\n from tempest.common.utils import data_utils","commit_id":"96d98592409bf9793b5f1eadc220ac02003a9d6a"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"a41d7578afc168f464cacac2d156085bedee9b3a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                          self.alt_img_client.update_member_status,"},{"line_number":102,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @attr(type\u003d[\u0027gate\u0027, \u0027negative\u0027])"},{"line_number":105,"context_line":"    def test_image_share_v2_owner_accept(self):"},{"line_number":106,"context_line":"        image_id \u003d self._create_image()"},{"line_number":107,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Fx7s%3D","line":104,"updated":"2013-10-29 07:04:48.000000000","message":"Here ,why not @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])?\nThank you!","commit_id":"96d98592409bf9793b5f1eadc220ac02003a9d6a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d710a974f38be56dc40a22a6fc89234d0b2a9d46","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                          self.alt_img_client.update_member_status,"},{"line_number":102,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @attr(type\u003d[\u0027gate\u0027, \u0027negative\u0027])"},{"line_number":105,"context_line":"    def test_image_share_v2_owner_accept(self):"},{"line_number":106,"context_line":"        image_id \u003d self._create_image()"},{"line_number":107,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FyOw%3D","line":104,"updated":"2013-10-29 05:24:02.000000000","message":"Negative tests should be added to a negative test file.\n\nHACKING.rst\n The second requirement is that all negative tests must be added to a negative\n test file. If such a file doesn\u0027t exist for the particular resource being\n tested a new test file should be added.","commit_id":"96d98592409bf9793b5f1eadc220ac02003a9d6a"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"fba8e89c01629861fbbe55e75d190cfee0ad702d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @attr(type\u003d[\u0027gate\u0027, \u0027negative\u0027])"},{"line_number":105,"context_line":"    def test_image_share_v2_owner_accept(self):"},{"line_number":106,"context_line":"        image_id \u003d self._create_image()"},{"line_number":107,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"},{"line_number":108,"context_line":"                                                     self.alt_tenant_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Fx9c%3D","line":105,"updated":"2013-10-29 06:55:21.000000000","message":"Agreed. \nAnd is there should be a little negative info for this function name?","commit_id":"96d98592409bf9793b5f1eadc220ac02003a9d6a"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"e489335ed42b9e92b690e6579c1729c2c9cbaff8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":23,"context_line":"    def test_image_share_v2_accept(self):"},{"line_number":24,"context_line":"        image_id \u003d self._create_image()"},{"line_number":25,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"},{"line_number":26,"context_line":"                                                     self.alt_tenant_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Frf4%3D","line":23,"updated":"2013-10-30 14:54:55.000000000","message":"is it really needed to keep v2 in the test name when this is in the v2 directory?","commit_id":"9edc0a375216089418adde81d4dbe71a3f05e501"}],"tempest/api/image/v2/test_images_member_negative.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"e489335ed42b9e92b690e6579c1729c2c9cbaff8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        resp, member \u003d self.os_img_client.add_member(image_id,"},{"line_number":27,"context_line":"                                                     self.alt_tenant_id)"},{"line_number":28,"context_line":"        self.assertEqual(member[\u0027status\u0027], \u0027pending\u0027)"},{"line_number":29,"context_line":"        self.assertNotIn(image_id, self._alt_img_list())"},{"line_number":30,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":31,"context_line":"                          self.alt_img_client.update_member_status,"},{"line_number":32,"context_line":"                          image_id, self.alt_tenant_id, \u0027notavalidstatus\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FrVI%3D","line":29,"updated":"2013-10-30 14:54:55.000000000","message":"this seems unneeded here","commit_id":"9edc0a375216089418adde81d4dbe71a3f05e501"}]}
