)]}'
{"tempest/api/network/base_routers.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"82a404c62dc43e3fc8c871415ba49376d886faac","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        routers_list \u003d list()"},{"line_number":38,"context_line":"        for router in list_body[\u0027routers\u0027]:"},{"line_number":39,"context_line":"            routers_list.append(router[\u0027id\u0027])"},{"line_number":40,"context_line":"        self.assertNotIn(router_id, routers_list)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _remove_router_interface_with_subnet_id(self, router_id, subnet_id):"},{"line_number":43,"context_line":"        resp, _ \u003d self.client.remove_router_interface_with_subnet_id("}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F8rMA%3D","line":40,"updated":"2013-12-23 11:55:54.000000000","message":"why not just \n\n    self.assertNotIn(router_id, [r[\u0027id\u0027] for r in list_body[\u0027routers\u0027]])?\n\nI think this look better.","commit_id":"922aa9575266b23d40b8457a3366b50b773c5235"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5187ccd38bf243bfadab172d303052193626dd41","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        routers_list \u003d list()"},{"line_number":38,"context_line":"        for router in list_body[\u0027routers\u0027]:"},{"line_number":39,"context_line":"            routers_list.append(router[\u0027id\u0027])"},{"line_number":40,"context_line":"        self.assertNotIn(router_id, routers_list)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _remove_router_interface_with_subnet_id(self, router_id, subnet_id):"},{"line_number":43,"context_line":"        resp, _ \u003d self.client.remove_router_interface_with_subnet_id("}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F8n2w%3D","line":40,"in_reply_to":"AAAATn%2F8qNA%3D","updated":"2013-12-24 06:49:20.000000000","message":"Yes, that is ok, I just suggest.","commit_id":"922aa9575266b23d40b8457a3366b50b773c5235"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"35b4e7010f5cfb5f4dc9123647e311d4c994e385","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        routers_list \u003d list()"},{"line_number":38,"context_line":"        for router in list_body[\u0027routers\u0027]:"},{"line_number":39,"context_line":"            routers_list.append(router[\u0027id\u0027])"},{"line_number":40,"context_line":"        self.assertNotIn(router_id, routers_list)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _remove_router_interface_with_subnet_id(self, router_id, subnet_id):"},{"line_number":43,"context_line":"        resp, _ \u003d self.client.remove_router_interface_with_subnet_id("}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F8qNA%3D","line":40,"in_reply_to":"AAAATn%2F8rMA%3D","updated":"2013-12-23 15:41:41.000000000","message":"Hi Ann, thanks for your comment. Your line is compressed and intellectual. I prefer to write something that it\u0027s easy to read so I tend to divide this kind of operation in more lines. It\u0027s more about personal preference I think. Let\u0027s see if somebody else comments, I\u0027ll change it if somebody else thinks it\u0027s better. Is that ok?","commit_id":"922aa9575266b23d40b8457a3366b50b773c5235"}],"tempest/api/network/test_routers_negative.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"56c8758517f9270e56e2cb5722eb1a4110aac5f6","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.network import base_routers as base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest import exceptions"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2Bho4%3D","line":19,"updated":"2013-11-25 04:45:29.000000000","message":"Could you import the module not the function?\nHACKING officially discourages symbol import directly because it makes it harder to track down that a function was imported.\nI\u0027m cleaning up them now.\nhttps://review.openstack.org/#/c/58180/","commit_id":"d919ae9a957f949d99b1c439de95ce6a8dc37a7d"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"e9c6afc24098151d5c79ef450ae7a0f08e40117a","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.network import base_routers as base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest import exceptions"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BOY0%3D","line":19,"in_reply_to":"AAAATn%2F%2Bho4%3D","updated":"2013-11-28 17:20:36.000000000","message":"thanks!","commit_id":"d919ae9a957f949d99b1c439de95ce6a8dc37a7d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"63d43ec4e4ca6cc8889ea4c719e05310912dcaf3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":32,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":35,"context_line":"    def test_router_add_gateway_invalid_network_returns_404(self):"},{"line_number":36,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":37,"context_line":"                          self.client.update_router,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9lME%3D","line":34,"updated":"2013-12-10 00:40:47.000000000","message":"This needs to be smoke, we don\u0027t run a full neutron job in the gate, so this isn\u0027t actually getting run in the gate right now.","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"374e5980bb590d9a493fc94d482392570a437eae","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":32,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":35,"context_line":"    def test_router_add_gateway_invalid_network_returns_404(self):"},{"line_number":36,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":37,"context_line":"                          self.client.update_router,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9bmY%3D","line":34,"in_reply_to":"AAAATn%2F9lME%3D","updated":"2013-12-11 15:44:51.000000000","message":"Thanks!","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"63d43ec4e4ca6cc8889ea4c719e05310912dcaf3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                          external_gateway_info\u003d{"},{"line_number":40,"context_line":"                              \u0027network_id\u0027: self.router[\u0027id\u0027]})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9lMA%3D","line":42,"updated":"2013-12-10 00:40:47.000000000","message":"Same here","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"374e5980bb590d9a493fc94d482392570a437eae","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                          external_gateway_info\u003d{"},{"line_number":40,"context_line":"                              \u0027network_id\u0027: self.router[\u0027id\u0027]})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9bmQ%3D","line":42,"in_reply_to":"AAAATn%2F9lMA%3D","updated":"2013-12-11 15:44:51.000000000","message":"thanks!","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"64a6d66964211156e247438ff212573cb1008d1c","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":46,"context_line":"                          self.client.update_router,"},{"line_number":47,"context_line":"                          self.router[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BH4o%3D","line":44,"updated":"2013-12-02 11:14:51.000000000","message":"A little confused about this line. Is this subnet required?","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"15e7d7a9648c035274ba803502c68a7b30322915","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":46,"context_line":"                          self.client.update_router,"},{"line_number":47,"context_line":"                          self.router[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9jw8%3D","line":44,"in_reply_to":"AAAATn%2F%2BETU%3D","updated":"2013-12-10 09:08:48.000000000","message":"Thank you! withdraw my -1","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"4635749eb9373c7637c2486250a06c1df943aab9","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":46,"context_line":"                          self.client.update_router,"},{"line_number":47,"context_line":"                          self.router[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BETU%3D","line":44,"in_reply_to":"AAAATn%2F%2BH4o%3D","updated":"2013-12-02 21:41:06.000000000","message":"Yes, this test is trying to check that adding a gateway to a network that is not external returns 400. If a network without a subnet is another condition of error.","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"63d43ec4e4ca6cc8889ea4c719e05310912dcaf3","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                          external_gateway_info\u003d{"},{"line_number":49,"context_line":"                              \u0027network_id\u0027: self.network[\u0027id\u0027]})"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":52,"context_line":"    def test_router_remove_interface_in_use_returns_409(self):"},{"line_number":53,"context_line":"        self.client.add_router_interface_with_subnet_id("},{"line_number":54,"context_line":"            self.router[\u0027id\u0027], self.subnet[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9lL8%3D","line":51,"updated":"2013-12-10 00:40:47.000000000","message":"Same here","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"374e5980bb590d9a493fc94d482392570a437eae","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                          external_gateway_info\u003d{"},{"line_number":49,"context_line":"                              \u0027network_id\u0027: self.network[\u0027id\u0027]})"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":52,"context_line":"    def test_router_remove_interface_in_use_returns_409(self):"},{"line_number":53,"context_line":"        self.client.add_router_interface_with_subnet_id("},{"line_number":54,"context_line":"            self.router[\u0027id\u0027], self.subnet[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9bmU%3D","line":51,"in_reply_to":"AAAATn%2F9lL8%3D","updated":"2013-12-11 15:44:51.000000000","message":"Thanks!","commit_id":"38f872cdeae3f2058dd8ee0e7751b5e33dfdc497"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"30a94cb0566449d5352cb2990ebc031f3cd7f055","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class NegativeRoutersTest(base.BaseRouterTest):"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9bYQ%3D","line":24,"updated":"2013-12-11 16:29:51.000000000","message":"I think RoutersNegativeTest name is better :)","commit_id":"62b7563813d8fbe6d249bf63aa1e1aa5e8f339e9"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"fedb4b28b17c4dc92ecafb8162f03efb26b26d7c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class NegativeRoutersTest(base.BaseRouterTest):"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9atY%3D","line":24,"in_reply_to":"AAAATn%2F9bYQ%3D","updated":"2013-12-11 18:38:31.000000000","message":"thanks!","commit_id":"62b7563813d8fbe6d249bf63aa1e1aa5e8f339e9"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"620d531be7ddd6fba7fb7c05b18ed27b2bea8431","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":43,"context_line":"    def test_router_add_gateway_net_not_external_returns_400(self):"},{"line_number":44,"context_line":"        self.create_subnet(self.network)"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":46,"context_line":"                          self.client.update_router,"},{"line_number":47,"context_line":"                          self.router[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9as8%3D","line":44,"updated":"2013-12-11 18:41:17.000000000","message":"I don\u0027t think this line is needed.","commit_id":"62b7563813d8fbe6d249bf63aa1e1aa5e8f339e9"}]}
