)]}'
{"README.md":[{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"2d36754afe227313a52cf5ec9a618a1c7680d0db","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    opendaylight_ML2_CONFIG_SECTION\u003dodl"},{"line_number":192,"context_line":"    opendaylight_ML2_CONFIG\u003d(controllers\u003d192.168.56.101:8080:admin:admin nodes\u003d192.168.56.101)"},{"line_number":193,"context_line":"    newcontroller_ML2_CONFIG_SECTION\u003dnc"},{"line_number":194,"context_line":"    newcontroller_ML2_CONFIG\u003d(hostip\u003d192.168.32.32 nodeip\u003d192.168.32.64 valueone\u003daa:bb:cc)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# Tempest"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"AAAASn%2F%2FNXs%3D","line":194,"updated":"2013-09-10 07:26:49.000000000","message":"Couldn\u0027t it use a provided list of custom sections instead? It could be more flexible (as sections wouldn\u0027t be tied to MDs) and maybe easier to use? For example:\n\n Q_ML2_CONFIG_SECTIONS\u003dodl,nc,ovs,agent\n Q_ML2_CONFIG_odl\u003d(controllers\u003d192.168.56.101:8080:admin:admin nodes\u003d192.168.56.101)\n Q_ML2_CONFIG_nc\u003d(hostip\u003d192.168.32.32 nodeip\u003d192.168.32.64 valueone\u003daa:bb:cc)\n Q_ML2_CONFIG_ovs\u003d(local_ip\u003d10.0.0.1 vxlan_udp_port\u003d8472)","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"32d1d69bae8d3d80c864c461c1942d1ba705b5bf","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    opendaylight_ML2_CONFIG_SECTION\u003dodl"},{"line_number":192,"context_line":"    opendaylight_ML2_CONFIG\u003d(controllers\u003d192.168.56.101:8080:admin:admin nodes\u003d192.168.56.101)"},{"line_number":193,"context_line":"    newcontroller_ML2_CONFIG_SECTION\u003dnc"},{"line_number":194,"context_line":"    newcontroller_ML2_CONFIG\u003d(hostip\u003d192.168.32.32 nodeip\u003d192.168.32.64 valueone\u003daa:bb:cc)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# Tempest"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"AAAAS3%2F%2FkUg%3D","line":194,"in_reply_to":"AAAASn%2F%2FNXs%3D","updated":"2013-09-24 15:48:22.000000000","message":"I like this approach much better, and will modify this patch to do just that.","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"}],"lib/neutron_plugins/ml2":[{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"d5777059bd033ee96c6431b330602e62b5cb400d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-}"},{"line_number":11,"context_line":"# This has to be set here since the agent will set this in the config file"},{"line_number":12,"context_line":"if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" !\u003d \"\" ]]; then"},{"line_number":13,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":14,"context_line":"elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":15,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":16,"context_line":"fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FQ54%3D","line":13,"updated":"2013-09-09 10:05:20.000000000","message":"This may be unrelated to proposed changed, but would it be possible to change EXTRA_OPTS assignments to +\u003d, so that it doesn\u0027t overrides values defined in localrc?","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"88c4bcc037f994f3608d949ba55bba4e60d30c76","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-}"},{"line_number":11,"context_line":"# This has to be set here since the agent will set this in the config file"},{"line_number":12,"context_line":"if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" !\u003d \"\" ]]; then"},{"line_number":13,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":14,"context_line":"elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":15,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":16,"context_line":"fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FPOU%3D","line":13,"in_reply_to":"AAAASn%2F%2FPWU%3D","updated":"2013-09-09 14:29:19.000000000","message":"Thank for pointing this out, new options seems indeed generic enough to also feed any agent\u0027s related parameters.\n\nBut this small change can anyway be made to properly honor Q_AGENT_EXTRA_AGENT_OPTS (even if I\u0027m not sure I\u0027ll use it any more once this get merged)","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"06de6f695b5ae2d98d317525559e05ea4a4d09c8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-}"},{"line_number":11,"context_line":"# This has to be set here since the agent will set this in the config file"},{"line_number":12,"context_line":"if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" !\u003d \"\" ]]; then"},{"line_number":13,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":14,"context_line":"elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":15,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":16,"context_line":"fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FPWU%3D","line":13,"in_reply_to":"AAAASn%2F%2FQ54%3D","updated":"2013-09-09 13:44:58.000000000","message":"These are all great ideas! I will do that in the next revision of this patch, though I\u0027m unsure how much of this patch is needed since there is another way to do this same thing in devstack currently using Q_PLUGIN_EXTRA_CONF_PATH and Q_PLUGIN_EXTRA_CONF_FILES. See below:\n\n#Q_PLUGIN_EXTRA_CONF_PATH\u003detc/neutron/plugins/ml2\n#Q_PLUGIN_EXTRA_CONF_FILES\u003d(ml2_conf_ncs.ini ml2_conf_arista.ini)","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"d5777059bd033ee96c6431b330602e62b5cb400d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" !\u003d \"\" ]]; then"},{"line_number":13,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":14,"context_line":"elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":15,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":16,"context_line":"fi"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Default openvswitch L2 agent"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FQ50%3D","line":15,"updated":"2013-09-09 10:05:20.000000000","message":"Ditto","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"d5777059bd033ee96c6431b330602e62b5cb400d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"}"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"function neutron_plugin_configure_service() {"},{"line_number":60,"context_line":"    if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" !\u003d \"\" ]]; then"},{"line_number":61,"context_line":"        Q_SRV_EXTRA_OPTS\u003d(tenant_network_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":62,"context_line":"    elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":63,"context_line":"        # This assumes you want a simple configuration, and will overwrite"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FP5M%3D","line":60,"updated":"2013-09-09 10:05:20.000000000","message":"Ditto","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"d5777059bd033ee96c6431b330602e62b5cb400d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        Q_SRV_EXTRA_OPTS\u003d(tenant_network_types\u003d$Q_ML2_TENANT_NETWORK_TYPE)"},{"line_number":62,"context_line":"    elif [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":63,"context_line":"        # This assumes you want a simple configuration, and will overwrite"},{"line_number":64,"context_line":"        # Q_SRV_EXTRA_OPTS if set in addition to ENABLE_TENANT_TUNNELS."},{"line_number":65,"context_line":"        Q_SRV_EXTRA_OPTS\u003d(tenant_network_types\u003dgre)"},{"line_number":66,"context_line":"        Q_ML2_PLUGIN_GRE_TYPE_OPTIONS\u003d(tunnel_id_ranges\u003d$TENANT_TUNNEL_RANGES)"},{"line_number":67,"context_line":"    elif [[ \"$ENABLE_TENANT_VLANS\" \u003d \"True\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FP5Q%3D","line":64,"updated":"2013-09-09 10:05:20.000000000","message":"Ditto","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"d5777059bd033ee96c6431b330602e62b5cb400d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # Q_SRV_EXTRA_OPTS if set in addition to ENABLE_TENANT_TUNNELS."},{"line_number":65,"context_line":"        Q_SRV_EXTRA_OPTS\u003d(tenant_network_types\u003dgre)"},{"line_number":66,"context_line":"        Q_ML2_PLUGIN_GRE_TYPE_OPTIONS\u003d(tunnel_id_ranges\u003d$TENANT_TUNNEL_RANGES)"},{"line_number":67,"context_line":"    elif [[ \"$ENABLE_TENANT_VLANS\" \u003d \"True\" ]]; then"},{"line_number":68,"context_line":"        Q_SRV_EXTRA_OPTS\u003d(tenant_network_types\u003dvlan)"},{"line_number":69,"context_line":"    else"},{"line_number":70,"context_line":"        echo \"WARNING - The ml2 plugin is using local tenant networks, with no connectivity between hosts.\""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAASn%2F%2FP5U%3D","line":67,"updated":"2013-09-09 10:05:20.000000000","message":"Ditto","commit_id":"5b4f025850542f2dd235462f0b1313541f4530dc"}]}
