)]}'
{"functions":[{"author":{"_account_id":4726,"name":"Yoshihiro Kaneko","email":"ykaneko0929@gmail.com","username":"ykaneko0929"},"change_message_id":"ee81cba41b406784ff9e129dbfa0ca8ad6730090","unresolved":false,"context_lines":[{"line_number":493,"context_line":"    local conf_file\u003d$1"},{"line_number":494,"context_line":"    local section\u003d$2"},{"line_number":495,"context_line":"    local use_auth_url\u003d$3"},{"line_number":496,"context_line":"    if [[ -z $use_auth_url ]]; then"},{"line_number":497,"context_line":"        iniset $conf_file $section auth_url \"$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_AUTH_HOST:$KEYSTONE_AUTH_PORT/v2.0\""},{"line_number":498,"context_line":"    else"},{"line_number":499,"context_line":"        iniset $conf_file $section auth_host $KEYSTONE_SERVICE_HOST"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALH%2F%2FnfQ%3D","line":496,"updated":"2012-08-27 04:28:39.000000000","message":"maybe \"-n\" instead of \"-z\"","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"faaea46f08ef0bd085a5881b582e8b4914db3541","unresolved":false,"context_lines":[{"line_number":493,"context_line":"    local conf_file\u003d$1"},{"line_number":494,"context_line":"    local section\u003d$2"},{"line_number":495,"context_line":"    local use_auth_url\u003d$3"},{"line_number":496,"context_line":"    if [[ -z $use_auth_url ]]; then"},{"line_number":497,"context_line":"        iniset $conf_file $section auth_url \"$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_AUTH_HOST:$KEYSTONE_AUTH_PORT/v2.0\""},{"line_number":498,"context_line":"    else"},{"line_number":499,"context_line":"        iniset $conf_file $section auth_host $KEYSTONE_SERVICE_HOST"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALH%2F%2Flic%3D","line":496,"in_reply_to":"AAAALH%2F%2FnfQ%3D","updated":"2012-08-29 14:27:06.000000000","message":"Done","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0648cacea594f594f5fba5fcba852e19eb873458","unresolved":false,"context_lines":[{"line_number":509,"context_line":"    local bridge\u003d$1"},{"line_number":510,"context_line":"    for PORT in `sudo ovs-vsctl --no-wait list-ports $bridge`; do"},{"line_number":511,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":512,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridfe $PORT"},{"line_number":513,"context_line":"    done"},{"line_number":514,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":515,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALH%2F%2Fnk4%3D","line":512,"updated":"2012-08-26 13:30:07.000000000","message":"typo bridfe - this should be bridge","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"faaea46f08ef0bd085a5881b582e8b4914db3541","unresolved":false,"context_lines":[{"line_number":509,"context_line":"    local bridge\u003d$1"},{"line_number":510,"context_line":"    for PORT in `sudo ovs-vsctl --no-wait list-ports $bridge`; do"},{"line_number":511,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":512,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridfe $PORT"},{"line_number":513,"context_line":"    done"},{"line_number":514,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":515,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALH%2F%2FliY%3D","line":512,"in_reply_to":"AAAALH%2F%2Fnk4%3D","updated":"2012-08-29 14:27:06.000000000","message":"Done","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3b4f433eea0102e54411213f965f2400694d9663","unresolved":false,"context_lines":[{"line_number":488,"context_line":"    ENABLED_SERVICES\u003d$(_cleanup_service_list \"$tmpsvcs\")"},{"line_number":489,"context_line":"}"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"# Configures keystone integration for quantum service and agents"},{"line_number":492,"context_line":"function quantum_setup_keystone() {"},{"line_number":493,"context_line":"    local conf_file\u003d$1"},{"line_number":494,"context_line":"    local section\u003d$2"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"AAAALH%2F%2FlcE%3D","line":491,"updated":"2012-08-29 15:48:18.000000000","message":"These functions don\u0027t belong here, they\u0027re service-specific","commit_id":"251426bd32e3e84b5617789379d340e394963b5f"}],"lib/quantum":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"f8584007ab636b0e2ee56d2ba2d9c0ebc318e997","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAALH%2F%2Fk2A%3D","line":31,"updated":"2012-08-30 00:11:36.000000000","message":"Always deleting and re-creating the bridge means it cannot have a physical interface as a port providing network connectivity. It also means the host cannot have an IP address on the bridge. Network connectivity would seem to be needed for the L3 agent, as well as for the openvswitch agent that would otherwise use this function to create its bridge (or it might use the same bridge as the L3 agent). Why not just pass --may-exist to the ovs-vsctl add-br command?","commit_id":"e0d1d926c659624989e248f6336d9dec9c52d513"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"d704db97a746ee3545e2313dbbd42c411e1b16ef","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAALH%2F%2FkwY%3D","line":31,"in_reply_to":"AAAALH%2F%2Fk1s%3D","updated":"2012-08-30 03:16:28.000000000","message":"I like the idea of removing left-over ports from previous runs. But we need to be careful not to disrupt the host\u0027s network configuration, especially if this bridge contains the only network interface. I\u0027d prefer we only delete ports that match name prefixes that quantum would be responsible for. We could remove those matching tap* for now, and I\u0027d add those matching phy* and int* for the veth used in the provider patch.","commit_id":"e0d1d926c659624989e248f6336d9dec9c52d513"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"f3ec63354f1765422bace6f3f0fe1e4607b42a0f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAALH%2F%2Fk1s%3D","line":31,"in_reply_to":"AAAALH%2F%2Fk2A%3D","updated":"2012-08-30 00:21:27.000000000","message":"I think the reason why it deletes it is because it gets you back to a fresh setup. Alternately we could do ovs-vsctl list-ports and remove the ports (and not HOST_IP_IFACE if it is attached to that bridge).","commit_id":"e0d1d926c659624989e248f6336d9dec9c52d513"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"f820d8bea11bfb30614c8adf38753aa256002efc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAALH%2F%2FkXw%3D","line":31,"in_reply_to":"AAAALH%2F%2Fkbw%3D","updated":"2012-08-30 16:25:22.000000000","message":"I\u0027m more than a bit confused, so lets work through these points one by one:\n\n*    the external network is created by devstack, as well as a subnet on it. The default gateway for that subnet would become the default way for NATed quantum networks.\n\nI\u0027m not following this point at all. Are you referring to the OVS bridge being created by devstack, or to devstack creating a quantum virtual network, or both? Please clarify if you can.\n\n*    you can always specify a physical interface (the one that will drive your vm\u0027s packet to the internet), devstack already has a parameter for this that you can configure with localrc\n\nAre you referring to $GUEST_INTERFACE_DEFAULT and the various other devstack shell variables that inherit its value if not explicitly set?\n\nTo me, the big question is around how the physical interface gets associated with an OVS bridge, and, if necessary, the host\u0027s IP on that interface moved to that bridge? There are two possibilities:\n\n - My approach in the provider patch is to let the user preconfigure the bridge if they need network connectivity, and have devstack create the bridge (with no network connectivity) if its not preconfigured.\n\n - The other approach, which I think you are favoring, is for devstack to always configure the bridge. If network connectivity is needed, then devstack needs to add the physical interface to the bridge, and move any existing IP address to the bridge. \n\nOne other question is whether we generally want the same \"external\" OVS bridge to be used for both the L3 agent and for openvswitch\u0027s flat and VLAN networks, or whether we want separate OVS bridges for these? Don\u0027t forget that Fedora and RHEL don\u0027t support OVS GRE tunnels, so we need to make the OVS_ENABLE_TUNNELING\u003dFalse case usable as well.\n\n*    The external bridge however is likely to become cluttered with ports belonging to floating ips. It makes sense clearing it up at each run of stack.sh (I think we had a good reason for not doing the cleanup in unstack.sh)\n\nI do understand we want to cleanup clutter created by quantum. I\u0027m not sure why we wouldn\u0027t do this both in stack.sh and unstack.sh, as in Gary\u0027s linuxbridge cleanup patch. Deleting the bridge is certainly one way to clear it up. Matching port name prefixes is another.\n\n*    assign the gateway IP address of the external subnet to the bridge itself.\n\nI\u0027m not sure I\u0027m clear on what you mean by assigning an IP address to the bridge. Do you mean give the host an IP on the bridge that isn\u0027t the host\u0027s own real IP address? Maybe that\u0027s OK. Would it conflict with the bridge also having the hosts real (only) IP address too?\n\n*    This alone would give a simple environment to test NAT, although one can ping the gateway only.\n\nI think I understand.\n\n*    When a physical network is specified we will attach the interface to the external OVS/LB\n\nSo are you saying that devstack will be responsible for doing this?\n\n*    IP the physical interface has an IP, those IP will be removed from the physical interface and assigned to the external bridge; original addresses will be restored by unstack.sh; It seems the host loses connectivity as soon as it is plugged into the bridge when the chosen physical interface is its default gateway (this probably happens with ovs only)\n\nA script should be able move the IP from the interface to the bridge or from the bridge to the interface without any real impact. Are you seeing problems making this work with OVS?","commit_id":"e0d1d926c659624989e248f6336d9dec9c52d513"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e1568a0c80cb716a675fdc92a6c941fdaaff25b0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAALH%2F%2Fkbw%3D","line":31,"in_reply_to":"AAAALH%2F%2FkwY%3D","updated":"2012-08-30 15:21:34.000000000","message":"I am addressing Bob\u0027s comment in the following way:\n- the external network is created by devstack, as well as a subnet on it. The default gateway for that subnet would become the default way for NATed quantum networks.\n- you can always specify a physical interface (the one that will drive your vm\u0027s packet to the internet), devstack already has a parameter for this that you can configure with localrc\n- The external bridge however is likely to become cluttered with ports belonging to floating ips. It makes sense clearing it up at each run of stack.sh (I think we had a good reason for not doing the cleanup in unstack.sh)\n- assign the gateway IP address of the external subnet to the bridge itself. \nThis alone would give a simple environment to test NAT, although one can ping the gateway only.\n- When a physical network is specified we will attach the interface to the external OVS/LB\n- IP the physical interface has an IP, those IP will be removed from the physical interface and assigned to the external bridge; original addresses will be restored by unstack.sh; It seems the host loses connectivity as soon as it is plugged into the bridge when the chosen physical interface is its default gateway (this probably happens with ovs only)","commit_id":"e0d1d926c659624989e248f6336d9dec9c52d513"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"a67e09f09a78c941b6879f7fcf1204ca8080e62f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if [[ \"$PORT\" \u003d~ tap* ]]; then echo `sudo ip link delete $PORT` \u003e /dev/null; fi"},{"line_number":29,"context_line":"        sudo ovs-vsctl --no-wait del-port $bridge $PORT"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAALH%2F%2Fj6c%3D","line":31,"updated":"2012-08-31 01:09:39.000000000","message":"This is still deleting the existing bridge, which will destroy any prior setup of a physical interface, and break connectivity if that\u0027s the only physical interface. Can\u0027t we just add \"--may-exist\" to the add-br command below?","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"a67e09f09a78c941b6879f7fcf1204ca8080e62f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Restore xtrace"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAALH%2F%2Fj6g%3D","line":33,"updated":"2012-08-31 01:09:39.000000000","message":"I believe Dan had said the br-set-external-id command is not needed. Consider eliminating it.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"    sudo ovs-vsctl --no-wait -- --if-exists del-br $bridge"},{"line_number":32,"context_line":"    sudo ovs-vsctl --no-wait add-br $bridge"},{"line_number":33,"context_line":"    sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge"},{"line_number":34,"context_line":"}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Restore xtrace"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAALH%2F%2Fj2Y%3D","line":33,"in_reply_to":"AAAALH%2F%2Fj6g%3D","updated":"2012-08-31 03:43:35.000000000","message":"yes, we can remove it.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"}],"stack.sh":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"652b50d0f0244c96fde8779d90d4147567f903c8","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"    mkdir -p /$Q_PLUGIN_CONF_PATH"},{"line_number":1120,"context_line":"    Q_PLUGIN_CONF_FILE\u003d$Q_PLUGIN_CONF_PATH/$Q_PLUGIN_CONF_FILENAME"},{"line_number":1121,"context_line":"    cp $QUANTUM_DIR/$Q_PLUGIN_CONF_FILE /$Q_PLUGIN_CONF_FILE"},{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":"    sudo sed -i -e \"s/^sql_connection \u003d.*$/sql_connection \u003d mysql:\\/\\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\\/$Q_DB_NAME?charset\u003dutf8/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"    OVS_ENABLE_TUNNELING\u003d${OVS_ENABLE_TUNNELING:-True}"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FvOo%3D","line":1122,"updated":"2012-08-15 12:38:50.000000000","message":"Could you change it to use \"iniset\"? (though It is not related to this patch)\n\nThough I posted the patch https://review.openstack.org/#/c/10271/, but it is out-of-date for the latest devstack and half of the changes are already fixed. I think It is a good chance to fix it in your patch.","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a4750e0ab98012e9c5b712652ab8b88b7cac4015","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"    mkdir -p /$Q_PLUGIN_CONF_PATH"},{"line_number":1120,"context_line":"    Q_PLUGIN_CONF_FILE\u003d$Q_PLUGIN_CONF_PATH/$Q_PLUGIN_CONF_FILENAME"},{"line_number":1121,"context_line":"    cp $QUANTUM_DIR/$Q_PLUGIN_CONF_FILE /$Q_PLUGIN_CONF_FILE"},{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":"    sudo sed -i -e \"s/^sql_connection \u003d.*$/sql_connection \u003d mysql:\\/\\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\\/$Q_DB_NAME?charset\u003dutf8/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"    OVS_ENABLE_TUNNELING\u003d${OVS_ENABLE_TUNNELING:-True}"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FooM%3D","line":1122,"in_reply_to":"AAAALH%2F%2FvOo%3D","updated":"2012-08-24 07:49:20.000000000","message":"Should not be an issue","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"652b50d0f0244c96fde8779d90d4147567f903c8","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"            echo \"You are running OVS version $OVS_VERSION.\""},{"line_number":1130,"context_line":"            echo \"OVS 1.4+ is required for tunneling between multiple hosts.\""},{"line_number":1131,"context_line":"            exit 1"},{"line_number":1132,"context_line":"        fi"},{"line_number":1133,"context_line":"        sudo sed -i -e \"s/.*enable_tunneling \u003d .*$/enable_tunneling \u003d $OVS_ENABLE_TUNNELING/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1134,"context_line":"    fi"},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FvOg%3D","line":1132,"updated":"2012-08-15 12:38:50.000000000","message":"Same as the above. Could you use \"iniset\"?","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a4750e0ab98012e9c5b712652ab8b88b7cac4015","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"            echo \"You are running OVS version $OVS_VERSION.\""},{"line_number":1130,"context_line":"            echo \"OVS 1.4+ is required for tunneling between multiple hosts.\""},{"line_number":1131,"context_line":"            exit 1"},{"line_number":1132,"context_line":"        fi"},{"line_number":1133,"context_line":"        sudo sed -i -e \"s/.*enable_tunneling \u003d .*$/enable_tunneling \u003d $OVS_ENABLE_TUNNELING/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1134,"context_line":"    fi"},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FooI%3D","line":1132,"in_reply_to":"AAAALH%2F%2FvOg%3D","updated":"2012-08-24 07:49:20.000000000","message":"Should not be an issue","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"7c64ba50a3508009e260290f7d6928fa01b695c3","unresolved":false,"context_lines":[{"line_number":1204,"context_line":"# Quantum L3"},{"line_number":1205,"context_line":"# NOTE(salvatore-orlando): openvswitch is the only devstack-supported plugin capable"},{"line_number":1206,"context_line":"# of running the layer-3 agent so far"},{"line_number":1207,"context_line":"if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" ]] \u0026\u0026 is_service_enabled q-l3; then"},{"line_number":1208,"context_line":"    AGENT_L3_BINARY\u003d\"$QUANTUM_DIR/bin/quantum-l3-agent\""},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"    Q_L3_CONF_FILE\u003d/etc/quantum/l3_agent.ini"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FouE%3D","line":1207,"updated":"2012-08-24 02:43:04.000000000","message":"I think since you made this patch, l3 support has been added for linux bridge.","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6e281354d4391f7d20cf4fca49c9546f8da62e3","unresolved":false,"context_lines":[{"line_number":1204,"context_line":"# Quantum L3"},{"line_number":1205,"context_line":"# NOTE(salvatore-orlando): openvswitch is the only devstack-supported plugin capable"},{"line_number":1206,"context_line":"# of running the layer-3 agent so far"},{"line_number":1207,"context_line":"if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" ]] \u0026\u0026 is_service_enabled q-l3; then"},{"line_number":1208,"context_line":"    AGENT_L3_BINARY\u003d\"$QUANTUM_DIR/bin/quantum-l3-agent\""},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"    Q_L3_CONF_FILE\u003d/etc/quantum/l3_agent.ini"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2Fook%3D","line":1207,"in_reply_to":"AAAALH%2F%2FouE%3D","updated":"2012-08-24 07:09:01.000000000","message":"Yes, I\u0027ll add it.","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3f08db0d585eaabc87cbef1a8b85a069474bab3d","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"# Start up the quantum dhcp agent"},{"line_number":1245,"context_line":"screen_it q-dhcp \"sudo python $AGENT_DHCP_BINARY --config-file\u003d$Q_DHCP_CONF_FILE\""},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Start up the quantum l3 agent"},{"line_number":1248,"context_line":"screen_it q-l3 \"sudo python $AGENT_L3_BINARY --config-file\u003d$Q_L3_CONF_FILE\""},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"# Nova"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FvOU%3D","line":1247,"updated":"2012-08-15 12:14:30.000000000","message":"I think that you also need to pass --config-file $Q_CONF_FILE\nPlease note that this is missing from the line above","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a4750e0ab98012e9c5b712652ab8b88b7cac4015","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"# Start up the quantum dhcp agent"},{"line_number":1245,"context_line":"screen_it q-dhcp \"sudo python $AGENT_DHCP_BINARY --config-file\u003d$Q_DHCP_CONF_FILE\""},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Start up the quantum l3 agent"},{"line_number":1248,"context_line":"screen_it q-l3 \"sudo python $AGENT_L3_BINARY --config-file\u003d$Q_L3_CONF_FILE\""},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"# Nova"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FooE%3D","line":1247,"in_reply_to":"AAAALH%2F%2FouA%3D","updated":"2012-08-24 07:49:20.000000000","message":"I rebased and updated the startup line for the l3 agent","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"7c64ba50a3508009e260290f7d6928fa01b695c3","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"# Start up the quantum dhcp agent"},{"line_number":1245,"context_line":"screen_it q-dhcp \"sudo python $AGENT_DHCP_BINARY --config-file\u003d$Q_DHCP_CONF_FILE\""},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Start up the quantum l3 agent"},{"line_number":1248,"context_line":"screen_it q-l3 \"sudo python $AGENT_L3_BINARY --config-file\u003d$Q_L3_CONF_FILE\""},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"# Nova"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FouA%3D","line":1247,"in_reply_to":"AAAALH%2F%2FvOU%3D","updated":"2012-08-24 02:43:04.000000000","message":"I think he\u0027ll get the updated q-dhcp command when he re-bases (not sure though).  q-l3 I do not think needs the main quantum.conf yet, as it doesn\u0027t use RPC (correct me if i\u0027m wrong).","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"652b50d0f0244c96fde8779d90d4147567f903c8","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"screen_it q-dhcp \"sudo python $AGENT_DHCP_BINARY --config-file\u003d$Q_DHCP_CONF_FILE\""},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Start up the quantum l3 agent"},{"line_number":1248,"context_line":"screen_it q-l3 \"sudo python $AGENT_L3_BINARY --config-file\u003d$Q_L3_CONF_FILE\""},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"# Nova"},{"line_number":1251,"context_line":"# ----"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FvNo%3D","line":1248,"updated":"2012-08-15 12:38:50.000000000","message":"l3-agent talk with keystone, it is worth considering q-l3 starts after keystone started.\n\nIf q-l3 agent starts here, keystone communication errors are output to the logfile before keystone starts, though l3-agent works without problem).","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"a4750e0ab98012e9c5b712652ab8b88b7cac4015","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"screen_it q-dhcp \"sudo python $AGENT_DHCP_BINARY --config-file\u003d$Q_DHCP_CONF_FILE\""},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Start up the quantum l3 agent"},{"line_number":1248,"context_line":"screen_it q-l3 \"sudo python $AGENT_L3_BINARY --config-file\u003d$Q_L3_CONF_FILE\""},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"# Nova"},{"line_number":1251,"context_line":"# ----"}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAALH%2F%2FooQ%3D","line":1248,"in_reply_to":"AAAALH%2F%2FvNo%3D","updated":"2012-08-24 07:49:20.000000000","message":"Te keystone failures are transitory, so I don\u0027t see them as a major issue. I will try to address this issue, but I would like to keep the quantum-related code all in the same place in stack.sh.\n\nI think a guard can be installed so that the agent is started only when keystone is running","commit_id":"c803d56a770ec924f3a35fe3e4f326a094a1880e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eeaf6b3ad4394b84e9bf42bb47b1cf4e5ec3d1be","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"    Q_PLUGIN_CONF_FILE\u003d$Q_PLUGIN_CONF_PATH/$Q_PLUGIN_CONF_FILENAME"},{"line_number":1126,"context_line":"    cp $QUANTUM_DIR/$Q_PLUGIN_CONF_FILE /$Q_PLUGIN_CONF_FILE"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE DATABASE sql_connection mysql:\\/\\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\\/$Q_DB_NAME?charset\u003dutf8 "},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    OVS_ENABLE_TUNNELING\u003d${OVS_ENABLE_TUNNELING:-True}"},{"line_number":1131,"context_line":"    if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" \u0026\u0026 $OVS_ENABLE_TUNNELING \u003d \"True\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAALH%2F%2Fog8%3D","line":1128,"updated":"2012-08-24 13:37:49.000000000","message":"whitespace","commit_id":"7aafd256b9f82dba178c5fdd7ec90d7354add0d1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eeaf6b3ad4394b84e9bf42bb47b1cf4e5ec3d1be","unresolved":false,"context_lines":[{"line_number":1733,"context_line":"    if ! sudo vgs $VOLUME_GROUP; then"},{"line_number":1734,"context_line":"        VOLUME_BACKING_FILE\u003d${VOLUME_BACKING_FILE:-$DATA_DIR/${VOLUME_GROUP}-backing-file}"},{"line_number":1735,"context_line":"        # Only create if the file doesn\u0027t already exists"},{"line_number":1736,"context_line":"        [[ -f $VOLUME_BACfKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE"},{"line_number":1737,"context_line":"        DEV\u003d`sudo losetup -f --show $VOLUME_BACKING_FILE`"},{"line_number":1738,"context_line":"        # Only create if the loopback device doesn\u0027t contain $VOLUME_GROUP"},{"line_number":1739,"context_line":"        if ! sudo vgs $VOLUME_GROUP; then sudo vgcreate $VOLUME_GROUP $DEV; fi"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAALH%2F%2FohA%3D","line":1736,"updated":"2012-08-24 13:37:49.000000000","message":"\"f\" is added into \"-f $VOLUME_BACKING_FILE\" by mistake.","commit_id":"7aafd256b9f82dba178c5fdd7ec90d7354add0d1"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"e5bfb8b754c3531f27b949f6b4fa3474b28f8d1c","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    # Set verbose"},{"line_number":1219,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT verbose True"},{"line_number":1220,"context_line":"    # Set debug"},{"line_number":1221,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT debug True"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    quantum_setup_keystone $Q_L3_CONF_FILE DEFAULT set_auth_url"},{"line_number":1224,"context_line":""}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAALH%2F%2Fmco%3D","line":1221,"updated":"2012-08-28 13:57:18.000000000","message":"we should be setting metadata_ip here as well, I believe.  This is especially true, since a change that is coming down the pipe will change the default from 127.0.0.1 to the empty string.","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"faaea46f08ef0bd085a5881b582e8b4914db3541","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    # Set verbose"},{"line_number":1219,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT verbose True"},{"line_number":1220,"context_line":"    # Set debug"},{"line_number":1221,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT debug True"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    quantum_setup_keystone $Q_L3_CONF_FILE DEFAULT set_auth_url"},{"line_number":1224,"context_line":""}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAALH%2F%2FliQ%3D","line":1221,"in_reply_to":"AAAALH%2F%2Fmco%3D","updated":"2012-08-29 14:27:06.000000000","message":"Done","commit_id":"6a7294968f681f54925ba8a3876da98c5c2d2afe"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":274,"context_line":"# Use namespace or not"},{"line_number":275,"context_line":"Q_USE_NAMESPACE\u003d${Q_USE_NAMESPACE:-True}"},{"line_number":276,"context_line":"# Meta data IP"},{"line_number":277,"context_line":"Q_META_DATA_IP\u003d${Q_META_DATA_IP:-127.0.0.1}"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"# Name of the lvm volume group to use/create for iscsi volumes"},{"line_number":280,"context_line":"VOLUME_GROUP\u003d${VOLUME_GROUP:-stack-volumes}"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj2M%3D","line":277,"updated":"2012-08-31 03:43:35.000000000","message":"I believe its actually best to default this to $HOST_IP\n\nI saw something that implied that iptables rules with localhost won\u0027t do what we want.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"    # Set verbose"},{"line_number":1229,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT verbose True"},{"line_number":1230,"context_line":"    # Set debug"},{"line_number":1231,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT debug True"},{"line_number":1232,"context_line":""},{"line_number":1233,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT metadata_ip $Q_META_DATA_IP"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj2E%3D","line":1230,"updated":"2012-08-31 03:43:35.000000000","message":"this comments probably aren\u0027t needed.  pretty obvious what\u0027s happening here.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"        quantum_setup_ovs_bridge $PUBLIC_BRIDGE"},{"line_number":1242,"context_line":"    elif [[ \"$Q_PLUGIN\" \u003d \"linuxbridge\" ]]; then"},{"line_number":1243,"context_line":"        iniset $Q_L3_CONF_FILE DEFAULT interface_driver quantum.agent.linux.interface.BridgeInterfaceDriver"},{"line_number":1244,"context_line":"    fi"},{"line_number":1245,"context_line":"fi"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"# Quantum RPC support - must be updated prior to starting any of the services"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj1s%3D","line":1244,"updated":"2012-08-31 03:43:35.000000000","message":"this if-block is copy/paste from dhcp agent above..  maybe make it a function or set the variable somewhere else?  It seems like all agents in the devstack deployment are likely to use the same interface_driver.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"# Start the Quantum services"},{"line_number":1259,"context_line":"screen_it q-svc \"cd $QUANTUM_DIR \u0026\u0026 python $QUANTUM_DIR/bin/quantum-server --config-file $Q_CONF_FILE --config-file /$Q_PLUGIN_CONF_FILE\""},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"# Start up the quantum agent"},{"line_number":1262,"context_line":"screen_it q-agt \"sudo python $AGENT_BINARY --config-file $Q_CONF_FILE --config-file /$Q_PLUGIN_CONF_FILE\""},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"# Start up the quantum dhcp agent"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj1k%3D","line":1261,"updated":"2012-08-31 03:43:35.000000000","message":"plugin agent?","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":1825,"context_line":"    add_nova_opt \"quantum_url\u003dhttp://$Q_HOST:$Q_PORT\""},{"line_number":1826,"context_line":""},{"line_number":1827,"context_line":"    if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" ]]; then"},{"line_number":1828,"context_line":"        NOVA_VIF_DRIVER\u003d\"nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver\""},{"line_number":1829,"context_line":"        LINUXNET_VIF_DRIVER\u003d\"nova.network.linux_net.LinuxOVSInterfaceDriver\""},{"line_number":1830,"context_line":"    elif [[ \"$Q_PLUGIN\" \u003d \"linuxbridge\" ]]; then"},{"line_number":1831,"context_line":"        NOVA_VIF_DRIVER\u003d\"nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver\""}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj1g%3D","line":1828,"updated":"2012-08-31 03:43:35.000000000","message":"I\u0027d remove this, as it hasn\u0027t merged into Nova yet.  I\u0027ll put it in during a later commit.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":1829,"context_line":"        LINUXNET_VIF_DRIVER\u003d\"nova.network.linux_net.LinuxOVSInterfaceDriver\""},{"line_number":1830,"context_line":"    elif [[ \"$Q_PLUGIN\" \u003d \"linuxbridge\" ]]; then"},{"line_number":1831,"context_line":"        NOVA_VIF_DRIVER\u003d\"nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver\""},{"line_number":1832,"context_line":"        LINUXNET_VIF_DRIVER\u003d\"nova.network.linux_net.QuantumLinuxBridgeInterfaceDriver\""},{"line_number":1833,"context_line":"    fi"},{"line_number":1834,"context_line":"    add_nova_opt \"libvirt_vif_type\u003dethernet\""},{"line_number":1835,"context_line":"    add_nova_opt \"libvirt_vif_driver\u003d$NOVA_VIF_DRIVER\""}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj1U%3D","line":1832,"updated":"2012-08-31 03:43:35.000000000","message":"I believe now that we no longer rely on nova-network L3, we can remove the LINUXNET_VIF_DRIVER stuff here and a few lines above.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"a67e09f09a78c941b6879f7fcf1204ca8080e62f","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"        EXT_GW_IP\u003d$(quantum subnet-create --ip_version 4 $EXT_NET_ID $FLOATING_RANGE | grep \u0027gateway_ip\u0027 | get_field 2)"},{"line_number":2144,"context_line":"        quantum router-gateway-set $ROUTER_ID $EXT_NET_ID"},{"line_number":2145,"context_line":"        PREFIX\u003d${FLOATING_RANGE#*/}"},{"line_number":2146,"context_line":"        sudo ip addr add $EXT_GW_IP/$PREFIX dev $PUBLIC_BRIDGE"},{"line_number":2147,"context_line":"    fi"},{"line_number":2148,"context_line":"elif is_service_enabled mysql \u0026\u0026 is_service_enabled nova; then"},{"line_number":2149,"context_line":"    # Create a small network"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj6M%3D","line":2146,"updated":"2012-08-31 01:09:39.000000000","message":"Is the intent in giving the host the $EXT_GW_IP to allow the host to route externally over an interface that is not a port on $PUBLIC_BRIDGE? If that\u0027s the case, then maybe destroying and re-creating $PUBLIC_BRIDGE is OK. But I thought the discussion had been heading towards letting the user pre-configure the $PUBLIC_BRIDGE with a physical interface as a port, and potentially using this same bridge for VLANs. Can you clarify? I apologize if I\u0027m missing the point.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"117cf1aec31f8012c9791647320d27a0d1776562","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"        EXT_GW_IP\u003d$(quantum subnet-create --ip_version 4 $EXT_NET_ID $FLOATING_RANGE | grep \u0027gateway_ip\u0027 | get_field 2)"},{"line_number":2144,"context_line":"        quantum router-gateway-set $ROUTER_ID $EXT_NET_ID"},{"line_number":2145,"context_line":"        PREFIX\u003d${FLOATING_RANGE#*/}"},{"line_number":2146,"context_line":"        sudo ip addr add $EXT_GW_IP/$PREFIX dev $PUBLIC_BRIDGE"},{"line_number":2147,"context_line":"    fi"},{"line_number":2148,"context_line":"elif is_service_enabled mysql \u0026\u0026 is_service_enabled nova; then"},{"line_number":2149,"context_line":"    # Create a small network"}],"source_content_type":"text/x-sh","patch_set":9,"id":"AAAALH%2F%2Fj00%3D","line":2146,"in_reply_to":"AAAALH%2F%2Fj6M%3D","updated":"2012-08-31 03:43:35.000000000","message":"Sorry.  I suggested that Salvatore do this.  It is a very convenient thing to do for a single node setup where the person running openstack does not control the IP space on the adjacent physical network.  This is common if you\u0027re using a cloud VM for devstack.  The downside is that unless we do something like setup more iptables NAT rules on the host itself, VMs won\u0027t be able to access the Internet via VMs.  That said, in terms of testing, we can use the br-ex IP as a stand-in for \"external connectivity\".  \n\nIt also seems like we want two options.  The option described above, as well as the more traditional option of actually attaching a physical interface to br-ex.","commit_id":"14dea7232d49f034dc2ae40548e2e028865e70ad"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cd7ce37dc812ee4d596f12549694b2339e0bb58b","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"    if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" ]]; then"},{"line_number":1210,"context_line":"        # Set up integration bridge"},{"line_number":1211,"context_line":"        quantum_setup_ovs_bridge $OVS_BRIDGE"},{"line_number":1212,"context_line":"        sudo sed -i -e \"s/.*local_ip \u003d .*/local_ip \u003d $HOST_IP/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1213,"context_line":"        OVS_BRIDGE\u003d${OVS_BRIDGE:-br-int}"},{"line_number":1214,"context_line":"        if [[ \"$OVS_ENABLE_TUNNELING\" \u003d\u003d \"True\" ]]; then"},{"line_number":1215,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE OVS local_ip $HOST_IP"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAALH%2F%2FipM%3D","line":1212,"updated":"2012-09-01 16:57:45.000000000","message":"we should also use iniset here","commit_id":"6284dc1abbc18791aaaa01dab64e4998dd86e56e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cd7ce37dc812ee4d596f12549694b2339e0bb58b","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"        # Set up integration bridge"},{"line_number":1211,"context_line":"        quantum_setup_ovs_bridge $OVS_BRIDGE"},{"line_number":1212,"context_line":"        sudo sed -i -e \"s/.*local_ip \u003d .*/local_ip \u003d $HOST_IP/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1213,"context_line":"        OVS_BRIDGE\u003d${OVS_BRIDGE:-br-int}"},{"line_number":1214,"context_line":"        if [[ \"$OVS_ENABLE_TUNNELING\" \u003d\u003d \"True\" ]]; then"},{"line_number":1215,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE OVS local_ip $HOST_IP"},{"line_number":1216,"context_line":"        else"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAALH%2F%2FipQ%3D","line":1213,"updated":"2012-09-01 16:57:45.000000000","message":"This line should be at 1210\nThanks\nGary","commit_id":"6284dc1abbc18791aaaa01dab64e4998dd86e56e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ba2ba762b4dc98f7a03c354d1099270579031063","unresolved":false,"context_lines":[{"line_number":1274,"context_line":""},{"line_number":1275,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT metadata_ip $Q_META_DATA_IP"},{"line_number":1276,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT use_namespaces $Q_USE_NAMESPACE"},{"line_number":1277,"context_line":"    iniset $Q_L3_CONF_FILE DEFAULT externa_network_bridge $PUBLIC_BRIDGE"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"    quantum_setup_keystone $Q_L3_CONF_FILE DEFAULT set_auth_url"},{"line_number":1280,"context_line":"    if [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAALH%2F%2Fimk%3D","line":1277,"updated":"2012-09-02 10:26:04.000000000","message":"externa \u003d\u003e external","commit_id":"6284dc1abbc18791aaaa01dab64e4998dd86e56e"}]}
