)]}'
{"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b9aa11ea917a5a4b941b72e094558fed12959f6d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"if os.name !\u003d \"nt\":"},{"line_number":59,"context_line":"    from neutron.agent.linux import iptables_firewall"},{"line_number":60,"context_line":"else:"},{"line_number":61,"context_line":"    iptables_firewall \u003d None"},{"line_number":62,"context_line":"from neutron.agent.linux import xenapi_root_helper"},{"line_number":63,"context_line":"from neutron.agent import rpc as agent_rpc"},{"line_number":64,"context_line":"from neutron.agent import securitygroups_rpc as agent_sg_rpc"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f6b1bfe_532cd098","line":61,"updated":"2020-10-14 13:17:26.000000000","message":"good catch!\n\nplease, move this conditional import into a method that uses this library, something like\n\ndef is_hybrid_iptables_firewall(sg_agent_firewall):\n    if os.name !\u003d \"nt\":\n        from neutron.agent.linux import iptables_firewall\n    else:\n        return False\n\n    return isinstance(sg_agent_firewall,\n                      iptables_firewall.OVSHybridIptablesFirewallDriver)","commit_id":"5acc5fd98593465d00e56d10cc89ba4edce97052"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"d411a3a4116b90373cd2f0751e3d99adff2dbf47","unresolved":false,"context_lines":[{"line_number":58,"context_line":"if os.name !\u003d \"nt\":"},{"line_number":59,"context_line":"    from neutron.agent.linux import iptables_firewall"},{"line_number":60,"context_line":"else:"},{"line_number":61,"context_line":"    iptables_firewall \u003d None"},{"line_number":62,"context_line":"from neutron.agent.linux import xenapi_root_helper"},{"line_number":63,"context_line":"from neutron.agent import rpc as agent_rpc"},{"line_number":64,"context_line":"from neutron.agent import securitygroups_rpc as agent_sg_rpc"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f6b1bfe_13b53832","line":61,"in_reply_to":"7f6b1bfe_532cd098","updated":"2020-10-14 13:31:06.000000000","message":"Thanks for the suggestion, I\u0027ve updated the patch.\n\nInitially I was thinking that we may end up using other iptables_firewall definitions, such as constants. I guess this is fine for now though.","commit_id":"5acc5fd98593465d00e56d10cc89ba4edce97052"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8a1857c3ccf93cd80c4392de0a871aaeb65ee1ee","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"        return failed_devices"},{"line_number":2136,"context_line":""},{"line_number":2137,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2138,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2139,"context_line":"            return False"},{"line_number":2140,"context_line":""},{"line_number":2141,"context_line":"        from neutron.agent.linux import iptables_firewall"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f6b1bfe_10aec3e6","line":2138,"updated":"2020-10-14 22:33:05.000000000","message":"pep8: F821 undefined name \u0027os\u0027","commit_id":"c02ee991d61c5e284ed07f7afce4b3cad2d303ac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a555a5ada76d03abffa4144b92ced84a45157ed9","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2136,"context_line":"        return failed_devices"},{"line_number":2137,"context_line":""},{"line_number":2138,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_2ed1dbce","line":2138,"updated":"2020-10-15 08:00:10.000000000","message":"If this is a class method, you need to pass the class instance, \"self\".\n\nI would recommend you this method to, for example, \"neutron.agent.firewall\", as an auxiliary method (let\u0027s see what other reviewers think about this).","commit_id":"0e2b1fcebc6e5479d46628b2e59348de2edb2535"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"827ca4a3baab6ac10b9cc346f5f4ff0d18351d92","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2136,"context_line":"        return failed_devices"},{"line_number":2137,"context_line":""},{"line_number":2138,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_b08ee12b","line":2138,"in_reply_to":"7f6b1bfe_2e46fb7d","updated":"2020-10-15 15:51:58.000000000","message":"IMO, this method should be placed in https://github.com/openstack/neutron/blob/master/neutron/agent/firewall.py","commit_id":"0e2b1fcebc6e5479d46628b2e59348de2edb2535"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"40a44499e4b5e212836acb6065664bc18f531711","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2136,"context_line":"        return failed_devices"},{"line_number":2137,"context_line":""},{"line_number":2138,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_2e46fb7d","line":2138,"in_reply_to":"7f6b1bfe_2e6d5b04","updated":"2020-10-15 08:16:09.000000000","message":"I\u0027m sorry, I didn\u0027t quite get where you\u0027d like this method to be moved.","commit_id":"0e2b1fcebc6e5479d46628b2e59348de2edb2535"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"b294f0b2a04e77fa661be493dd478d81a6d8bb8c","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2136,"context_line":"        return failed_devices"},{"line_number":2137,"context_line":""},{"line_number":2138,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_2e6d5b04","line":2138,"in_reply_to":"7f6b1bfe_2ed1dbce","updated":"2020-10-15 08:13:56.000000000","message":"My bad, thanks!","commit_id":"0e2b1fcebc6e5479d46628b2e59348de2edb2535"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1c5c7dac9a9de04f7d40bf222fb27e57fd5bec69","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2136,"context_line":"        return failed_devices"},{"line_number":2137,"context_line":""},{"line_number":2138,"context_line":"    def is_hybrid_iptables_firewall(sg_agent_firewall):"},{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_9eaa01d0","line":2138,"in_reply_to":"7f6b1bfe_b08ee12b","updated":"2020-10-16 08:33:56.000000000","message":"Thanks for the suggestion. Well, I\u0027ve updated the patch to use the OVS_HYBRID_PLUG_REQUIRED field, similar to this existing check: https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L317-L318\n\nThis should make this patch easier to backport, if needed.","commit_id":"0e2b1fcebc6e5479d46628b2e59348de2edb2535"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3a386a177963eda3d55370f3d552a83710d76fea","unresolved":false,"context_lines":[{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""},{"line_number":2142,"context_line":"        from neutron.agent.linux import iptables_firewall"},{"line_number":2143,"context_line":"        return isinstance(sg_agent_firewall,"},{"line_number":2144,"context_line":"                          iptables_firewall.OVSHybridIptablesFirewallDriver)"},{"line_number":2145,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f6b1bfe_37cf6b80","line":2142,"updated":"2020-10-15 13:40:10.000000000","message":"pep8: C0415: Import outside toplevel (neutron.agent.linux) (import-outside-toplevel)","commit_id":"bcb38b4ec34695b9f11cc3537b32bc90386f4d3e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec51be3012dced89debef0a6387dbdc787305a04","unresolved":false,"context_lines":[{"line_number":2139,"context_line":"        if os.name \u003d\u003d \"nt\":"},{"line_number":2140,"context_line":"            return False"},{"line_number":2141,"context_line":""},{"line_number":2142,"context_line":"        from neutron.agent.linux import iptables_firewall  # noqa"},{"line_number":2143,"context_line":"        return isinstance(sg_agent_firewall,"},{"line_number":2144,"context_line":"                          iptables_firewall.OVSHybridIptablesFirewallDriver)"},{"line_number":2145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f6b1bfe_eeacf58d","line":2142,"updated":"2020-10-15 21:46:19.000000000","message":"pep8: C0415: Import outside toplevel (neutron.agent.linux) (import-outside-toplevel)","commit_id":"071d6f39b5abee98a39431cc88a995a51bec7d12"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3d71895c8ed7c4a3547f4ae60ba1436746031fce","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import functools"},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":"import os"},{"line_number":21,"context_line":"import signal"},{"line_number":22,"context_line":"import sys"},{"line_number":23,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f681702_29673528","line":20,"updated":"2020-10-16 12:14:26.000000000","message":"pep8: F401 \u0027os\u0027 imported but unused","commit_id":"de0afa371b2997a283976b69dfbd5ad287cb9c60"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3e07965f31acc69cfc8b6db880afdda14b3e580a","unresolved":false,"context_lines":[{"line_number":2139,"context_line":"        return ((isinstance(self.sg_agent.firewall,"},{"line_number":2140,"context_line":"                            agent_firewall.NoopFirewallDriver) or"},{"line_number":2141,"context_line":"                 getattr(self.sg_agent.firewall,"},{"line_number":2142,"context_line":"                         \u0027OVS_HYBRID_PLUG_REQUIRED\u0027, False) or"},{"line_number":2143,"context_line":"                 not agent_sg_rpc.is_firewall_enabled()) and"},{"line_number":2144,"context_line":"                self.conf.AGENT.explicitly_egress_direct)"},{"line_number":2145,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5f681702_af9a12c2","line":2142,"updated":"2020-10-19 13:06:19.000000000","message":"right, that will suit here","commit_id":"2ece1002d258e3388607e7df7677a0afae98d2cd"}]}
