)]}'
{"neutron/agent/linux/ovs_lib.py":[{"author":{"_account_id":1038,"name":"Jack McCann","username":"jack-mccann"},"change_message_id":"d86116e7b19888b208ee2dcd55edd9239942e30b","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    def add_tunnel_port(self, port_name, remote_ip, local_ip,"},{"line_number":229,"context_line":"                        tunnel_type\u003dp_const.TYPE_GRE,"},{"line_number":230,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":231,"context_line":"                        vxlan_udp_port\u003dconstants.VXLAN_UDP_PORT):"},{"line_number":232,"context_line":"        vsctl_command \u003d [\"--\", \"--may-exist\", \"add-port\", self.br_name,"},{"line_number":233,"context_line":"                         port_name]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3ae8d1ca_d37a68f0","line":230,"updated":"2014-05-29 18:20:36.000000000","message":"Does this break ofa_neutron_agent.py:setup_tunnel_port() where it calls this method?  It passes vxlan udp port as fifth argument.","commit_id":"cad3be51f08e60d98c897eb05da50a987a1acf8c"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"c0b52d1518084e963070d063c58b16a36a0a3196","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    def add_tunnel_port(self, port_name, remote_ip, local_ip,"},{"line_number":236,"context_line":"                        tunnel_type\u003dp_const.TYPE_GRE,"},{"line_number":237,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":238,"context_line":"                        vxlan_udp_port\u003dconstants.VXLAN_UDP_PORT):"},{"line_number":239,"context_line":"        vsctl_command \u003d [\"--\", \"--may-exist\", \"add-port\", self.br_name,"},{"line_number":240,"context_line":"                         port_name]"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_6be38433","line":237,"updated":"2014-06-02 07:29:04.000000000","message":"This parameter should be added as the last keyword parameter to maintain compatibility with users of this library.","commit_id":"37bd5af209041d2a67b0a3e2bac1b03705de81d5"},{"author":{"_account_id":8350,"name":"Pierre Rognant","email":"pierre@rognant.fr","username":"MoXx"},"change_message_id":"397cf999920131b13ab3732ba79ede45bbaaaaec","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    def add_tunnel_port(self, port_name, remote_ip, local_ip,"},{"line_number":236,"context_line":"                        tunnel_type\u003dp_const.TYPE_GRE,"},{"line_number":237,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":238,"context_line":"                        vxlan_udp_port\u003dconstants.VXLAN_UDP_PORT):"},{"line_number":239,"context_line":"        vsctl_command \u003d [\"--\", \"--may-exist\", \"add-port\", self.br_name,"},{"line_number":240,"context_line":"                         port_name]"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_f34e99c0","line":237,"in_reply_to":"1ae5cdf2_6be38433","updated":"2014-06-02 22:01:35.000000000","message":"Done","commit_id":"37bd5af209041d2a67b0a3e2bac1b03705de81d5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"c0b52d1518084e963070d063c58b16a36a0a3196","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            # Only set the VXLAN UDP port if it\u0027s not the default"},{"line_number":245,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":246,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":247,"context_line":"        if (tunnel_type \u003d\u003d p_const.TYPE_GRE or"},{"line_number":248,"context_line":"            tunnel_type \u003d\u003d p_const.TYPE_VXLAN):"},{"line_number":249,"context_line":"            if not(dont_fragment):"},{"line_number":250,"context_line":"                vsctl_command.append(\"options:df_default\u003dfalse\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_ebceb4b3","line":247,"updated":"2014-06-02 07:29:04.000000000","message":"Replace with:\n\nif (dont_fragment and \n    tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):","commit_id":"37bd5af209041d2a67b0a3e2bac1b03705de81d5"},{"author":{"_account_id":8350,"name":"Pierre Rognant","email":"pierre@rognant.fr","username":"MoXx"},"change_message_id":"397cf999920131b13ab3732ba79ede45bbaaaaec","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            # Only set the VXLAN UDP port if it\u0027s not the default"},{"line_number":245,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":246,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":247,"context_line":"        if (tunnel_type \u003d\u003d p_const.TYPE_GRE or"},{"line_number":248,"context_line":"            tunnel_type \u003d\u003d p_const.TYPE_VXLAN):"},{"line_number":249,"context_line":"            if not(dont_fragment):"},{"line_number":250,"context_line":"                vsctl_command.append(\"options:df_default\u003dfalse\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_134a25ac","line":247,"in_reply_to":"1ae5cdf2_ebceb4b3","updated":"2014-06-02 22:01:35.000000000","message":"Done","commit_id":"37bd5af209041d2a67b0a3e2bac1b03705de81d5"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"ae4b9ddc429ca0756fe7f3625947855aa134c8af","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            # Only set the VXLAN UDP port if it\u0027s not the default"},{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (dont_fragment and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1ae5cdf2_ef4ea06e","line":249,"range":{"start_line":249,"start_character":12,"end_line":249,"end_character":25},"updated":"2014-06-03 00:05:47.000000000","message":"this seems inverted","commit_id":"905664e0f6a440b910521225936a50deb44befca"},{"author":{"_account_id":8350,"name":"Pierre Rognant","email":"pierre@rognant.fr","username":"MoXx"},"change_message_id":"b2f19ecf4a8f0fc31078a70089c47dcb4138c88d","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            # Only set the VXLAN UDP port if it\u0027s not the default"},{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (dont_fragment and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1ae5cdf2_ad0724c9","line":249,"in_reply_to":"1ae5cdf2_ef4ea06e","updated":"2014-06-03 17:27:23.000000000","message":"Indeed, fix coming.","commit_id":"905664e0f6a440b910521225936a50deb44befca"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0ebb3bc04c00fcbdbb5bbd629678543b2088112a","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            # Only set the VXLAN UDP port if it\u0027s not the default"},{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (not(dont_fragment) and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_dd4c19a1","line":249,"updated":"2014-06-03 22:00:01.000000000","message":"nit: too many parens for my taste.  ;)","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"e172536a9e34409b2cd35d41dcefd55aaaab670d","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (not(dont_fragment) and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"},{"line_number":253,"context_line":"                              \"options:local_ip\u003d%s\" % local_ip,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_7dd065f6","line":250,"updated":"2014-06-03 21:40:46.000000000","message":"These are the only tunnel types supported in Neutron at the moment, so is checking the tunnel type really necessary here?","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"19bcca3a882211dd665a2d22145556c7cf9e6e11","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (not(dont_fragment) and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"},{"line_number":253,"context_line":"                              \"options:local_ip\u003d%s\" % local_ip,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_daa89279","line":250,"in_reply_to":"1ae5cdf2_7dd065f6","updated":"2014-06-04 03:32:14.000000000","message":"Expanding on that, could 249-251 just be replaced with the following?\n\nvsctl_command.append((\"options:df_default\u003d%s\" % dont_fragment).lower())","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":8350,"name":"Pierre Rognant","email":"pierre@rognant.fr","username":"MoXx"},"change_message_id":"de2b348020647e6df56f08abb54e6ad578f13f80","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (not(dont_fragment) and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"},{"line_number":253,"context_line":"                              \"options:local_ip\u003d%s\" % local_ip,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_5b49cdb5","line":250,"in_reply_to":"1ae5cdf2_daa89279","updated":"2014-06-04 16:50:34.000000000","message":"I like the shortest solution, it makes more sense that if not(dont_fragment). Moreover all supported tunnel in ovs support the df_default option (http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf p23), so even if lisp came into the game it won\u0027t be a problem.","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3248a511f67f1368136530787f2abc93fcdf9da3","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            if vxlan_udp_port !\u003d constants.VXLAN_UDP_PORT:"},{"line_number":248,"context_line":"                vsctl_command.append(\"options:dst_port\u003d%s\" % vxlan_udp_port)"},{"line_number":249,"context_line":"        if (not(dont_fragment) and"},{"line_number":250,"context_line":"            tunnel_type in (p_const.TYPE_GRE, p_const.TYPE_VXLAN)):"},{"line_number":251,"context_line":"            vsctl_command.append(\"options:df_default\u003dfalse\")"},{"line_number":252,"context_line":"        vsctl_command.extend([\"options:remote_ip\u003d%s\" % remote_ip,"},{"line_number":253,"context_line":"                              \"options:local_ip\u003d%s\" % local_ip,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_361b3874","line":250,"in_reply_to":"1ae5cdf2_daa89279","updated":"2014-06-04 16:38:39.000000000","message":"If you went that route, I might wrap dont_fragment with bool( ) just to be sure that it can only be True of False.","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"}],"neutron/plugins/openvswitch/common/config.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0ebb3bc04c00fcbdbb5bbd629678543b2088112a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                       \"remote mac and IPs and improve tunnel scalability\")),"},{"line_number":83,"context_line":"    cfg.BoolOpt(\u0027arp_responder\u0027, default\u003dFalse,"},{"line_number":84,"context_line":"                help\u003d_(\"Enable local ARP responder if it is supported\")),"},{"line_number":85,"context_line":"    cfg.BoolOpt(\u0027dont_fragment\u0027, default\u003dTrue,"},{"line_number":86,"context_line":"                help\u003d_(\"Set or un-set the don\u0027t fragment (DF) bit on \""},{"line_number":87,"context_line":"                       \"outgoing IP packet carrying GRE/VXLAN tunnel\")),"},{"line_number":88,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_206dd6cc","line":85,"updated":"2014-06-03 22:00:01.000000000","message":"Is this needed in neutron/plugins/ofagent/common/config.py as well since it is referenced from neutron/plugins/ofagent/agent/ofa_neutron_agent.py.","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":8350,"name":"Pierre Rognant","email":"pierre@rognant.fr","username":"MoXx"},"change_message_id":"de2b348020647e6df56f08abb54e6ad578f13f80","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                       \"remote mac and IPs and improve tunnel scalability\")),"},{"line_number":83,"context_line":"    cfg.BoolOpt(\u0027arp_responder\u0027, default\u003dFalse,"},{"line_number":84,"context_line":"                help\u003d_(\"Enable local ARP responder if it is supported\")),"},{"line_number":85,"context_line":"    cfg.BoolOpt(\u0027dont_fragment\u0027, default\u003dTrue,"},{"line_number":86,"context_line":"                help\u003d_(\"Set or un-set the don\u0027t fragment (DF) bit on \""},{"line_number":87,"context_line":"                       \"outgoing IP packet carrying GRE/VXLAN tunnel\")),"},{"line_number":88,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_b65668cc","line":85,"in_reply_to":"1ae5cdf2_206dd6cc","updated":"2014-06-04 16:50:34.000000000","message":"As neutron/plugins/ofagent/common/config.py import and register all the ovs agent configuration from neutron/plugins/openvswitch/common/config.py the  proposed modification won\u0027t impact the ofagent behaviour.","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"eaf167f2431c64d45feb513cd64ccabaa1a41d19","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                       \"remote mac and IPs and improve tunnel scalability\")),"},{"line_number":83,"context_line":"    cfg.BoolOpt(\u0027arp_responder\u0027, default\u003dFalse,"},{"line_number":84,"context_line":"                help\u003d_(\"Enable local ARP responder if it is supported\")),"},{"line_number":85,"context_line":"    cfg.BoolOpt(\u0027dont_fragment\u0027, default\u003dTrue,"},{"line_number":86,"context_line":"                help\u003d_(\"Set or un-set the don\u0027t fragment (DF) bit on \""},{"line_number":87,"context_line":"                       \"outgoing IP packet carrying GRE/VXLAN tunnel\")),"},{"line_number":88,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_f6cf107d","line":85,"in_reply_to":"1ae5cdf2_b65668cc","updated":"2014-06-04 16:53:37.000000000","message":"I see, thanks.","commit_id":"23a519466d02cfc9b078aaf58bb2f2a0cd13e78b"}],"neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"13dbea00da1f1a8dabd4dea3f437a445ce97e84e","unresolved":false,"context_lines":[{"line_number":674,"context_line":"                                       constants.DEFAULT_OVSDBMON_RESPAWN)"},{"line_number":675,"context_line":"        mock_loop.called_once()"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def test_setup_tunnel_port_error_negative(self):"},{"line_number":678,"context_line":"        with contextlib.nested("},{"line_number":679,"context_line":"            mock.patch.object(self.agent.tun_br, \u0027add_tunnel_port\u0027,"},{"line_number":680,"context_line":"                              return_value\u003d\u0027-1\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2BbpY%3D","line":677,"updated":"2014-02-21 06:56:05.000000000","message":"can you also add a test to this file with this config option set.","commit_id":"68e1fba213b902b43d1a8026d8e2c7314bd3e859"}]}
