diff options
-rw-r--r-- | lib/common-functions.sh | 13 | ||||
-rwxr-xr-x | lib/post-install-functions.sh | 3 |
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 |