)]}'
{"README.md":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"2c0026d87c1d9253e5df54dbc48e57b4b31e3686","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_type\u003dvxlan vxlan_udp_port\u003d8472)"},{"line_number":149,"context_line":"    Q_SRV_EXTRA_OPTS\u003d(tenant_network_type\u003dvxlan)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"devstack also supports configuring the Neutron ML2 plugin. The simplest way to deploy devstack is with Open vSwitch agents using either VLAN or GRE tunnel networks. To configure this, enable the following in localrc:"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # VLAN configuration"},{"line_number":154,"context_line":"    Q_PLUGIN\u003dml2"}],"source_content_type":"text/x-gfm","patch_set":4,"id":"AAAAQn%2F%2FhAQ%3D","line":151,"updated":"2013-07-29 23:52:08.000000000","message":"Please, re-phrase this paragraph. It is confusion because you are mentioning OVS and also ML2 plugins. It also sounds like OVS is the only option for devstack (IMHO)  ;-)","commit_id":"b5eb2524f057648bb799685eaff2304648e1f2c7"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"ed6575fb30a84de8876a3ac863491542d4d561f8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_type\u003dvxlan vxlan_udp_port\u003d8472)"},{"line_number":149,"context_line":"    Q_SRV_EXTRA_OPTS\u003d(tenant_network_type\u003dvxlan)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"devstack also supports configuring the Neutron ML2 plugin. The simplest way to deploy devstack is with Open vSwitch agents using either VLAN or GRE tunnel networks. To configure this, enable the following in localrc:"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # VLAN configuration"},{"line_number":154,"context_line":"    Q_PLUGIN\u003dml2"}],"source_content_type":"text/x-gfm","patch_set":4,"id":"AAAAQn%2F%2Fe5w%3D","line":151,"in_reply_to":"AAAAQn%2F%2FhAQ%3D","updated":"2013-07-30 14:02:57.000000000","message":"Reworded, thanks for the review!","commit_id":"b5eb2524f057648bb799685eaff2304648e1f2c7"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"16a53b30553da35e0c321062453f85667acf808c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    Q_PLUGIN\u003dml2"},{"line_number":163,"context_line":"    Q_ML2_TENANT_NETWORK_TYPE\u003dvxlan"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Additional ML2 related configuration variables are shown below. These are used for more complex ML2 deployments wiht devstack:"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    Variable Name                    Notes"},{"line_number":168,"context_line":"    -------------------------------------------------------------------------------------"}],"source_content_type":"text/x-gfm","patch_set":4,"id":"AAAAQn%2F%2Fgp4%3D","line":165,"updated":"2013-07-30 01:50:26.000000000","message":"s/wiht/with/g","commit_id":"b5eb2524f057648bb799685eaff2304648e1f2c7"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"ed6575fb30a84de8876a3ac863491542d4d561f8","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    Q_PLUGIN\u003dml2"},{"line_number":163,"context_line":"    Q_ML2_TENANT_NETWORK_TYPE\u003dvxlan"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Additional ML2 related configuration variables are shown below. These are used for more complex ML2 deployments wiht devstack:"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    Variable Name                    Notes"},{"line_number":168,"context_line":"    -------------------------------------------------------------------------------------"}],"source_content_type":"text/x-gfm","patch_set":4,"id":"AAAAQn%2F%2Fe74%3D","line":165,"in_reply_to":"AAAAQn%2F%2Fgp4%3D","updated":"2013-07-30 14:02:57.000000000","message":"Done","commit_id":"b5eb2524f057648bb799685eaff2304648e1f2c7"}],"lib/neutron_plugins/ml2":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"156a721fdb884021fd82e8c21abad1694d3143e6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Q_AGENT\u003d${Q_AGENT:-openvswitch}"},{"line_number":10,"context_line":"# Default agent options if openvswitch is enabled"},{"line_number":11,"context_line":"if [ \"$Q_AGENT\" \u003d\u003d \"openvswitch\" ]; then"},{"line_number":12,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":13,"context_line":"fi"},{"line_number":14,"context_line":"source $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent"},{"line_number":15,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAQn%2F%2F4hk%3D","line":12,"updated":"2013-07-19 20:44:13.000000000","message":"Wouldn\u0027t this overwrite any Q_AGENT_EXTRA_AGENT_OPTS that the user has set?","commit_id":"4b74d26423c5dcbda2f6983a9d9997b4a091b0d1"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"229cfc6d26237d8a4efd5fe37bf3746b351dc71d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Q_AGENT\u003d${Q_AGENT:-openvswitch}"},{"line_number":10,"context_line":"# Default agent options if openvswitch is enabled"},{"line_number":11,"context_line":"if [ \"$Q_AGENT\" \u003d\u003d \"openvswitch\" ]; then"},{"line_number":12,"context_line":"    Q_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre)"},{"line_number":13,"context_line":"fi"},{"line_number":14,"context_line":"source $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent"},{"line_number":15,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAQn%2F%2F4fo%3D","line":12,"in_reply_to":"AAAAQn%2F%2F4hk%3D","updated":"2013-07-19 20:51:01.000000000","message":"Nice catch!","commit_id":"4b74d26423c5dcbda2f6983a9d9997b4a091b0d1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"156a721fdb884021fd82e8c21abad1694d3143e6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    CONF\u003d$2"},{"line_number":30,"context_line":"    SECTION\u003d$3"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    echo \"KYLE: Setting options ($OPTS) conf ($CONF) section ($SECTION)\""},{"line_number":33,"context_line":"    for I in \"${OPTS[@]}\"; do"},{"line_number":34,"context_line":"        # Replace the first \u0027\u003d\u0027 with \u0027 \u0027 for iniset syntax"},{"line_number":35,"context_line":"        iniset $CONF $SECTION ${I/\u003d/ }"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAQn%2F%2F4hA%3D","line":32,"updated":"2013-07-19 20:44:13.000000000","message":"Remove this line.","commit_id":"4b74d26423c5dcbda2f6983a9d9997b4a091b0d1"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"229cfc6d26237d8a4efd5fe37bf3746b351dc71d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    CONF\u003d$2"},{"line_number":30,"context_line":"    SECTION\u003d$3"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    echo \"KYLE: Setting options ($OPTS) conf ($CONF) section ($SECTION)\""},{"line_number":33,"context_line":"    for I in \"${OPTS[@]}\"; do"},{"line_number":34,"context_line":"        # Replace the first \u0027\u003d\u0027 with \u0027 \u0027 for iniset syntax"},{"line_number":35,"context_line":"        iniset $CONF $SECTION ${I/\u003d/ }"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAQn%2F%2F4fw%3D","line":32,"in_reply_to":"AAAAQn%2F%2F4hA%3D","updated":"2013-07-19 20:51:01.000000000","message":"Done","commit_id":"4b74d26423c5dcbda2f6983a9d9997b4a091b0d1"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"fd5fc55e6df18e1d072155968256ad93c474b498","unresolved":false,"context_lines":[{"line_number":17,"context_line":"}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"function neutron_plugin_configure_service() {"},{"line_number":20,"context_line":"    if [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":21,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE ml2 tenant_network_types gre"},{"line_number":22,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE ml2_type_gre tunnel_id_ranges $TENANT_TUNNEL_RANGES"},{"line_number":23,"context_line":"    elif [[ \"$ENABLE_TENANT_VLANS\" \u003d \"True\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAQn%2F%2F06w%3D","side":"PARENT","line":20,"updated":"2013-07-22 16:09:35.000000000","message":"I\u0027m not sure we really want to get rid of all this code. My understanding is that ENABLE_TENANT_TUNNELS, ENABLE_TENANT_VLANs, etc. are the primary user interface (for localrc), and that the Q_* variables are mostly internal. If none of these ENABLE_TENANT_* are set, the default of local tenant networks is used (with the warning), which is fine for most single-node devstack runs. \n\nI don\u0027t see why we need to deviate from this current approach used for selecting the tenant network type(s) used with the ml2, openvswitch, and linuxbridge plugins. Maybe we should just introduce an ML2_TUNNEL_TYPE variable that defaults to \u0027gre\u0027, and only applies if ENABLE_TENANT_TUNNELS is True.","commit_id":"80baf9a1993d3149fc259e95b6ee1cbb9adb2cc3"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"2ff4da4065cf3084723d539964fd441215f255d9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"function neutron_plugin_configure_service() {"},{"line_number":20,"context_line":"    if [[ \"$ENABLE_TENANT_TUNNELS\" \u003d \"True\" ]]; then"},{"line_number":21,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE ml2 tenant_network_types gre"},{"line_number":22,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE ml2_type_gre tunnel_id_ranges $TENANT_TUNNEL_RANGES"},{"line_number":23,"context_line":"    elif [[ \"$ENABLE_TENANT_VLANS\" \u003d \"True\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAQn%2F%2F0xE%3D","side":"PARENT","line":20,"in_reply_to":"AAAAQn%2F%2F06w%3D","updated":"2013-07-22 16:47:16.000000000","message":"I\u0027m fine with reworking this so that if you enable the default ENABLE_TENANT_TUNNELS and ENABLE_TENANT_VLANS it formats things using the new method. I\u0027ll take a crack at that today.","commit_id":"80baf9a1993d3149fc259e95b6ee1cbb9adb2cc3"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"fc9258775d90f30d38f90474084417c984782a84","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS:-}"},{"line_number":20,"context_line":"# Default VLAN TypeDriver options"},{"line_number":21,"context_line":"Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS:-}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"function populate_ml2_config() {"},{"line_number":24,"context_line":"    OPTS\u003d$1"},{"line_number":25,"context_line":"    CONF\u003d$2"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2FrSY%3D","line":22,"updated":"2013-07-25 12:17:01.000000000","message":"could we add a Q_ML2_TENANT_NETWORK_TYPE so that the user could choose between in type drivers for its tenant networks.","commit_id":"87a45878232d981e2b402cabb1cd47563cfb830b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"57ced30ae64e16b24053e0d72fa1f89b804747ee","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS:-}"},{"line_number":20,"context_line":"# Default VLAN TypeDriver options"},{"line_number":21,"context_line":"Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS:-}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"function populate_ml2_config() {"},{"line_number":24,"context_line":"    OPTS\u003d$1"},{"line_number":25,"context_line":"    CONF\u003d$2"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2FjBI%3D","line":22,"in_reply_to":"AAAAQn%2F%2FrSY%3D","updated":"2013-07-29 18:17:01.000000000","message":"Done","commit_id":"87a45878232d981e2b402cabb1cd47563cfb830b"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"fc9258775d90f30d38f90474084417c984782a84","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    # Since we enable the tunnel TypeDrivers, also enable a local_ip"},{"line_number":83,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE ovs local_ip $HOST_IP"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    populate_ml2_config type_drivers\u003d$Q_ML2_PLUGIN_TYPE_DRIVERS /$Q_PLUGIN_CONF_FILE ml2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    populate_ml2_config $Q_SRV_EXTRA_OPTS /$Q_PLUGIN_CONF_FILE ml2"},{"line_number":88,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2FrTA%3D","line":85,"updated":"2013-07-25 12:17:01.000000000","message":"you should also populate the agent config tunnel_types if vxlan and/or gre is set in Q_ML2_PLUGIN_TYPE_DRIVERS:\nQ_AGENT_EXTRA_AGENT_OPTS\u003d(tunnel_types\u003dgre,vxlan)","commit_id":"87a45878232d981e2b402cabb1cd47563cfb830b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"57ced30ae64e16b24053e0d72fa1f89b804747ee","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    # Since we enable the tunnel TypeDrivers, also enable a local_ip"},{"line_number":83,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE ovs local_ip $HOST_IP"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    populate_ml2_config type_drivers\u003d$Q_ML2_PLUGIN_TYPE_DRIVERS /$Q_PLUGIN_CONF_FILE ml2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    populate_ml2_config $Q_SRV_EXTRA_OPTS /$Q_PLUGIN_CONF_FILE ml2"},{"line_number":88,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2Fh7E%3D","line":85,"in_reply_to":"AAAAQn%2F%2FrTA%3D","updated":"2013-07-29 18:17:01.000000000","message":"Done","commit_id":"87a45878232d981e2b402cabb1cd47563cfb830b"}]}
