)]}'
{"neutron/agent/linux/iptables_firewall.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2aefcceec1af8346c7d3c64c2b055ef04653bca9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        for proto in (\u0027arp\u0027, \u0027ip\u0027, \u0027ip6\u0027):"},{"line_number":111,"context_line":"            key \u003d \u0027net.bridge.bridge-nf-call-%stables\u0027 % proto"},{"line_number":112,"context_line":"            enabled \u003d a_utils.execute("},{"line_number":113,"context_line":"                [\u0027sysctl\u0027, \u0027-b\u0027, key], run_as_root\u003dTrue,"},{"line_number":114,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse)"},{"line_number":115,"context_line":"            if enabled \u003d\u003d \u00271\u0027:"},{"line_number":116,"context_line":"                status \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_081c5a76","line":113,"updated":"2019-09-12 19:00:30.000000000","message":"In a perfect world we\u0027d have made ip_lib.sysctl() be smarter and take args/flags, but not worth a re-write yet to handle this","commit_id":"6ae00192a9335e999bc5fac9e0a208a4a50e08de"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1c234323169937eacf474be4a5b11f10ffd4c363","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        for proto in (\u0027arp\u0027, \u0027ip\u0027, \u0027ip6\u0027):"},{"line_number":111,"context_line":"            key \u003d \u0027net.bridge.bridge-nf-call-%stables\u0027 % proto"},{"line_number":112,"context_line":"            enabled \u003d a_utils.execute("},{"line_number":113,"context_line":"                [\u0027sysctl\u0027, \u0027-b\u0027, key], run_as_root\u003dTrue,"},{"line_number":114,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse)"},{"line_number":115,"context_line":"            if enabled \u003d\u003d \u00271\u0027:"},{"line_number":116,"context_line":"                status \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_1b81f84a","line":113,"in_reply_to":"5faad753_081c5a76","updated":"2019-09-13 10:50:37.000000000","message":"In ip_lib.sysctl(), apart from -w (write value), we should have -b (get value) and -N (print variable names).\n\nI can handle this is a separate bug.","commit_id":"6ae00192a9335e999bc5fac9e0a208a4a50e08de"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4d26834a2b21c97116c6d13226c96faa88d4b8e8","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        for proto in (\u0027arp\u0027, \u0027ip\u0027, \u0027ip6\u0027):"},{"line_number":111,"context_line":"            key \u003d \u0027net.bridge.bridge-nf-call-%stables\u0027 % proto"},{"line_number":112,"context_line":"            enabled \u003d a_utils.execute("},{"line_number":113,"context_line":"                [\u0027sysctl\u0027, \u0027-b\u0027, key], run_as_root\u003dTrue,"},{"line_number":114,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse)"},{"line_number":115,"context_line":"            if enabled \u003d\u003d \u00271\u0027:"},{"line_number":116,"context_line":"                status \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_517d117d","line":113,"in_reply_to":"5faad753_1b81f84a","updated":"2019-09-13 12:51:14.000000000","message":"Right, it could take a flag, but default to -w to keep the current behavior.  The tricky part is making sure it returns the correct value as -w returns a bool currently.  Something to do on a slow Friday :)","commit_id":"6ae00192a9335e999bc5fac9e0a208a4a50e08de"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2aefcceec1af8346c7d3c64c2b055ef04653bca9","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"},{"line_number":121,"context_line":"            log_method(\u0027Key %(key) is %(status)\u0027,"},{"line_number":122,"context_line":"                       {\u0027key\u0027: key, \u0027status\u0027: status})"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_e848de87","line":121,"range":{"start_line":121,"start_character":28,"end_line":121,"end_character":34},"updated":"2019-09-12 19:00:30.000000000","message":"%(key)s\n\nsame for %(status)","commit_id":"6ae00192a9335e999bc5fac9e0a208a4a50e08de"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1c234323169937eacf474be4a5b11f10ffd4c363","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"},{"line_number":121,"context_line":"            log_method(\u0027Key %(key) is %(status)\u0027,"},{"line_number":122,"context_line":"                       {\u0027key\u0027: key, \u0027status\u0027: status})"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_db960094","line":121,"range":{"start_line":121,"start_character":28,"end_line":121,"end_character":34},"in_reply_to":"5faad753_e848de87","updated":"2019-09-13 10:50:37.000000000","message":"Done","commit_id":"6ae00192a9335e999bc5fac9e0a208a4a50e08de"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"af4e3e50c983754557e9feec87f3c669d5debd01","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        if not a_utils.execute("},{"line_number":104,"context_line":"                [\u0027sysctl\u0027, \u0027-N\u0027, \u0027net.bridge\u0027], run_as_root\u003dTrue,"},{"line_number":105,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse):"},{"line_number":106,"context_line":"            LOG.info(\u0027Kernel module br_netfilter is not loaded. Please ensure \u0027"},{"line_number":107,"context_line":"                     \u0027that netfilter options for bridge are enabled to \u0027"},{"line_number":108,"context_line":"                     \u0027provide working security groups.\u0027)"},{"line_number":109,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a27224e2","line":106,"range":{"start_line":106,"start_character":16,"end_line":106,"end_character":20},"updated":"2019-09-23 07:12:42.000000000","message":"I would say it\u0027s more like WARNING instead of INFO","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee519c6226cda27de7233b265d4545917aaf19e4","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        if not a_utils.execute("},{"line_number":104,"context_line":"                [\u0027sysctl\u0027, \u0027-N\u0027, \u0027net.bridge\u0027], run_as_root\u003dTrue,"},{"line_number":105,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse):"},{"line_number":106,"context_line":"            LOG.info(\u0027Kernel module br_netfilter is not loaded. Please ensure \u0027"},{"line_number":107,"context_line":"                     \u0027that netfilter options for bridge are enabled to \u0027"},{"line_number":108,"context_line":"                     \u0027provide working security groups.\u0027)"},{"line_number":109,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_688e4dd1","line":106,"range":{"start_line":106,"start_character":16,"end_line":106,"end_character":20},"in_reply_to":"3fa7e38b_a27224e2","updated":"2019-09-23 09:43:47.000000000","message":"You are right.","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"af4e3e50c983754557e9feec87f3c669d5debd01","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse)"},{"line_number":115,"context_line":"            if enabled \u003d\u003d \u00271\u0027:"},{"line_number":116,"context_line":"                status \u003d \u0027enabled\u0027"},{"line_number":117,"context_line":"                log_method \u003d LOG.info"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_e249fc8a","line":117,"range":{"start_line":117,"start_character":33,"end_line":117,"end_character":37},"updated":"2019-09-23 07:12:42.000000000","message":"here maybe debug would be enough?","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee519c6226cda27de7233b265d4545917aaf19e4","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                log_fail_as_error\u003dFalse, check_exit_code\u003dFalse)"},{"line_number":115,"context_line":"            if enabled \u003d\u003d \u00271\u0027:"},{"line_number":116,"context_line":"                status \u003d \u0027enabled\u0027"},{"line_number":117,"context_line":"                log_method \u003d LOG.info"},{"line_number":118,"context_line":"            else:"},{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_887709d5","line":117,"range":{"start_line":117,"start_character":33,"end_line":117,"end_character":37},"in_reply_to":"3fa7e38b_e249fc8a","updated":"2019-09-23 09:43:47.000000000","message":"Let me say that this is going to be printed only once, when the agent (and the FW) is initialized. Could be useful to have this information in the log by default (as INFO is the default log level).\n\nBut this is just my opinion.","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"af4e3e50c983754557e9feec87f3c669d5debd01","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"},{"line_number":121,"context_line":"            log_method(\u0027Key %(key)s is %(status)s\u0027,"},{"line_number":122,"context_line":"                       {\u0027key\u0027: key, \u0027status\u0027: status})"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @property"},{"line_number":125,"context_line":"    def ports(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_02321811","line":122,"updated":"2019-09-23 07:12:42.000000000","message":"IMHO it would be better to log differently in case when value is enabled and when it\u0027s not. If it\u0027s enabled we can just log on debug level as You proposed here but in case when it\u0027s disabled we should maybe log it in warning level and explain that with such setting security groups for ports will NOT work which is IMO important information for operator.","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee519c6226cda27de7233b265d4545917aaf19e4","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                status \u003d \u0027disabled\u0027"},{"line_number":120,"context_line":"                log_method \u003d LOG.warning"},{"line_number":121,"context_line":"            log_method(\u0027Key %(key)s is %(status)s\u0027,"},{"line_number":122,"context_line":"                       {\u0027key\u0027: key, \u0027status\u0027: status})"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @property"},{"line_number":125,"context_line":"    def ports(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_8bf943c9","line":122,"in_reply_to":"3fa7e38b_02321811","updated":"2019-09-23 09:43:47.000000000","message":"Done","commit_id":"ca2daeb6148979a1dd058e02cba958891c464cbb"}]}
