diff --git a/contrib/ci/pre_test_hook.sh b/contrib/ci/pre_test_hook.sh index ec00e1fdfe..224a29a30b 100755 --- a/contrib/ci/pre_test_hook.sh +++ b/contrib/ci/pre_test_hook.sh @@ -194,6 +194,7 @@ if [[ "$MANILA_SETUP_IPV6" == True ]]; then # regular Neutron DevStack configuration. echo "NEUTRON_CREATE_INITIAL_NETWORKS=False" >> $localconf echo "IP_VERSION=4+6" >> $localconf + echo "MANILA_RESTORE_IPV6_DEFAULT_ROUTE=False" >> $localconf fi if [[ "$DRIVER" == "generic"* ]]; then diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 6ef6451128..73d069e7c1 100755 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -1013,8 +1013,12 @@ function install_libraries { function setup_ipv6 { - # save IPv6 default route to add back later after enabling forwarding - local default_route=$(ip -6 route | grep default | cut -d ' ' -f1,2,3,4,5) + # This will fail with multiple default routes and is not needed in CI + # but may be useful when developing with devstack locally + if [ $(trueorfalse False MANILA_RESTORE_IPV6_DEFAULT_ROUTE) == True ]; then + # save IPv6 default route to add back later after enabling forwarding + local default_route=$(ip -6 route | grep default | cut -d ' ' -f1,2,3,4,5) + fi # make sure those system values are set sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 @@ -1130,11 +1134,15 @@ function setup_ipv6 { # log the systemd status sudo systemctl status $QUAGGA_SERVICES - # add default IPv6 route back - if ! [[ -z $default_route ]]; then - # "replace" should ignore "RTNETLINK answers: File exists" - # error if the route wasn't flushed by the bgp setup we did earlier. - sudo ip -6 route replace $default_route + # This will fail with mutltiple default routes and is not needed in CI + # but may be useful when developing with devstack locally + if [ $(trueorfalse False MANILA_RESTORE_IPV6_DEFAULT_ROUTE) == True ]; then + # add default IPv6 route back + if ! [[ -z $default_route ]]; then + # "replace" should ignore "RTNETLINK answers: File exists" + # error if the route wasn't flushed by the bgp setup we did earlier. + sudo ip -6 route replace $default_route + fi fi } diff --git a/devstack/settings b/devstack/settings index 827da80f40..5d4cb5b017 100644 --- a/devstack/settings +++ b/devstack/settings @@ -210,6 +210,7 @@ MANILA_DATA_COPY_CHECK_HASH=${MANILA_DATA_COPY_CHECK_HASH:=True} # Manila IPv6 Setup flag MANILA_SETUP_IPV6=${MANILA_SETUP_IPV6:=False} +MANILA_RESTORE_IPV6_DEFAULT_ROUTE=${MANILA_RESTORE_IPV6_DEFAULT_ROUTE:=True} # Enable manila services # ----------------------