)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5941374de7e5d83859fb60d38aee0778ad7d9ce","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajeev \u003crajeev_grover@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-08-26 17:54:40 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop tracking connections in FIP Namespace"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"connections to external network using floating IPs do not"},{"line_number":10,"context_line":"need to be tracked in FIP namespace because they are being"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1abeadc6_20e688e8","line":7,"updated":"2014-08-29 05:34:01.000000000","message":"Bug report mention that this is a DVR issue, in this patch and commit message there is no mention of DVR; I think it would be worth clarifying what is the target of this fix.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"35caf48afdae35288236c3a6776a539008001a95","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajeev \u003crajeev_grover@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-08-26 17:54:40 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop tracking connections in FIP Namespace"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"connections to external network using floating IPs do not"},{"line_number":10,"context_line":"need to be tracked in FIP namespace because they are being"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1abeadc6_907a33b8","line":7,"in_reply_to":"1abeadc6_20e688e8","updated":"2014-08-29 14:43:10.000000000","message":"Armando: good point, will add DVR once have enough inputs to roll the patch.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"a9feacd0054223eae9e40efb5994c1af74f840e9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajeev \u003crajeev_grover@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-08-26 17:54:40 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop tracking connections in FIP Namespace"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"connections to external network using floating IPs do not"},{"line_number":10,"context_line":"need to be tracked in FIP namespace because they are being"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1abeadc6_f5c1822f","line":7,"in_reply_to":"1abeadc6_907a33b8","updated":"2014-08-30 05:12:09.000000000","message":"sounds good, thanks!","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"a240c941a9a3dd51b2a3ebf390c87ef030c96577","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajeev \u003crajeev_grover@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-08-26 17:54:40 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop tracking connections in FIP Namespace"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"connections to external network using floating IPs do not"},{"line_number":10,"context_line":"need to be tracked in FIP namespace because they are being"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa98f980_a8e22401","line":7,"in_reply_to":"1abeadc6_f5c1822f","updated":"2014-09-02 17:34:38.000000000","message":"Done. Added reference to DVR in commit message.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"}],"neutron/agent/l3_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7ee261e656d7091c5495a3685027cbb63169c04b","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"            root_helper\u003dself.root_helper, namespace\u003dfip_ns_name,"},{"line_number":1476,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1477,"context_line":"        # no connection tracking needed in fip namespace"},{"line_number":1478,"context_line":"        rule \u003d (\u0027PREROUTING\u0027, \u0027-j NOTRACK\u0027)"},{"line_number":1479,"context_line":"        ri.fip_iptables_manager.ipv4[\u0027raw\u0027].add_rule(*rule)"},{"line_number":1480,"context_line":"        ri.fip_iptables_manager.apply()"},{"line_number":1481,"context_line":"        interface_name \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_111fcd0a","line":1478,"updated":"2014-08-25 15:20:47.000000000","message":"nit: Can you just move these two arguments into the add_rule() call below?\n\nAlso, iptables-save has a slightly different syntax from iptables, so you should specify the rule as \"-j CT --notrack\" else iptables_manager won\u0027t be able to match this, and will start adding duplicates.","commit_id":"1737a1e9e6d393d8ec8a330171ffbd79f1d5089e"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"bb4c556424a1a9d1090772cc06d43071979d4160","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"            root_helper\u003dself.root_helper, namespace\u003dfip_ns_name,"},{"line_number":1476,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1477,"context_line":"        # no connection tracking needed in fip namespace"},{"line_number":1478,"context_line":"        rule \u003d (\u0027PREROUTING\u0027, \u0027-j NOTRACK\u0027)"},{"line_number":1479,"context_line":"        ri.fip_iptables_manager.ipv4[\u0027raw\u0027].add_rule(*rule)"},{"line_number":1480,"context_line":"        ri.fip_iptables_manager.apply()"},{"line_number":1481,"context_line":"        interface_name \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_abf85d4a","line":1478,"in_reply_to":"1abeadc6_111fcd0a","updated":"2014-08-25 20:05:07.000000000","message":"Brian: thanks, will fix the nit.\n\non the rule syntax, the iptables-save generates the same syntax as currently coded --see below. Does this address your concern, otherwise can you clarify?\n\n# Generated by iptables-save v1.4.12 on Mon Aug 25 12:36:52 2014\n*raw\n:PREROUTING ACCEPT [124:23726]\n:OUTPUT ACCEPT [0:0]\n:neutron-l3-agent-OUTPUT - [0:0]\n:neutron-l3-agent-PREROUTING - [0:0]\n-A PREROUTING -j neutron-l3-agent-PREROUTING\n-A OUTPUT -j neutron-l3-agent-OUTPUT\n-A neutron-l3-agent-PREROUTING -j NOTRACK","commit_id":"1737a1e9e6d393d8ec8a330171ffbd79f1d5089e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3f65be2801e6db015512f5691d0faf6f2b75a992","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1477,"context_line":"        # no connection tracking needed in fip namespace"},{"line_number":1478,"context_line":"        ri.fip_iptables_manager.ipv4[\u0027raw\u0027].add_rule(\u0027PREROUTING\u0027,"},{"line_number":1479,"context_line":"                                                     \u0027-j NOTRACK\u0027)"},{"line_number":1480,"context_line":"        ri.fip_iptables_manager.apply()"},{"line_number":1481,"context_line":"        interface_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ext_device_name(self.agent_gateway_port[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_31883ce7","line":1479,"updated":"2014-08-25 21:03:01.000000000","message":"The xt_NOTRACK code that supports \u0027-j NOTRACK\u0027 is deprecated (but still works), and \u0027-j CT --notrack\u0027 is the preferred way now, I should have just said that in the first review.","commit_id":"5545cf4fda2a1379ee78fc0e7ffd6fb4f3a726db"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"72912bce4f1838bdc1e8f3b1c5654e590f0df86a","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1477,"context_line":"        # no connection tracking needed in fip namespace"},{"line_number":1478,"context_line":"        ri.fip_iptables_manager.ipv4[\u0027raw\u0027].add_rule(\u0027PREROUTING\u0027,"},{"line_number":1479,"context_line":"                                                     \u0027-j NOTRACK\u0027)"},{"line_number":1480,"context_line":"        ri.fip_iptables_manager.apply()"},{"line_number":1481,"context_line":"        interface_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ext_device_name(self.agent_gateway_port[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_acd4c0bd","line":1479,"in_reply_to":"1abeadc6_31883ce7","updated":"2014-08-26 23:25:02.000000000","message":"Done","commit_id":"5545cf4fda2a1379ee78fc0e7ffd6fb4f3a726db"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"51cc1a73fcdb2fb34bdfeee0a11be3ee891c5872","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1477,"context_line":"        # no connection tracking needed in fip namespace"},{"line_number":1478,"context_line":"        ri.fip_iptables_manager.ipv4[\u0027raw\u0027].add_rule(\u0027PREROUTING\u0027,"},{"line_number":1479,"context_line":"                                                     \u0027-j NOTRACK\u0027)"},{"line_number":1480,"context_line":"        ri.fip_iptables_manager.apply()"},{"line_number":1481,"context_line":"        interface_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ext_device_name(self.agent_gateway_port[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_cc2bef31","line":1479,"in_reply_to":"1abeadc6_31883ce7","updated":"2014-08-25 21:21:45.000000000","message":"knew there would be a reason :) . I will make the change in the next patch.","commit_id":"5545cf4fda2a1379ee78fc0e7ffd6fb4f3a726db"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5941374de7e5d83859fb60d38aee0778ad7d9ce","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"        fip_ns_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ns_name(str(network_id)))"},{"line_number":1483,"context_line":"        self._create_namespace(fip_ns_name)"},{"line_number":1484,"context_line":"        ri.fip_iptables_manager \u003d iptables_manager.IptablesManager("},{"line_number":1485,"context_line":"            root_helper\u003dself.root_helper, namespace\u003dfip_ns_name,"},{"line_number":1486,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1487,"context_line":"        # no connection tracking needed in fip namespace"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_806f5c91","line":1484,"updated":"2014-08-29 05:34:01.000000000","message":"do we really need to hold this namespace? It seems this is the only place where this is used.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"a9feacd0054223eae9e40efb5994c1af74f840e9","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"        fip_ns_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ns_name(str(network_id)))"},{"line_number":1483,"context_line":"        self._create_namespace(fip_ns_name)"},{"line_number":1484,"context_line":"        ri.fip_iptables_manager \u003d iptables_manager.IptablesManager("},{"line_number":1485,"context_line":"            root_helper\u003dself.root_helper, namespace\u003dfip_ns_name,"},{"line_number":1486,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1487,"context_line":"        # no connection tracking needed in fip namespace"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_15bd1eb1","line":1484,"in_reply_to":"1abeadc6_5ac7da44","updated":"2014-08-30 05:12:09.000000000","message":"ok, sounds fair.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"dd097ec3a16ba2f516793f3120083761123fc507","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"        fip_ns_name \u003d ("},{"line_number":1482,"context_line":"            self.get_fip_ns_name(str(network_id)))"},{"line_number":1483,"context_line":"        self._create_namespace(fip_ns_name)"},{"line_number":1484,"context_line":"        ri.fip_iptables_manager \u003d iptables_manager.IptablesManager("},{"line_number":1485,"context_line":"            root_helper\u003dself.root_helper, namespace\u003dfip_ns_name,"},{"line_number":1486,"context_line":"            use_ipv6\u003dself.use_ipv6)"},{"line_number":1487,"context_line":"        # no connection tracking needed in fip namespace"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_5ac7da44","line":1484,"in_reply_to":"1abeadc6_806f5c91","updated":"2014-08-29 13:47:50.000000000","message":"Armando: Yes, I pondered on it too a bit. To comply with the framework and to benefit from the capabilities that will get built upon through the evolution of IptablesManager this looked like the right approach.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"}],"neutron/agent/linux/iptables_manager.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7ee261e656d7091c5495a3685027cbb63169c04b","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        for ip_version in builtin_chains:"},{"line_number":324,"context_line":"            if ip_version \u003d\u003d 4:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_31912953","line":321,"updated":"2014-08-25 15:20:47.000000000","message":"Do you need the OUTPUT chain here?  Maybe a test is requiring it?","commit_id":"1737a1e9e6d393d8ec8a330171ffbd79f1d5089e"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"bb4c556424a1a9d1090772cc06d43071979d4160","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        for ip_version in builtin_chains:"},{"line_number":324,"context_line":"            if ip_version \u003d\u003d 4:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_2ba44d56","line":321,"in_reply_to":"1abeadc6_31912953","updated":"2014-08-25 20:05:07.000000000","message":"yes, need for a bunch of tests.","commit_id":"1737a1e9e6d393d8ec8a330171ffbd79f1d5089e"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5941374de7e5d83859fb60d38aee0778ad7d9ce","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                {\u0027nat\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":316,"context_line":"            builtin_chains[4].update({\u0027nat\u0027: [\u0027PREROUTING\u0027,"},{"line_number":317,"context_line":"                                      \u0027OUTPUT\u0027, \u0027POSTROUTING\u0027]})"},{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_607ec01a","line":318,"updated":"2014-08-29 05:34:01.000000000","message":"is it okay to run this here unconditionally for any IptablesManager? (it looks like this would affect namespaces for centralized routers too)","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"dd097ec3a16ba2f516793f3120083761123fc507","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                {\u0027nat\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":316,"context_line":"            builtin_chains[4].update({\u0027nat\u0027: [\u0027PREROUTING\u0027,"},{"line_number":317,"context_line":"                                      \u0027OUTPUT\u0027, \u0027POSTROUTING\u0027]})"},{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_7a6ad681","line":318,"in_reply_to":"1abeadc6_607ec01a","updated":"2014-08-29 13:47:50.000000000","message":"Yes, IptablesManager can be seen as a utility to CRUD iptable rules into the kernel. All this is doing is adding ability to handle the \u0027raw\u0027 table in addition to nat and filter.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"a9feacd0054223eae9e40efb5994c1af74f840e9","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                {\u0027nat\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":316,"context_line":"            builtin_chains[4].update({\u0027nat\u0027: [\u0027PREROUTING\u0027,"},{"line_number":317,"context_line":"                                      \u0027OUTPUT\u0027, \u0027POSTROUTING\u0027]})"},{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_35df7a0e","line":318,"in_reply_to":"1abeadc6_7a6ad681","updated":"2014-08-30 05:12:09.000000000","message":"got it, thanks for clarifying this.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"997df162418d5e6cab5125529b454f98c321b76c","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                                      \u0027OUTPUT\u0027, \u0027POSTROUTING\u0027]})"},{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        for ip_version in builtin_chains:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_c1acac38","line":320,"updated":"2014-08-31 06:39:10.000000000","message":"Shouldn\u0027t conntrack be disabled regardless of whether or not we are operating in a stateless fashion?","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"},{"author":{"_account_id":9077,"name":"Rajeev Grover","email":"rgrover687@gmail.com","username":"rajeev"},"change_message_id":"a7167ee38054681ea145726c1f1ce7b22c619579","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                                      \u0027OUTPUT\u0027, \u0027POSTROUTING\u0027]})"},{"line_number":318,"context_line":"            self.ipv4.update("},{"line_number":319,"context_line":"                {\u0027raw\u0027: IptablesTable(binary_name\u003dself.wrap_name)})"},{"line_number":320,"context_line":"            builtin_chains[4].update({\u0027raw\u0027: [\u0027PREROUTING\u0027,"},{"line_number":321,"context_line":"                                      \u0027OUTPUT\u0027]})"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        for ip_version in builtin_chains:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_327945fd","line":320,"in_reply_to":"fa98f980_c1acac38","updated":"2014-08-31 16:18:03.000000000","message":"Conntrack is being disabled only for the fip namespace and that has the IptablesManager in the default state_less\u003dfalse state. So am limiting to the scope of change. \nif need be, code for disabling in a stateless fashion can be taken up subsequently, though haven\u0027t seen an example use yet.","commit_id":"05198194fc551bbe2a50f9d24adf3807e3169bf8"}],"neutron/tests/unit/test_iptables_manager.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e85282a4e798993d90399eefc9055ace1091f8ae","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                    \u0027COMMIT\\n\u0027"},{"line_number":195,"context_line":"                    \u0027# Completed by iptables_manager\\n\u0027 % iptables_args)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        raw_dump \u003d (\u0027# Generated by iptables_manager\\n\u0027"},{"line_number":198,"context_line":"                    \u0027*raw\\n\u0027"},{"line_number":199,"context_line":"                    \u0027:%(bn)s-OUTPUT - [0:0]\\n\u0027"},{"line_number":200,"context_line":"                    \u0027:%(bn)s-PREROUTING - [0:0]\\n\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_5a470277","line":197,"updated":"2014-09-04 17:26:34.000000000","message":"this text is replicated here from line 63, 305, and 663; granted that the iptables_args is parametrized, but this makes it more difficult to tweak this text in the future than it needs to be, increasing the chance of mistakes and merge conflicts. If I were you I\u0027d explore ways to save copying and pasting this text all over the place.","commit_id":"99cf548acde57d7ecf8ada2177b15a0cfe5744be"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e85282a4e798993d90399eefc9055ace1091f8ae","unresolved":false,"context_lines":[{"line_number":662,"context_line":"            use_ipv6\u003duse_ipv6)"},{"line_number":663,"context_line":"        self.execute \u003d mock.patch.object(self.iptables, \"execute\").start()"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        raw_dump \u003d (\u0027# Generated by iptables_manager\\n\u0027"},{"line_number":666,"context_line":"                    \u0027*raw\\n\u0027"},{"line_number":667,"context_line":"                    \u0027:%(bn)s-OUTPUT - [0:0]\\n\u0027"},{"line_number":668,"context_line":"                    \u0027:%(bn)s-PREROUTING - [0:0]\\n\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_da7bf2bb","line":665,"updated":"2014-09-04 17:26:34.000000000","message":"isn\u0027t this RAW_DUMP?","commit_id":"99cf548acde57d7ecf8ada2177b15a0cfe5744be"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"047147e73d68c8ac52ac3036facd287f3717fd9b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            \u0027COMMIT\\n\u0027"},{"line_number":73,"context_line":"            \u0027# Completed by iptables_manager\\n\u0027 % iptables_args)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RAW_DUMP \u003d _generate_raw_dump(IPTABLES_ARG)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class IptablesManagerStateFulTestCase(base.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_2d5e4613","line":75,"updated":"2014-09-07 18:14:46.000000000","message":"I guess I would have done this like https://review.openstack.org/#/c/118274/ but it\u0027s already been merged.  But this works too.","commit_id":"0985ef78d43ae7d910669c3ca968fd977f2ea2ae"}]}
