summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/common-functions.sh13
-rwxr-xr-xlib/post-install-functions.sh3
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index 391d9405..6941093c 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -293,3 +293,16 @@ function verify_internet {
return 1
fi
}
+
+##tests if overcloud nodes have external connectivity
+#params:none
+function test_overcloud_connectivity {
+ for node in $(undercloud_connect stack ". stackrc && nova list" | grep -Eo "controller-[0-9]+|compute-[0-9]+" | tr -d -) ; do
+ if ! overcloud_connect $node "ping -c 2 $ping_site > /dev/null"; then
+ echo "${blue}Node ${node} was unable to ping site ${ping_site}${reset}"
+ return 1
+ fi
+ done
+ echo "${blue}Overcloud external connectivity OK${reset}"
+}
+
diff --git a/lib/post-install-functions.sh b/lib/post-install-functions.sh
index bf0b4446..a7499feb 100755
--- a/lib/post-install-functions.sh
+++ b/lib/post-install-functions.sh
@@ -123,7 +123,8 @@ fi
EOI
# for virtual, we NAT public network through Undercloud
- if [ "$virtual" == "TRUE" ] && [ "$public_network_ipv6" != "True" ]; then
+ # same goes for baremetal if only jumphost has external connectivity
+ if [ "$virtual" == "TRUE" ] || ! test_overcloud_connectivity && [ "$public_network_ipv6" != "True" ]; then
if ! configure_undercloud_nat ${public_network_cidr}; then
echo -e "${red}ERROR: Unable to NAT undercloud with external net: ${public_network_cidr}${reset}"
exit 1