@@ -1028,7 +1028,12 @@ function ovs_gre_bridge {
10281028 # as for the mtu, look for notes on lp#1301958 in devstack-vm-gate.sh
10291029 sudo ip link set mtu $mtu dev $bridge_name
10301030 if [[ " $set_ips " == " True" ]] ; then
1031- sudo ip addr add ${pub_addr_prefix} .${offset} /${pub_addr_mask} dev ${bridge_name}
1031+ echo " Set bridge: ${bridge_name} "
1032+ if ! sudo ip addr show dev ${bridge_name} | grep -q \
1033+ ${pub_addr_prefix} .${offset} /${pub_addr_mask} ; then
1034+ sudo ip addr add ${pub_addr_prefix} .${offset} /${pub_addr_mask} \
1035+ dev ${bridge_name}
1036+ fi
10321037 fi
10331038 for node_ip in $peer_ips ; do
10341039 (( offset++ ))
@@ -1041,7 +1046,7 @@ function ovs_gre_bridge {
10411046 # Create the gre tunnel for the Controller/Network Node:
10421047 # This establishes a tunnel between remote $node_ip to local $host_ip
10431048 # uniquely identified by a key $offset
1044- sudo ovs-vsctl add-port $bridge_name \
1049+ sudo ovs-vsctl --may-exist add-port $bridge_name \
10451050 ${bridge_name} _${node_ip} \
10461051 -- set interface ${bridge_name} _${node_ip} type=gre \
10471052 options:remote_ip=${node_ip} \
@@ -1052,16 +1057,19 @@ function ovs_gre_bridge {
10521057 remote_command $node_ip " $install_ovs_deps "
10531058 remote_command $node_ip sudo ovs-vsctl --may-exist add-br $bridge_name
10541059 remote_command $node_ip sudo ip link set mtu $mtu dev $bridge_name
1055- remote_command $node_ip sudo ovs-vsctl add-port $bridge_name \
1060+ remote_command $node_ip sudo ovs-vsctl --may-exist add-port $bridge_name \
10561061 ${bridge_name} _${host_ip} \
10571062 -- set interface ${bridge_name} _${host_ip} type=gre \
10581063 options:remote_ip=${host_ip} \
10591064 options:key=${offset} \
10601065 options:local_ip=${node_ip}
10611066 if [[ " $set_ips " == " True" ]] ; then
1062- remote_command $node_ip \
1063- sudo ip addr add ${pub_addr_prefix} .${offset} /${pub_addr_mask} \
1064- dev ${bridge_name}
1067+ if ! remote_command $node_ip sudo ip addr show dev ${bridge_name} | \
1068+ grep -q ${pub_addr_prefix} .${offset} /${pub_addr_mask} ; then
1069+ remote_command $node_ip sudo ip addr add \
1070+ ${pub_addr_prefix} .${offset} /${pub_addr_mask} \
1071+ dev ${bridge_name}
1072+ fi
10651073 fi
10661074 done
10671075}
0 commit comments