)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fe95c5c932b9e598c23b7d8ab75371236ce232d1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     SapanaJadhav \u003csapanajadhav555@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-10-15 23:55:10 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding check for IPv6 address in setup_controllers()"},{"line_number":8,"context_line":"and if it is IPv6 then adding [] to it before"},{"line_number":9,"context_line":"creating connection string."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_7261cfa8","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":52},"updated":"2019-10-17 04:38:59.000000000","message":"A blank line after commit title is needed. This is the guide:\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"}],"neutron/common/ipv6_utils.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fe95c5c932b9e598c23b7d8ab75371236ce232d1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"       RFC2732 https://tools.ietf.org/html/rfc2732"},{"line_number":77,"context_line":"       square brackets always required in ipv6 URI."},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    if netutils.is_valid_ipv6(host):"},{"line_number":80,"context_line":"        uri \u003d \u0027[%s]:%s\u0027 % (host, port)"},{"line_number":81,"context_line":"    else:"},{"line_number":82,"context_line":"        uri \u003d \u0027%s:%s\u0027 % (host, port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d24c4340","line":79,"range":{"start_line":79,"start_character":16,"end_line":79,"end_character":29},"updated":"2019-10-17 04:38:59.000000000","message":"Looks this change is not needed.\nnetaddr.valid_ipv6 and netutils.is_valid_ipv6 have same behavior?","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"537ea3fe0a84c1d65d3d12795ef521ba3aae5358","unresolved":false,"context_lines":[{"line_number":76,"context_line":"       RFC2732 https://tools.ietf.org/html/rfc2732"},{"line_number":77,"context_line":"       square brackets always required in ipv6 URI."},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    if netutils.is_valid_ipv6(host):"},{"line_number":80,"context_line":"        uri \u003d \u0027[%s]:%s\u0027 % (host, port)"},{"line_number":81,"context_line":"    else:"},{"line_number":82,"context_line":"        uri \u003d \u0027%s:%s\u0027 % (host, port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_0a536d6e","line":79,"range":{"start_line":79,"start_character":16,"end_line":79,"end_character":29},"in_reply_to":"3fa7e38b_d24c4340","updated":"2019-10-18 13:16:51.000000000","message":"is_valid_ipv6() actually does a better job of this (deals with scoping), and calls netaddr.valid_ipv6() under the hood.","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5cc9613b031c0029c6efd82baeb1d2c3c4253fc2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                \"tcp:[%(address)s]:%(port)s\" % {"},{"line_number":76,"context_line":"                    \"address\": conf.OVS.of_listen_address,"},{"line_number":77,"context_line":"                    \"port\": conf.OVS.of_listen_port,"},{"line_number":78,"context_line":"                }"},{"line_number":79,"context_line":"            ]"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            controllers \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_160f6488","line":78,"updated":"2019-10-14 14:25:53.000000000","message":"There is a method in neutron.common.ipv6_utils called \u0027valid_ipv6_url\u0027 that can do this, we shouldn\u0027t be hard-coding anything based on a single address like ::1\n\nurl \u003d valid_ipv6_url(conf.OVS.of_listen_address, conf.OVS.of_listen_port)\n\ncontrollers \u003d [\"tcp:\" + url]","commit_id":"28d1b4896bd26bf67287a7385d014ef3a426d1e6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8f12339261fda4db60f1b3c260c66bef563053a8","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron._i18n import _"},{"line_number":21,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":22,"context_line":"from neutron.common.ipv6_utils import valid_ipv6_url"},{"line_number":23,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \\"},{"line_number":24,"context_line":"        as ovs_consts"},{"line_number":25,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.openflow \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_8129a28a","line":22,"updated":"2019-10-16 19:42:22.000000000","message":"We don\u0027t typically import just a method, but the whole file","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fe95c5c932b9e598c23b7d8ab75371236ce232d1","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron._i18n import _"},{"line_number":21,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":22,"context_line":"from neutron.common.ipv6_utils import valid_ipv6_url"},{"line_number":23,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \\"},{"line_number":24,"context_line":"        as ovs_consts"},{"line_number":25,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.openflow \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_12473b1f","line":22,"in_reply_to":"3fa7e38b_8129a28a","updated":"2019-10-17 04:38:59.000000000","message":"+1\nGoogle recently opensource their guide, hope it helps:\nhttps://google.github.io/styleguide/pyguide.html#224-decision","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8f12339261fda4db60f1b3c260c66bef563053a8","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def setup_controllers(self, conf):"},{"line_number":74,"context_line":"        url \u003d valid_ipv6_url(conf.OVS.of_listen_address,"},{"line_number":75,"context_line":"                            conf.OVS.of_listen_port)"},{"line_number":76,"context_line":"        controllers \u003d [\"tcp:\" + url]"},{"line_number":77,"context_line":"        self.add_protocols(ovs_consts.OPENFLOW13)"},{"line_number":78,"context_line":"        self.set_controller(controllers)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_e1141643","line":75,"updated":"2019-10-16 19:42:22.000000000","message":"indentation is off by a space","commit_id":"8380232c355346ff081940e5cf98c838ca7662cf"}]}
