)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"aebe04d2ecc64a8864c3089f11a3eafdc113b798","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-07-05 10:34:25 -0400"},{"line_number":4,"context_line":"Commit:     Margaret Frances \u003cmargaret_frances@cable.comcast.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-05 13:22:51 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Refactor FWaaS\u0027 L2 agent extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9ad45d7e_203ca9e1","line":7,"range":{"start_line":6,"start_character":0,"end_line":7,"end_character":40},"updated":"2016-08-09 18:08:20.000000000","message":"Should this not be L3 agent ?","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"d3905f29849aee454b56c77d94383a42aac11c57","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-07-05 10:34:25 -0400"},{"line_number":4,"context_line":"Commit:     Margaret Frances \u003cmargaret_frances@cable.comcast.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-05 13:22:51 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Refactor FWaaS\u0027 L2 agent extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9ad45d7e_af77e29d","line":7,"range":{"start_line":6,"start_character":0,"end_line":7,"end_character":40},"in_reply_to":"9ad45d7e_203ca9e1","updated":"2016-08-09 18:12:53.000000000","message":"Yes!  Oh boy.  I\u0027ll fix.","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"92d7572eeef6ad54f4dbde2c608bbcab2ff2770a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-07-05 10:34:25 -0400"},{"line_number":4,"context_line":"Commit:     Margaret Frances \u003cmargaret_frances@cable.comcast.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-05 13:22:51 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Refactor FWaaS\u0027 L2 agent extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9ad45d7e_ab5b552d","line":7,"range":{"start_line":6,"start_character":0,"end_line":7,"end_character":40},"in_reply_to":"9ad45d7e_8fc5be3d","updated":"2016-08-09 18:32:48.000000000","message":"Yes, perfect.  Thanks so much for thinking of these things.","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"538b92c4cc53de31ef24dc9b29c50b2c12cf1a7c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-07-05 10:34:25 -0400"},{"line_number":4,"context_line":"Commit:     Margaret Frances \u003cmargaret_frances@cable.comcast.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-05 13:22:51 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Refactor FWaaS\u0027 L2 agent extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9ad45d7e_8fc5be3d","line":7,"range":{"start_line":6,"start_character":0,"end_line":7,"end_character":40},"in_reply_to":"9ad45d7e_af77e29d","updated":"2016-08-09 18:20:50.000000000","message":"Thanks Margaret. While u are there, i think u can remove the WIP tag as well. Also, could u pls add a short description and  can u reference the fwaas v2 bp here.","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"9ca024baf9973c39cc6809324186c3eff22e1317","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the FWaaS v2 plugin and the FWaaS v2 driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Implements: blueprint fwaas-api-2.0"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9ad45d7e_6be73440","line":13,"updated":"2016-08-11 13:27:09.000000000","message":"You should probably add:\n\n    Depends-on: I6da92cb8b9fcbb603e120eababcf4ce711da3e30\n\nbecause of the dependency on https://review.openstack.org/#/c/339246/","commit_id":"2fd90022467f0c10997d78fd1333bf531ae3a923"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"aa6c179c70efe0dfb57e30a3f563d31a27391b03","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the FWaaS v2 plugin and the FWaaS v2 driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Implements: blueprint fwaas-api-2.0"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3ac371cc_d9a99fe1","line":13,"in_reply_to":"9ad45d7e_37fd9bb4","updated":"2016-08-14 10:49:26.000000000","message":"Correction: the FWaaS v2 plugin https://review.openstack.org/#/c/267046 :)","commit_id":"2fd90022467f0c10997d78fd1333bf531ae3a923"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"bdbd6c3316499664925bab3a472d7fcb0666a0c6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the FWaaS v2 plugin and the FWaaS v2 driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Implements: blueprint fwaas-api-2.0"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iff506bd11b83d396305e631f3dd95d44cf38fd63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9ad45d7e_37fd9bb4","line":13,"in_reply_to":"9ad45d7e_6be73440","updated":"2016-08-11 14:32:49.000000000","message":"Yes good.  And should I also say that it depends on (or is related to) the v2 FWaaS L3 agent extension/driver change (https://review.openstack.org/#/c/337699)?","commit_id":"2fd90022467f0c10997d78fd1333bf531ae3a923"}],"neutron_fwaas/services/firewall/agents/l3reference/firewall_l3_agent.py":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @log_helpers.log_method_call"},{"line_number":241,"context_line":"    def create_firewall(self, context, firewall, host):"},{"line_number":242,"context_line":"        \"\"\"Handle Rpc from plugin to create a firewall.\"\"\""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        router_ids \u003d self._get_router_ids_for_fw(context, firewall)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_b4be36fd","side":"PARENT","line":241,"updated":"2016-07-24 05:40:46.000000000","message":"Should we change into \"create_firewall_group\"?\n\"firewall_group\" is new resource name as FWaaS v2.","commit_id":"3f6777d5b8b696f94c672c11bd09b114c7f21075"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"0278629d81fb6cac8e9c651d725226d344b2be19","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @log_helpers.log_method_call"},{"line_number":241,"context_line":"    def create_firewall(self, context, firewall, host):"},{"line_number":242,"context_line":"        \"\"\"Handle Rpc from plugin to create a firewall.\"\"\""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        router_ids \u003d self._get_router_ids_for_fw(context, firewall)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_36340fdd","side":"PARENT","line":241,"in_reply_to":"bacf61ea_30109001","updated":"2016-08-03 10:40:25.000000000","message":"hi @sridark.  can you let me know your opinion about the above?  i\u0027ll then issue a new patchset depending on your response.","commit_id":"3f6777d5b8b696f94c672c11bd09b114c7f21075"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @log_helpers.log_method_call"},{"line_number":241,"context_line":"    def create_firewall(self, context, firewall, host):"},{"line_number":242,"context_line":"        \"\"\"Handle Rpc from plugin to create a firewall.\"\"\""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        router_ids \u003d self._get_router_ids_for_fw(context, firewall)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_30109001","side":"PARENT","line":241,"in_reply_to":"dada55a8_b4be36fd","updated":"2016-07-28 14:23:20.000000000","message":"I\u0027ll let Sridar speak to this as I know he wants to change this iteration of the FWaaS L3 agent as little as possible.","commit_id":"3f6777d5b8b696f94c672c11bd09b114c7f21075"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    @log_helpers.log_method_call"},{"line_number":360,"context_line":"    def delete_firewall(self, context, firewall, host):"},{"line_number":361,"context_line":"        \"\"\"Handle Rpc from plugin to delete a firewall.\"\"\""},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        router_ids \u003d self._get_router_ids_for_fw("}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_d4600aa7","side":"PARENT","line":360,"updated":"2016-07-24 05:40:46.000000000","message":"Same comment for L.258","commit_id":"3f6777d5b8b696f94c672c11bd09b114c7f21075"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        # configuration."},{"line_number":63,"context_line":"        if not self.neutron_service_plugins:"},{"line_number":64,"context_line":"            msg \u003d _(\"The L3 agent cannot obtain information about server \""},{"line_number":65,"context_line":"                    \"configuration due to lack of RPC support\")"},{"line_number":66,"context_line":"            LOG.error(msg)"},{"line_number":67,"context_line":"            raise SystemExit(1)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_8eca166d","line":65,"updated":"2016-07-24 05:40:46.000000000","message":"[nit] Missing period(\".\")","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        # configuration."},{"line_number":63,"context_line":"        if not self.neutron_service_plugins:"},{"line_number":64,"context_line":"            msg \u003d _(\"The L3 agent cannot obtain information about server \""},{"line_number":65,"context_line":"                    \"configuration due to lack of RPC support\")"},{"line_number":66,"context_line":"            LOG.error(msg)"},{"line_number":67,"context_line":"            raise SystemExit(1)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_02ab8575","line":65,"in_reply_to":"dada55a8_8eca166d","updated":"2016-07-28 14:23:20.000000000","message":"Thank you!  Will fix.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        fwaas_agent_enabled \u003d cfg.CONF.fwaas.enabled"},{"line_number":72,"context_line":"        if fwaas_plugin_configured and not fwaas_agent_enabled:"},{"line_number":73,"context_line":"            msg \u003d _(\"FWaaS plugin is configured in the server side, but \""},{"line_number":74,"context_line":"                    \"FWaaS is disabled in the L3 agent\")"},{"line_number":75,"context_line":"            LOG.error(msg)"},{"line_number":76,"context_line":"            raise SystemExit(1)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_ce9b6e71","line":74,"updated":"2016-07-24 05:40:46.000000000","message":"[nit] Missing period(\".\")","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        fwaas_agent_enabled \u003d cfg.CONF.fwaas.enabled"},{"line_number":72,"context_line":"        if fwaas_plugin_configured and not fwaas_agent_enabled:"},{"line_number":73,"context_line":"            msg \u003d _(\"FWaaS plugin is configured in the server side, but \""},{"line_number":74,"context_line":"                    \"FWaaS is disabled in the L3 agent\")"},{"line_number":75,"context_line":"            LOG.error(msg)"},{"line_number":76,"context_line":"            raise SystemExit(1)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_90edfcf1","line":74,"in_reply_to":"dada55a8_ce9b6e71","updated":"2016-07-28 14:23:20.000000000","message":"Will add.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                fw[\u0027id\u0027],"},{"line_number":188,"context_line":"                status)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _process_router_add(self, new_router):"},{"line_number":191,"context_line":"        \"\"\"If the new router is in the local namespace, queries the plugin to"},{"line_number":192,"context_line":"           see if the router has any ports for any firewall that is configured"},{"line_number":193,"context_line":"           for the tenant in question. If so, installs firewall rules on the"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_d4076ac7","line":190,"updated":"2016-07-24 05:40:46.000000000","message":"In FWaaS v2, are you going to reuse firewall_l3_agent.py?  If so, would you tell me the relation b/w Nate\u0027s patch?(https://review.openstack.org/#/c/339246/).","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"023ad2884f6f8b0ea084f8927b17f8a878cbaceb","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                fw[\u0027id\u0027],"},{"line_number":188,"context_line":"                status)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _process_router_add(self, new_router):"},{"line_number":191,"context_line":"        \"\"\"If the new router is in the local namespace, queries the plugin to"},{"line_number":192,"context_line":"           see if the router has any ports for any firewall that is configured"},{"line_number":193,"context_line":"           for the tenant in question. If so, installs firewall rules on the"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_17ad2284","line":190,"in_reply_to":"bacf61ea_027f05ab","updated":"2016-08-05 07:10:07.000000000","message":"Thanks for your explanation. I see.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                fw[\u0027id\u0027],"},{"line_number":188,"context_line":"                status)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _process_router_add(self, new_router):"},{"line_number":191,"context_line":"        \"\"\"If the new router is in the local namespace, queries the plugin to"},{"line_number":192,"context_line":"           see if the router has any ports for any firewall that is configured"},{"line_number":193,"context_line":"           for the tenant in question. If so, installs firewall rules on the"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_027f05ab","line":190,"in_reply_to":"dada55a8_d4076ac7","updated":"2016-07-28 14:23:20.000000000","message":"One this patch (that is, https://review.openstack.org/#/c/337699) is implemented and merged, we will set about implementing a v2 FWaaS L3 agent extension, which will utilize Nate\u0027s and my L3 agent/agent extension in https://review.openstack.org/#/c/339246 (and will use the RPC callback mechanism a la its reference implementation in QoS).  I suppose, additionally, that the name of this file and its location will change.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"956aef699da9e5c0984a07896aa9da005cee8d3e","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                status)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _process_router_add(self, new_router):"},{"line_number":191,"context_line":"        \"\"\"If the new router is in the local namespace, queries the plugin to"},{"line_number":192,"context_line":"           see if the router has any ports for any firewall that is configured"},{"line_number":193,"context_line":"           for the tenant in question. If so, installs firewall rules on the"},{"line_number":194,"context_line":"           requested ports on this router."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        LOG.debug(\"Process router add, router_id: %s.\","},{"line_number":197,"context_line":"                  new_router.router[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_1984ea08","line":194,"range":{"start_line":191,"start_character":22,"end_line":194,"end_character":42},"updated":"2016-07-07 15:01:33.000000000","message":"It doesn\u0027t really query the plugin to check on the ports; it queries the plugin for get the firewalls for the tenant in question; then it does the port checking here.  I\u0027ll fix this message.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"956aef699da9e5c0984a07896aa9da005cee8d3e","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        ctx \u003d context.Context(\u0027\u0027, new_router.router[\u0027tenant_id\u0027])"},{"line_number":206,"context_line":"        fw_list \u003d self.fwplugin_rpc.get_firewalls_for_tenant(ctx)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # Apply a firewall,as requested, to ports on the new router."},{"line_number":209,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":210,"context_line":"            for fw in fw_list:"},{"line_number":211,"context_line":"                if self._has_port_insertion_fields(fw) and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_d9942238","line":208,"range":{"start_line":208,"start_character":18,"end_line":208,"end_character":29},"updated":"2016-07-07 15:01:33.000000000","message":"I\u0027ll add a space here.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Apply a firewall,as requested, to ports on the new router."},{"line_number":209,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":210,"context_line":"            for fw in fw_list:"},{"line_number":211,"context_line":"                if self._has_port_insertion_fields(fw) and \\"},{"line_number":212,"context_line":"                        (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or"},{"line_number":213,"context_line":"                        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027]):"},{"line_number":214,"context_line":"                    self._invoke_driver_for_sync_from_plugin(ctx, port, fw)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_c4c06f2d","line":211,"updated":"2016-07-24 05:40:46.000000000","message":"[nit] \"/\" is not neccesary.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"023ad2884f6f8b0ea084f8927b17f8a878cbaceb","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Apply a firewall,as requested, to ports on the new router."},{"line_number":209,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":210,"context_line":"            for fw in fw_list:"},{"line_number":211,"context_line":"                if self._has_port_insertion_fields(fw) and \\"},{"line_number":212,"context_line":"                        (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or"},{"line_number":213,"context_line":"                        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027]):"},{"line_number":214,"context_line":"                    self._invoke_driver_for_sync_from_plugin(ctx, port, fw)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_17e402de","line":211,"in_reply_to":"bacf61ea_5bab831d","updated":"2016-08-05 07:10:07.000000000","message":"You can insert break during from \"(\" to \")\".  How about as follows?\n\nif (self._has_port_insertion_fields(fw) and\n       (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or\n        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027])):","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"bcef81ad190f63fcb06ba306a24e3a4b6c051c5e","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Apply a firewall,as requested, to ports on the new router."},{"line_number":209,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":210,"context_line":"            for fw in fw_list:"},{"line_number":211,"context_line":"                if self._has_port_insertion_fields(fw) and \\"},{"line_number":212,"context_line":"                        (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or"},{"line_number":213,"context_line":"                        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027]):"},{"line_number":214,"context_line":"                    self._invoke_driver_for_sync_from_plugin(ctx, port, fw)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_5bab831d","line":211,"in_reply_to":"bacf61ea_706968be","updated":"2016-08-04 02:21:35.000000000","message":"Turns out pep8 fails without it.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Apply a firewall,as requested, to ports on the new router."},{"line_number":209,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":210,"context_line":"            for fw in fw_list:"},{"line_number":211,"context_line":"                if self._has_port_insertion_fields(fw) and \\"},{"line_number":212,"context_line":"                        (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or"},{"line_number":213,"context_line":"                        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027]):"},{"line_number":214,"context_line":"                    self._invoke_driver_for_sync_from_plugin(ctx, port, fw)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_706968be","line":211,"in_reply_to":"dada55a8_c4c06f2d","updated":"2016-07-28 14:23:20.000000000","message":"Thank you.  Will remove.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fdd9261dfde23f92ceb5eb998dab77f3ef9bfe0e","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                        self.update_firewall(ctx, firewall, self.host)"},{"line_number":252,"context_line":"            self.services_sync_needed \u003d False"},{"line_number":253,"context_line":"        except Exception:"},{"line_number":254,"context_line":"            LOG.exception(_LE(\"Failed FWaaS process services sync\"))"},{"line_number":255,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    @log_helpers.log_method_call"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_845af74e","line":254,"updated":"2016-07-24 05:40:46.000000000","message":"[nit] Missing period \".\"","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d113c64ee888976e4dd49e2efd978c2f583b334","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                        self.update_firewall(ctx, firewall, self.host)"},{"line_number":252,"context_line":"            self.services_sync_needed \u003d False"},{"line_number":253,"context_line":"        except Exception:"},{"line_number":254,"context_line":"            LOG.exception(_LE(\"Failed FWaaS process services sync\"))"},{"line_number":255,"context_line":"            self.services_sync_needed \u003d True"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    @log_helpers.log_method_call"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_10a90ce0","line":254,"in_reply_to":"dada55a8_845af74e","updated":"2016-07-28 14:23:20.000000000","message":"Will add.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"bcef81ad190f63fcb06ba306a24e3a4b6c051c5e","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        # Call the driver."},{"line_number":273,"context_line":"        try:"},{"line_number":274,"context_line":"            self.fwaas_driver.create_firewall(self.conf.agent_mode,"},{"line_number":275,"context_line":"                                              ports_for_fw, firewall)"},{"line_number":276,"context_line":"            if firewall[\u0027admin_state_up\u0027]:"},{"line_number":277,"context_line":"                status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_db3bf3e9","line":274,"range":{"start_line":274,"start_character":0,"end_line":274,"end_character":67},"updated":"2016-08-04 02:21:35.000000000","message":"Will the driver method names change as well?","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"023ad2884f6f8b0ea084f8927b17f8a878cbaceb","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        # Call the driver."},{"line_number":273,"context_line":"        try:"},{"line_number":274,"context_line":"            self.fwaas_driver.create_firewall(self.conf.agent_mode,"},{"line_number":275,"context_line":"                                              ports_for_fw, firewall)"},{"line_number":276,"context_line":"            if firewall[\u0027admin_state_up\u0027]:"},{"line_number":277,"context_line":"                status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_c8300b59","line":274,"range":{"start_line":274,"start_character":0,"end_line":274,"end_character":67},"in_reply_to":"bacf61ea_db3bf3e9","updated":"2016-08-05 07:10:07.000000000","message":"As Sridar said, I think it should be changed the name in this patch.  Hence, I think \u0027create_firewall_group\u0027 is better.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"bcef81ad190f63fcb06ba306a24e3a4b6c051c5e","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                    % {\u0027fw_id\u0027: firewall[\u0027id\u0027],"},{"line_number":311,"context_line":"                       \u0027ports\u0027: \u0027, \u0027.join([p[\u0027id\u0027] for p in ports_for_fw])})"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                self.fwaas_driver.delete_firewall(self.conf.agent_mode,"},{"line_number":314,"context_line":"                    ports_for_fw, firewall)"},{"line_number":315,"context_line":"                if firewall[\u0027last_port\u0027]:"},{"line_number":316,"context_line":"                    status \u003d n_const.INACTIVE"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_5b07031c","line":313,"range":{"start_line":313,"start_character":0,"end_line":313,"end_character":71},"updated":"2016-08-04 02:21:35.000000000","message":"Analogous driver question for delete_firewall method name.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"023ad2884f6f8b0ea084f8927b17f8a878cbaceb","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                    % {\u0027fw_id\u0027: firewall[\u0027id\u0027],"},{"line_number":311,"context_line":"                       \u0027ports\u0027: \u0027, \u0027.join([p[\u0027id\u0027] for p in ports_for_fw])})"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                self.fwaas_driver.delete_firewall(self.conf.agent_mode,"},{"line_number":314,"context_line":"                    ports_for_fw, firewall)"},{"line_number":315,"context_line":"                if firewall[\u0027last_port\u0027]:"},{"line_number":316,"context_line":"                    status \u003d n_const.INACTIVE"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_c8092b97","line":313,"range":{"start_line":313,"start_character":0,"end_line":313,"end_character":71},"in_reply_to":"bacf61ea_5b07031c","updated":"2016-08-05 07:10:07.000000000","message":"I think \u0027delete_firewall_group\u0027 is better.","commit_id":"62c71b3e65ca2c7f89c45e88ec013562e5522e59"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"aebe04d2ecc64a8864c3089f11a3eafdc113b798","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            try:"},{"line_number":169,"context_line":"                self.fwaas_driver.update_firewall_group("},{"line_number":170,"context_line":"                    self.conf.agent_mode, [port], fw)"},{"line_number":171,"context_line":"                if fw[\u0027admin_state_up\u0027]:"},{"line_number":172,"context_line":"                    status \u003d n_const.ACTIVE"},{"line_number":173,"context_line":"                else:"},{"line_number":174,"context_line":"                    status \u003d n_const.DOWN"},{"line_number":175,"context_line":"            except fw_ext.FirewallInternalDriverError:"},{"line_number":176,"context_line":"                msg \u003d _LE(\"FWaaS driver error on %(status)s \""},{"line_number":177,"context_line":"                          \"for firewall group: %(fw_id)s\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_3ecde65d","line":174,"range":{"start_line":171,"start_character":0,"end_line":174,"end_character":41},"updated":"2016-08-09 18:08:20.000000000","message":"Should this be outside the try..except ?","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"d3905f29849aee454b56c77d94383a42aac11c57","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            try:"},{"line_number":169,"context_line":"                self.fwaas_driver.update_firewall_group("},{"line_number":170,"context_line":"                    self.conf.agent_mode, [port], fw)"},{"line_number":171,"context_line":"                if fw[\u0027admin_state_up\u0027]:"},{"line_number":172,"context_line":"                    status \u003d n_const.ACTIVE"},{"line_number":173,"context_line":"                else:"},{"line_number":174,"context_line":"                    status \u003d n_const.DOWN"},{"line_number":175,"context_line":"            except fw_ext.FirewallInternalDriverError:"},{"line_number":176,"context_line":"                msg \u003d _LE(\"FWaaS driver error on %(status)s \""},{"line_number":177,"context_line":"                          \"for firewall group: %(fw_id)s\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_cf4df673","line":174,"range":{"start_line":171,"start_character":0,"end_line":174,"end_character":41},"in_reply_to":"9ad45d7e_3ecde65d","updated":"2016-08-09 18:12:53.000000000","message":"Yes, thank you. I\u0027ll fix.","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"47f822e7dba7eeb7ef7e981d9f4871a03c1c4767","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # Apply a firewall, as requested, to ports on the new router."},{"line_number":206,"context_line":"        for port in new_router.router.internal_ports:"},{"line_number":207,"context_line":"            for fw in fw_list:"},{"line_number":208,"context_line":"                if (self._has_port_insertion_fields(fw) and"},{"line_number":209,"context_line":"                        (port[\u0027id\u0027] in fw[\u0027add_port_ids\u0027] or"},{"line_number":210,"context_line":"                        port[\u0027id\u0027] in fw[\u0027del_port_ids\u0027])):"},{"line_number":211,"context_line":"                    self._invoke_driver_for_sync_from_plugin(ctx, port, fw)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_96a0c9f5","line":208,"range":{"start_line":208,"start_character":25,"end_line":208,"end_character":51},"updated":"2016-08-05 17:27:51.000000000","message":"It works :)","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"47f822e7dba7eeb7ef7e981d9f4871a03c1c4767","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        # Call the driver."},{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            self.fwaas_driver.create_firewall_group(self.conf.agent_mode,"},{"line_number":272,"context_line":"                                                    ports_for_fw, firewall)"},{"line_number":273,"context_line":"            if firewall[\u0027admin_state_up\u0027]:"},{"line_number":274,"context_line":"                status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_7661d5d2","line":271,"range":{"start_line":271,"start_character":17,"end_line":271,"end_character":29},"updated":"2016-08-05 17:27:51.000000000","message":"I\u0027ve changed this and analogous method calls and debug statements elsewhere.  I considered also changing fw and firewall var names to add \"g\" or \"_group\" or etc. but decided that was too much. Let me know if you agree with what I\u0027ve done.","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"aebe04d2ecc64a8864c3089f11a3eafdc113b798","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            self.fwaas_driver.create_firewall_group(self.conf.agent_mode,"},{"line_number":272,"context_line":"                                                    ports_for_fw, firewall)"},{"line_number":273,"context_line":"            if firewall[\u0027admin_state_up\u0027]:"},{"line_number":274,"context_line":"                status \u003d n_const.ACTIVE"},{"line_number":275,"context_line":"            else:"},{"line_number":276,"context_line":"                status \u003d n_const.DOWN"},{"line_number":277,"context_line":"        except fw_ext.FirewallInternalDriverError:"},{"line_number":278,"context_line":"            msg \u003d _LE(\"Firewall driver error in create_firewall_group \""},{"line_number":279,"context_line":"                      \"for firewall group: %(fw_id)s\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_39e34007","line":276,"range":{"start_line":273,"start_character":0,"end_line":276,"end_character":37},"updated":"2016-08-09 18:08:20.000000000","message":"Should be out of try..except ?","commit_id":"bb6a6e7b9243c09b6e484fcefb1c2f09654b5f47"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"457037de4500cfaee87c096c996a2c9b2048d0d0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                fw_port_ids \u003d firewall[\u0027add_port_ids\u0027]"},{"line_number":109,"context_line":"        elif not require_new_plugin:"},{"line_number":110,"context_line":"            try:"},{"line_number":111,"context_line":"                routers \u003d self.plugin_rpc.get_routers(context)"},{"line_number":112,"context_line":"            except Exception:"},{"line_number":113,"context_line":"                msg \u003d _LE(\"FWaaS RPC failure in _get_firewall_port_ids \""},{"line_number":114,"context_line":"                          \"for firewall: %(fw_id)s\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_21e4f90b","line":111,"range":{"start_line":111,"start_character":16,"end_line":111,"end_character":62},"updated":"2016-08-14 15:34:46.000000000","message":"I think we can iterate over self.router_info. It should save us a call to the plugin.","commit_id":"44ae6538d3f4f85951cfc4e28ef9fc107cab78fc"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"83242eeaaf05a3601330b54a339a23d21c724c00","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                fw_port_ids \u003d firewall[\u0027add_port_ids\u0027]"},{"line_number":109,"context_line":"        elif not require_new_plugin:"},{"line_number":110,"context_line":"            try:"},{"line_number":111,"context_line":"                routers \u003d self.plugin_rpc.get_routers(context)"},{"line_number":112,"context_line":"            except Exception:"},{"line_number":113,"context_line":"                msg \u003d _LE(\"FWaaS RPC failure in _get_firewall_port_ids \""},{"line_number":114,"context_line":"                          \"for firewall: %(fw_id)s\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_17c5a23b","line":111,"range":{"start_line":111,"start_character":16,"end_line":111,"end_character":62},"in_reply_to":"3ac371cc_21e4f90b","updated":"2016-08-15 13:45:48.000000000","message":"I think you\u0027re right.  I\u0027ll make this change.","commit_id":"44ae6538d3f4f85951cfc4e28ef9fc107cab78fc"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"457037de4500cfaee87c096c996a2c9b2048d0d0","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # Return in-namespace port objects."},{"line_number":124,"context_line":"        return self._get_in_ns_ports(fw_port_ids)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _get_in_ns_ports(self, port_ids):"},{"line_number":127,"context_line":"        \"\"\"Returns port objects in the local namespace, along with their"},{"line_number":128,"context_line":"           router_info."},{"line_number":129,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_21799930","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":24},"updated":"2016-08-14 15:34:46.000000000","message":"The port id is all that the driver uses to create the firewall rules. The list of port ids should be enough information for the driver.","commit_id":"44ae6538d3f4f85951cfc4e28ef9fc107cab78fc"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"83242eeaaf05a3601330b54a339a23d21c724c00","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # Return in-namespace port objects."},{"line_number":124,"context_line":"        return self._get_in_ns_ports(fw_port_ids)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _get_in_ns_ports(self, port_ids):"},{"line_number":127,"context_line":"        \"\"\"Returns port objects in the local namespace, along with their"},{"line_number":128,"context_line":"           router_info."},{"line_number":129,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_17a0029f","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":24},"in_reply_to":"3ac371cc_21799930","updated":"2016-08-15 13:45:48.000000000","message":"Thank you Chandan.  I will make this change.","commit_id":"44ae6538d3f4f85951cfc4e28ef9fc107cab78fc"}],"neutron_fwaas/services/firewall/agents/l3reference/firewall_l3_agent_v2.py":[{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"3f02ba56d5598bb654ff5544400b164c56f23d37","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, topic, host):"},{"line_number":36,"context_line":"        super(FWaaSL3PluginApi, self).__init__(topic, host)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_firewalls_for_tenant(self, context, **kwargs):"},{"line_number":39,"context_line":"        \"\"\"Fetches a tenant\u0027s firewalls from the plugin.\"\"\""},{"line_number":40,"context_line":"        LOG.debug(\"Fetch firewalls from plugin\")"},{"line_number":41,"context_line":"        cctxt \u003d self.client.prepare()"}],"source_content_type":"text/x-python","patch_set":12,"id":"3ac371cc_4c061ecf","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":32},"updated":"2016-08-16 20:29:36.000000000","message":"isn\u0027t project the preferred terminology these days","commit_id":"e140c72303659286f7f3320874d202750b1e7cce"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"f7fb7b258a40d24225cad114e3c70670b84f90d1","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, topic, host):"},{"line_number":36,"context_line":"        super(FWaaSL3PluginApi, self).__init__(topic, host)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_firewalls_for_tenant(self, context, **kwargs):"},{"line_number":39,"context_line":"        \"\"\"Fetches a tenant\u0027s firewalls from the plugin.\"\"\""},{"line_number":40,"context_line":"        LOG.debug(\"Fetch firewalls from plugin\")"},{"line_number":41,"context_line":"        cctxt \u003d self.client.prepare()"}],"source_content_type":"text/x-python","patch_set":12,"id":"3ac371cc_7f3c5ae2","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":32},"in_reply_to":"3ac371cc_4c061ecf","updated":"2016-08-16 20:51:48.000000000","message":"Thank you.  Good catch.  I\u0027m following up with Sridar K., who\u0027s working on the plugin.","commit_id":"e140c72303659286f7f3320874d202750b1e7cce"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"3f02ba56d5598bb654ff5544400b164c56f23d37","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        return local_ns_list"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _has_port_insertion_fields(self, firewall):"},{"line_number":91,"context_line":"        \"\"\"The presence of the \u0027add_port_ids\u0027 key in the firwewall dict"},{"line_number":92,"context_line":"           shows we are using the current version of the plugin. If this key"},{"line_number":93,"context_line":"           is absent, we are in an upgrade and message is from an older"},{"line_number":94,"context_line":"           version of the plugin."}],"source_content_type":"text/x-python","patch_set":12,"id":"3ac371cc_ac47d21b","line":91,"range":{"start_line":91,"start_character":57,"end_line":91,"end_character":66},"updated":"2016-08-16 20:29:36.000000000","message":"spelling","commit_id":"e140c72303659286f7f3320874d202750b1e7cce"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"f7fb7b258a40d24225cad114e3c70670b84f90d1","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        return local_ns_list"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _has_port_insertion_fields(self, firewall):"},{"line_number":91,"context_line":"        \"\"\"The presence of the \u0027add_port_ids\u0027 key in the firwewall dict"},{"line_number":92,"context_line":"           shows we are using the current version of the plugin. If this key"},{"line_number":93,"context_line":"           is absent, we are in an upgrade and message is from an older"},{"line_number":94,"context_line":"           version of the plugin."}],"source_content_type":"text/x-python","patch_set":12,"id":"3ac371cc_bf26d2cb","line":91,"range":{"start_line":91,"start_character":57,"end_line":91,"end_character":66},"in_reply_to":"3ac371cc_ac47d21b","updated":"2016-08-16 20:51:48.000000000","message":"Thank you.  Will fix.","commit_id":"e140c72303659286f7f3320874d202750b1e7cce"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"e6ff32181a2cdb5a84d39ab00d7d396d005a76b4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        LOG.debug(\"Fetch from plugin projects that have firewalls configured\")"},{"line_number":48,"context_line":"        cctxt \u003d self.client.prepare()"},{"line_number":49,"context_line":"        return cctxt.call(context,"},{"line_number":50,"context_line":"                          \u0027get_projects_with_firewalls\u0027, host\u003dself.host)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class FWaaSL3AgentRpcCallback(api.FWaaSAgentRpcCallbackMixin):"}],"source_content_type":"text/x-python","patch_set":13,"id":"3ac371cc_5e7979c7","line":50,"updated":"2016-08-17 13:34:50.000000000","message":"Thanks Margaret. I think this reads well with the view to the future. We ran into issues in using \u0027project_id\u0027 as the attribute - in how neutron does some validation - where it still expects to see \u0027tenant_id\u0027.[1]\n\nSo could u pls revert back to \u0027tenant_id\u0027 only where it is used as a key and keep the method names and and comments as u have it now. When things are ready - it will be an easier refactor to just change the keys appropriately.\n\n[1]https://github.com/openstack/neutron/blob/master/neutron/api/v2/attributes.py#L443","commit_id":"c62d22e64f765ca6ce3face4e80f62f1d79d8223"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"4ea9d2b437face3838caf2ba138c086ec04f3f6f","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # Set the firewall group\u0027s status to return to plugin; status may be"},{"line_number":423,"context_line":"        # overwritten if call to driver fails."},{"line_number":424,"context_line":"        if firewall_group[\u0027last_port\u0027]:"},{"line_number":425,"context_line":"            status \u003d n_const.INACTIVE"},{"line_number":426,"context_line":"        elif firewall_group[\u0027admin_state_up\u0027]:"},{"line_number":427,"context_line":"            status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_7d80c0c0","line":424,"updated":"2016-08-23 06:56:58.000000000","message":"Where is defined \u0027last_port\u0027, \u0027add_port_ids\u0027 and \u0027del_port_ids\u0027 into firewall_group dict?  Is it necessary for another migration file?","commit_id":"68684746461de2a80969f57515ca031a88e6930d"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"e4c6fc54d339924d19ac95e78ad729e0fe2745da","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # Set the firewall group\u0027s status to return to plugin; status may be"},{"line_number":423,"context_line":"        # overwritten if call to driver fails."},{"line_number":424,"context_line":"        if firewall_group[\u0027last_port\u0027]:"},{"line_number":425,"context_line":"            status \u003d n_const.INACTIVE"},{"line_number":426,"context_line":"        elif firewall_group[\u0027admin_state_up\u0027]:"},{"line_number":427,"context_line":"            status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_8f944f43","line":424,"in_reply_to":"1ac06dbe_7d80c0c0","updated":"2016-08-23 12:28:43.000000000","message":"Thanks Yushiro. These are not present in the db - the plugin uses these to communicate the changes to ports in a firewall group update workflow. If for example we had a fg on P1, P2. Now we have fg update on ports to put it on P2, P3. Then the plugin tells the agent to add in P3 and del P1 - which is used by the agent to tell the driver to tweak the iptable rules accordingly.\n\nSince Margaret is on PTO, i thought i would respond.","commit_id":"68684746461de2a80969f57515ca031a88e6930d"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"89fe20c72f474a0b3b3a4b14efa272051c426b67","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # Set the firewall group\u0027s status to return to plugin; status may be"},{"line_number":423,"context_line":"        # overwritten if call to driver fails."},{"line_number":424,"context_line":"        if firewall_group[\u0027last_port\u0027]:"},{"line_number":425,"context_line":"            status \u003d n_const.INACTIVE"},{"line_number":426,"context_line":"        elif firewall_group[\u0027admin_state_up\u0027]:"},{"line_number":427,"context_line":"            status \u003d n_const.ACTIVE"}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_82523865","line":424,"in_reply_to":"1ac06dbe_8f944f43","updated":"2016-08-23 23:55:10.000000000","message":"OK. I understood that we should add these attributes in l2-agent or plugin(on update method).","commit_id":"68684746461de2a80969f57515ca031a88e6930d"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"4420bd78f6ecc4c02381c4df7b513f400bfbc2ed","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        fwg_port_ids \u003d []"},{"line_number":124,"context_line":"        if self._has_port_insertion_fields(firewall_group):"},{"line_number":125,"context_line":"            if to_delete:"},{"line_number":126,"context_line":"                fwg_port_ids \u003d firewall_group[\u0027del_port_ids\u0027]"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                fwg_port_ids \u003d firewall_group[\u0027add_port_ids\u0027]"},{"line_number":129,"context_line":"        elif not require_new_plugin:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_4884df09","line":126,"updated":"2016-08-24 01:02:57.000000000","message":"Thanks Margaret, Chandan. We have an inconsistency in our keys across the plugin dict and how we refer to it here.\n\nadd_port_ids -\u003e add-port-ids\n\nPls take a look here for a sample of how the dict looks like:\n\nhttp://paste.openstack.org/show/562781/","commit_id":"62f337b4264c41731527038c5b8f3714a127deb2"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"a739986945a81fb3470a3883cacef33cbe9ef475","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        fwg_port_ids \u003d []"},{"line_number":124,"context_line":"        if self._has_port_insertion_fields(firewall_group):"},{"line_number":125,"context_line":"            if to_delete:"},{"line_number":126,"context_line":"                fwg_port_ids \u003d firewall_group[\u0027del_port_ids\u0027]"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                fwg_port_ids \u003d firewall_group[\u0027add_port_ids\u0027]"},{"line_number":129,"context_line":"        elif not require_new_plugin:"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_a0f0fac9","line":126,"in_reply_to":"1ac06dbe_4884df09","updated":"2016-08-24 08:56:39.000000000","message":"Done","commit_id":"62f337b4264c41731527038c5b8f3714a127deb2"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"4420bd78f6ecc4c02381c4df7b513f400bfbc2ed","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        elif not require_new_plugin:"},{"line_number":130,"context_line":"            routers \u003d [self.router_info[rid] for rid in self.router_info]"},{"line_number":131,"context_line":"            for router in routers:"},{"line_number":132,"context_line":"                if router[\u0027tenant_id\u0027] \u003d\u003d firewall_group[\u0027tenant_id\u0027]:"},{"line_number":133,"context_line":"                    fwg_port_ids.extend([p[\u0027id\u0027] for p in"},{"line_number":134,"context_line":"                            router.internal_ports])"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_88525765","line":132,"updated":"2016-08-24 01:02:57.000000000","message":"This needs to router.router[\u0027tenant_id\u0027] \n\nhttp://paste.openstack.org/show/562782/","commit_id":"62f337b4264c41731527038c5b8f3714a127deb2"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"a739986945a81fb3470a3883cacef33cbe9ef475","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        elif not require_new_plugin:"},{"line_number":130,"context_line":"            routers \u003d [self.router_info[rid] for rid in self.router_info]"},{"line_number":131,"context_line":"            for router in routers:"},{"line_number":132,"context_line":"                if router[\u0027tenant_id\u0027] \u003d\u003d firewall_group[\u0027tenant_id\u0027]:"},{"line_number":133,"context_line":"                    fwg_port_ids.extend([p[\u0027id\u0027] for p in"},{"line_number":134,"context_line":"                            router.internal_ports])"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_80eb3edb","line":132,"in_reply_to":"1ac06dbe_88525765","updated":"2016-08-24 08:56:39.000000000","message":"Done","commit_id":"62f337b4264c41731527038c5b8f3714a127deb2"}],"neutron_fwaas/tests/unit/services/firewall/agents/l3reference/test_firewall_l3_agent.py":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"cdd0b3abdd3c9bc9f6306ce3198af339062f3fc9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.agent.l3 import config as l3_config"},{"line_number":21,"context_line":"from neutron.agent.l3 import router_info"},{"line_number":22,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":23,"context_line":"from neutron.common import config as base_config"},{"line_number":24,"context_line":"from neutron import context"},{"line_number":25,"context_line":"from neutron.plugins.common import constants"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad45d7e_999e1061","line":23,"updated":"2016-08-12 05:30:54.000000000","message":"from neutron.conf import common as base_config","commit_id":"a39b6964fd371010a2c6fad92deb047709e9d8a6"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"d6be5200a42fe12400626e78d6c081436456eed2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.agent.l3 import config as l3_config"},{"line_number":21,"context_line":"from neutron.agent.l3 import router_info"},{"line_number":22,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":23,"context_line":"from neutron.common import config as base_config"},{"line_number":24,"context_line":"from neutron import context"},{"line_number":25,"context_line":"from neutron.plugins.common import constants"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_d9723fad","line":23,"in_reply_to":"9ad45d7e_999e1061","updated":"2016-08-14 10:50:01.000000000","message":"A rebase prompted this change.","commit_id":"a39b6964fd371010a2c6fad92deb047709e9d8a6"}],"neutron_fwaas/tests/unit/services/firewall/agents/l3reference/test_firewall_l3_agent_v2.py":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"4ea9d2b437face3838caf2ba138c086ec04f3f6f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.agent.l3 import config as l3_config"},{"line_number":21,"context_line":"from neutron.agent.l3 import router_info"},{"line_number":22,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":23,"context_line":"from neutron.conf import common as common_config"},{"line_number":24,"context_line":"from neutron import context"},{"line_number":25,"context_line":"from neutron.plugins.common import constants"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_a24fb969","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":48},"updated":"2016-08-23 06:56:58.000000000","message":"\u0027common_config\u0027 is never used so you can delete it.","commit_id":"68684746461de2a80969f57515ca031a88e6930d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"496b3e1666aee68bc42d2ce7a0ab6ac2d5e97166","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.agent.l3 import config as l3_config"},{"line_number":21,"context_line":"from neutron.agent.l3 import router_info"},{"line_number":22,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":23,"context_line":"from neutron.conf import common as common_config"},{"line_number":24,"context_line":"from neutron import context"},{"line_number":25,"context_line":"from neutron.plugins.common import constants"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_2b0c263a","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":48},"in_reply_to":"1ac06dbe_a24fb969","updated":"2016-08-23 14:34:25.000000000","message":"Done","commit_id":"68684746461de2a80969f57515ca031a88e6930d"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"823e31c6cac08a829b435270db915ef7640c04d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":25,"id":"1ac06dbe_99941de9","line":1,"updated":"2016-08-25 01:02:23.000000000","message":"Pls fix copyright format and year.","commit_id":"755e9027259ab3f7d02dcc7d749f1b302c14db25"},{"author":{"_account_id":5109,"name":"chandanc","email":"chandan.dutta.chowdhury@gmail.com","username":"chandanc"},"change_message_id":"9edfff350170d2cf879f0a043ab8fcd5875ee006","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":25,"id":"1ac06dbe_78bf6960","line":1,"in_reply_to":"1ac06dbe_99941de9","updated":"2016-08-25 15:44:58.000000000","message":"Done","commit_id":"755e9027259ab3f7d02dcc7d749f1b302c14db25"}]}
