Skip to content

Commit ccb1c79

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "create GRE bridge interfaces only once"
2 parents 53ba457 + 26fbe83 commit ccb1c79

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

functions.sh

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)