)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"fb45138d30e89fc4e20ab7079255077eef31f92b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     varun yadav \u003cvarun.yadav@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-08-05 22:48:51 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Router  API Tests Enhancements"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add test to creaation of router with snat rule"},{"line_number":10,"context_line":"  - Create a router with default attributes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"baada198_7179d3c4","line":7,"updated":"2014-08-06 07:55:04.000000000","message":"2 blanks between \"Router\" and \"API\"","commit_id":"5c983a14008af706c251859db15a6e8239ce33b8"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"fb45138d30e89fc4e20ab7079255077eef31f92b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Router  API Tests Enhancements"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add test to creaation of router with snat rule"},{"line_number":10,"context_line":"  - Create a router with default attributes"},{"line_number":11,"context_line":"  - Verify the default snat attributes"},{"line_number":12,"context_line":"  - Creating a router using admin priviledges for a tenant"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"baada198_d168dff6","line":9,"updated":"2014-08-06 07:55:04.000000000","message":"Typo: creaation \u003d creation","commit_id":"5c983a14008af706c251859db15a6e8239ce33b8"}],"tempest/api/network/test_routers.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5e6a0a5d878084c325ebbbe917898fe70005857a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            # Verify snat attributes after router creation"},{"line_number":142,"context_line":"            self._verify_router_gateway(create_body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":143,"context_line":"              {\u0027network_id\u0027: CONF.network.public_network_id,"},{"line_number":144,"context_line":"              \u0027enable_snat\u0027: enable_snat})"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":147,"context_line":"    def test_add_remove_router_interface_with_subnet_id(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_bfd39bff","line":144,"updated":"2014-07-21 11:55:04.000000000","message":"This dictionary you use twice\n\n    {\u0027network_id\u0027: CONF.network.public_network_id,\n     \u0027enable_snat\u0027: enable_snat}\n\nI suggest to create it once and then just use it.\n\n     external_gateway_info \u003d {\u0027network_id\u0027: CONF.network.public_network_id,\n                              \u0027enable_snat\u0027: enable_snat}\n     resp, create_body \u003d self.admin_client.create_router(...,  external_gateway_info\u003dexternal_gateway_info)","commit_id":"ad5f5a870c87a5a9a51480867b6fca488e781279"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dd422951ffc526da9dd7063ce0a3e668adb0095f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":114,"context_line":"    def test_create_router_with_snat_rule(self):"},{"line_number":115,"context_line":"        # Create a router"},{"line_number":116,"context_line":"        name \u003d data_utils.rand_name(\u0027router-\u0027)"},{"line_number":117,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"},{"line_number":118,"context_line":"            \"network_id\": CONF.network.public_network_id})"},{"line_number":119,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_fb52f9dc","line":116,"updated":"2014-07-23 13:39:26.000000000","message":"\u0027-\u0027 is not necessary, it is already created by rand_name","commit_id":"1ef1647dd322fd7b7567130ff88e0964093581d8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dd422951ffc526da9dd7063ce0a3e668adb0095f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        # Creating a router enabling snat attributes"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        enable_snat_states \u003d [False, True]"},{"line_number":132,"context_line":"        name \u003d data_utils.rand_name(\u0027snat-router-\u0027)"},{"line_number":133,"context_line":"        for enable_snat in enable_snat_states:"},{"line_number":134,"context_line":"            external_gateway_info \u003d {"},{"line_number":135,"context_line":"                \u0027network_id\u0027: CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_1b4ecd38","line":132,"updated":"2014-07-23 13:39:26.000000000","message":"the same","commit_id":"1ef1647dd322fd7b7567130ff88e0964093581d8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dd422951ffc526da9dd7063ce0a3e668adb0095f","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                \u0027network_id\u0027: CONF.network.public_network_id,"},{"line_number":136,"context_line":"                \u0027enable_snat\u0027: enable_snat}"},{"line_number":137,"context_line":"            resp, create_body \u003d self.admin_client.create_router("},{"line_number":138,"context_line":"            name, tenant_id\u003drouter_tenant_id,"},{"line_number":139,"context_line":"            external_gateway_info\u003dexternal_gateway_info)"},{"line_number":140,"context_line":"            self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":141,"context_line":"            self.addCleanup(self.client.delete_router,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_3b80f148","line":138,"updated":"2014-07-23 13:39:26.000000000","message":"Please, move arguments like this \n\n     resp, create_body \u003d self.admin_client.create_router(\t\n         name, tenant_id\u003drouter_tenant_id,\t\n         external_gateway_info\u003dexternal_gateway_info)\n\nAs it is now it worse reading and understanding.","commit_id":"1ef1647dd322fd7b7567130ff88e0964093581d8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5fc253afcbb0aaf20b52bc36b72891443f7e20e6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                {\u0027network_id\u0027: CONF.network.public_network_id,"},{"line_number":122,"context_line":"                \u0027enable_snat\u0027: True})"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        self.addCleanup(self._delete_router,"},{"line_number":125,"context_line":"                       body[\u0027router\u0027][\u0027id\u0027])"},{"line_number":126,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":127,"context_line":"        router_tenant_id \u003d router[\u0027tenant_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_7f8f2ecd","line":124,"updated":"2014-07-28 09:02:04.000000000","message":"This should be put right after line 119.","commit_id":"ca8a9fb922f8332d70acab1da7cf2b3a48f87b0d"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"e0493634bd941019bdf2def447c1baadc4b810d1","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        self._verify_router_gateway(body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":123,"context_line":"                {\u0027network_id\u0027: CONF.network.public_network_id,"},{"line_number":124,"context_line":"                \u0027enable_snat\u0027: True})"},{"line_number":125,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":126,"context_line":"        router_tenant_id \u003d router[\u0027tenant_id\u0027]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Creating a router enabling snat attributes"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_9504767e","line":125,"updated":"2014-07-30 14:55:59.000000000","message":"This variable is never used, so I suggest removing it.","commit_id":"c0e675b69458c6d1aed630494f337365be855e15"},{"author":{"_account_id":12464,"name":"varun kumar yadav","email":"varun.yadav@hp.com","username":"varunkumaryadav"},"change_message_id":"aaa1c76face42b5ed49e40444bd10437d6234662","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        self._verify_router_gateway(body[\u0027router\u0027][\u0027id\u0027],"},{"line_number":123,"context_line":"                {\u0027network_id\u0027: CONF.network.public_network_id,"},{"line_number":124,"context_line":"                \u0027enable_snat\u0027: True})"},{"line_number":125,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":126,"context_line":"        router_tenant_id \u003d router[\u0027tenant_id\u0027]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Creating a router enabling snat attributes"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e14cc741","line":125,"in_reply_to":"baada198_9504767e","updated":"2014-08-01 11:16:27.000000000","message":"Done","commit_id":"c0e675b69458c6d1aed630494f337365be855e15"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"5587879eeec3dcf6ce589494be75881d8c692830","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"baada198_157d71e7","updated":"2014-08-01 13:13:14.000000000","message":"Please remove this extra line 125","commit_id":"b59be9c3de33e7f43e41be4bec70efd3f332e9d0"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"0aae796e28a65b0e10327f8e08707f066a1db8bf","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.requires_ext(extension\u003d\u0027ext-gw-mode\u0027, service\u003d\u0027network\u0027)"},{"line_number":114,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Creating router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_69a10aa8","line":115,"updated":"2014-08-05 15:21:16.000000000","message":"IMHO, this test can be easily squashed into test_create_show_list_update_delete_router by only adding verification of snat value. Is there a specific reason for making it a separate test?","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"89542e9f6427abb17ac212bdbe60f3ff8e42838a","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.requires_ext(extension\u003d\u0027ext-gw-mode\u0027, service\u003d\u0027network\u0027)"},{"line_number":114,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Creating router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_db7d6020","line":115,"in_reply_to":"baada198_2ea0df41","updated":"2014-08-06 06:27:06.000000000","message":"Ah, yes, you are right about it, I just missed that most important point.","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":12464,"name":"varun kumar yadav","email":"varun.yadav@hp.com","username":"varunkumaryadav"},"change_message_id":"18fb1a2bc4ad61980568d314eb60e7615c313f22","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.requires_ext(extension\u003d\u0027ext-gw-mode\u0027, service\u003d\u0027network\u0027)"},{"line_number":114,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Creating router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2ea0df41","line":115,"in_reply_to":"baada198_69a10aa8","updated":"2014-08-06 05:55:49.000000000","message":"HI Elena .. Thanks for reviewing the code.. one reason why it should be a separate test case is:-  All plugins may not support ext-gw-mode , so in that case if this test is combined with test_create_show_list_update_delete_router, this test may fail for those plugins.\nSo in my opinion it is better to have this as a separate test case., please let me know your opinion.?","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"0aae796e28a65b0e10327f8e08707f066a1db8bf","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    @test.requires_ext(extension\u003d\u0027ext-gw-mode\u0027, service\u003d\u0027network\u0027)"},{"line_number":114,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Creating router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"},{"line_number":119,"context_line":"            \"network_id\": CONF.network.public_network_id})"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_c945b617","line":116,"updated":"2014-08-05 15:21:16.000000000","message":"nit: Create a router with default snat rule","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":12464,"name":"varun kumar yadav","email":"varun.yadav@hp.com","username":"varunkumaryadav"},"change_message_id":"18fb1a2bc4ad61980568d314eb60e7615c313f22","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    @test.requires_ext(extension\u003d\u0027ext-gw-mode\u0027, service\u003d\u0027network\u0027)"},{"line_number":114,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Creating router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"},{"line_number":119,"context_line":"            \"network_id\": CONF.network.public_network_id})"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_09223554","line":116,"in_reply_to":"baada198_c945b617","updated":"2014-08-06 05:55:49.000000000","message":"Done","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"0aae796e28a65b0e10327f8e08707f066a1db8bf","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":128,"context_line":"    def test_create_router_with_snat_explicit(self):"},{"line_number":129,"context_line":"        name \u003d data_utils.rand_name(\u0027snat-router\u0027)"},{"line_number":130,"context_line":"        # Creating a router enabling snat attributes"},{"line_number":131,"context_line":"        enable_snat_states \u003d [False, True]"},{"line_number":132,"context_line":"        for enable_snat in enable_snat_states:"},{"line_number":133,"context_line":"            external_gateway_info \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_294d523c","line":130,"updated":"2014-08-05 15:21:16.000000000","message":"ditto","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":12464,"name":"varun kumar yadav","email":"varun.yadav@hp.com","username":"varunkumaryadav"},"change_message_id":"18fb1a2bc4ad61980568d314eb60e7615c313f22","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":128,"context_line":"    def test_create_router_with_snat_explicit(self):"},{"line_number":129,"context_line":"        name \u003d data_utils.rand_name(\u0027snat-router\u0027)"},{"line_number":130,"context_line":"        # Creating a router enabling snat attributes"},{"line_number":131,"context_line":"        enable_snat_states \u003d [False, True]"},{"line_number":132,"context_line":"        for enable_snat in enable_snat_states:"},{"line_number":133,"context_line":"            external_gateway_info \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2927f964","line":130,"in_reply_to":"baada198_294d523c","updated":"2014-08-06 05:55:49.000000000","message":"Done","commit_id":"9bd4c58e6208889be474f5159394cf31dfa92bda"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"fb45138d30e89fc4e20ab7079255077eef31f92b","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    def test_create_router_with_default_snat_value(self):"},{"line_number":116,"context_line":"        # Create a router with default snat rule"},{"line_number":117,"context_line":"        name \u003d data_utils.rand_name(\u0027router\u0027)"},{"line_number":118,"context_line":"        resp, body \u003d self.client.create_router(name, external_gateway_info\u003d{"},{"line_number":119,"context_line":"            \"network_id\": CONF.network.public_network_id})"},{"line_number":120,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":121,"context_line":"        self.addCleanup(self._delete_router, body[\u0027router\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_14d8857f","line":118,"updated":"2014-08-06 07:55:04.000000000","message":"Why don\u0027t you use self._create_router(name) here? With that you don\u0027t need the addCleanup anylonger.","commit_id":"5c983a14008af706c251859db15a6e8239ce33b8"}]}
