)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"085b647f510dbab708c092d97cf4d54fcc44d9b2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Salvatore Orlando \u003csalv.orlando@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-05-14 14:03:30 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CLI support for disabling SNAT/DNAT"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"blueprint l3-ext-gw-modes"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAO3%2F%2F%2F4s%3D","line":7,"updated":"2013-05-15 09:08:30.000000000","message":"Please remove DNAT","commit_id":"c6cf80cde5c2034e8410c629de69527aa367af7d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Salvatore Orlando \u003csalv.orlando@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-05-14 14:03:30 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CLI support for disabling SNAT/DNAT"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"blueprint l3-ext-gw-modes"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAO3%2F%2F%2Fh8%3D","line":7,"in_reply_to":"AAAAO3%2F%2F%2F4s%3D","updated":"2013-05-15 11:20:35.000000000","message":"Sure!","commit_id":"c6cf80cde5c2034e8410c629de69527aa367af7d"}],"quantumclient/quantum/v2_0/router.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"085b647f510dbab708c092d97cf4d54fcc44d9b2","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            \u0027external_network_id\u0027, metavar\u003d\u0027external-network-id\u0027,"},{"line_number":168,"context_line":"            help\u003d\u0027ID of the external network for the gateway\u0027)"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--disable-snat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":171,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":172,"context_line":"        parser.add_argument("},{"line_number":173,"context_line":"            \u0027--disable-dnat\u0027, action\u003d\u0027store_false\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2FyFs%3D","line":170,"updated":"2013-03-28 07:55:22.000000000","message":"Could you add \"dest\u003denable_snat\" ? If so, the variable name matches its value (true/false).\n\nIt is a little confusing to me that parsed_args.disable_snat\u003dFalse means \"disabling SNAT\"","commit_id":"ce58aece323f3f5fd13a57f968e033fa25351f4e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":167,"context_line":"            \u0027external_network_id\u0027, metavar\u003d\u0027external-network-id\u0027,"},{"line_number":168,"context_line":"            help\u003d\u0027ID of the external network for the gateway\u0027)"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--disable-snat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":171,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":172,"context_line":"        parser.add_argument("},{"line_number":173,"context_line":"            \u0027--disable-dnat\u0027, action\u003d\u0027store_false\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2Fwh8%3D","line":170,"in_reply_to":"AAAAOH%2F%2Fwnw%3D","updated":"2013-03-28 19:18:57.000000000","message":"Sure - just keep in mind bw compatibility!\nI will fix this stuff to make it clearer to users.","commit_id":"ce58aece323f3f5fd13a57f968e033fa25351f4e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"085b647f510dbab708c092d97cf4d54fcc44d9b2","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            \u0027external_network_id\u0027, metavar\u003d\u0027external-network-id\u0027,"},{"line_number":168,"context_line":"            help\u003d\u0027ID of the external network for the gateway\u0027)"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--disable-snat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":171,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":172,"context_line":"        parser.add_argument("},{"line_number":173,"context_line":"            \u0027--disable-dnat\u0027, action\u003d\u0027store_false\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2Fwnw%3D","line":170,"in_reply_to":"AAAAOH%2F%2FxDI%3D","updated":"2013-03-28 17:45:37.000000000","message":"I agree that we should avoid two different styles to store boolean value. By grepping the code, admin_state_down is the only exception though it is first implemented. We can find no_gateway, disable_dhcp and other boolean flags with store_true.\n\ntrue/false of admin_state_down is confusing to me. My preference is to to add dest\u003dadmin_state to all admin_state_down options. If this direction is good, i will post a patch.","commit_id":"ce58aece323f3f5fd13a57f968e033fa25351f4e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":167,"context_line":"            \u0027external_network_id\u0027, metavar\u003d\u0027external-network-id\u0027,"},{"line_number":168,"context_line":"            help\u003d\u0027ID of the external network for the gateway\u0027)"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--disable-snat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":171,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":172,"context_line":"        parser.add_argument("},{"line_number":173,"context_line":"            \u0027--disable-dnat\u0027, action\u003d\u0027store_false\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2FxDI%3D","line":170,"in_reply_to":"AAAAOH%2F%2FyFs%3D","updated":"2013-03-28 12:27:25.000000000","message":"Indeed this gets converted into enable_snat in the api call.\nIt\u0027s the same as admin_state_down, which I found confusing too.\n\nI thought however that having different styles of doing stuff would lead to even more confusion.","commit_id":"ce58aece323f3f5fd13a57f968e033fa25351f4e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"085b647f510dbab708c092d97cf4d54fcc44d9b2","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027--disable-snat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":171,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":172,"context_line":"        parser.add_argument("},{"line_number":173,"context_line":"            \u0027--disable-dnat\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":174,"context_line":"            help\u003d\u0027Disable Destination NAT on the router gateway\u0027)"},{"line_number":175,"context_line":"        return parser"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOH%2F%2FyFo%3D","line":173,"updated":"2013-03-28 07:55:22.000000000","message":"Ditto","commit_id":"ce58aece323f3f5fd13a57f968e033fa25351f4e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"085b647f510dbab708c092d97cf4d54fcc44d9b2","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":173,"context_line":"        snat.add_argument("},{"line_number":174,"context_line":"            \u0027--enable-snat\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027enable_snat\u0027,"},{"line_number":175,"context_line":"            help\u003d\u0027Enable Source NAT on the router gateway\u0027)"},{"line_number":176,"context_line":"        return parser"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def run(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAO3%2F%2F%2FtY%3D","line":175,"updated":"2013-05-15 09:08:30.000000000","message":"The default value of enable_snat depends on the order of add_argument. When I changed the order of enable/disable-snat, the default value was changed from True to False. I would like to avoid a fragile way which depends on the order of the declarations.\n\nIf the default value of enable_snat is True, don\u0027t we need --enable-snat?","commit_id":"c6cf80cde5c2034e8410c629de69527aa367af7d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":172,"context_line":"            help\u003d\u0027Disable Source NAT on the router gateway\u0027)"},{"line_number":173,"context_line":"        snat.add_argument("},{"line_number":174,"context_line":"            \u0027--enable-snat\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027enable_snat\u0027,"},{"line_number":175,"context_line":"            help\u003d\u0027Enable Source NAT on the router gateway\u0027)"},{"line_number":176,"context_line":"        return parser"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def run(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAO3%2F%2F%2Fhw%3D","line":175,"in_reply_to":"AAAAO3%2F%2F%2FtY%3D","updated":"2013-05-15 11:20:35.000000000","message":"I just wanted to provide another option for explicitly enabling snat on router where it\u0027s disabled.\n\nYou\u0027re right this is not great for maintanability however.\nI will either make it robust or remove the --enable flag","commit_id":"c6cf80cde5c2034e8410c629de69527aa367af7d"},{"author":{"_account_id":1038,"name":"Jack McCann","username":"jack-mccann"},"change_message_id":"78dffc331d4cd04b15a17c5e1cdbb0149b2d35e4","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        quantum_client.add_gateway_router("},{"line_number":183,"context_line":"            _router_id,"},{"line_number":184,"context_line":"            {\u0027network_id\u0027: _ext_net_id,"},{"line_number":185,"context_line":"             \u0027enable_snat\u0027: parsed_args.enable_snat})"},{"line_number":186,"context_line":"        print \u003e\u003eself.app.stdout, ("},{"line_number":187,"context_line":"            _(\u0027Set gateway for router %s\u0027) % parsed_args.router_id)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQn%2F%2FFHc%3D","line":185,"updated":"2013-08-07 14:31:15.000000000","message":"This change seems to be sending \"enable_snat\":true by default, which breaks router-gateway-set for non-admin users.  I\u0027m posting this comment here to draw attention to https://bugs.launchpad.net/neutron/+bug/1209027","commit_id":"2815be00b02320c22b04e888b573ab040e3f82c5"}],"tests/unit/test_cli20_router.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"unresolved":false,"context_lines":[{"line_number":151,"context_line":"                                          {\u0027subnet_id\u0027: \u0027subnetid\u0027}"},{"line_number":152,"context_line":"                                          )"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_set_gateway(self):"},{"line_number":155,"context_line":"        \"\"\"Set external gateway for router: myid externalid.\"\"\""},{"line_number":156,"context_line":"        resource \u003d \u0027router\u0027"},{"line_number":157,"context_line":"        cmd \u003d SetGatewayRouter(MyApp(sys.stdout), None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FxRM%3D","line":154,"updated":"2013-04-23 22:35:19.000000000","message":"would it be useful to add tests for the other cases, e.g. in the other dnat/snat combinations?","commit_id":"fa065caa417a973e98d726c91b1b2689448be358"}]}
