From 1dd29b3daffa50c5fdd61f05ba51cb175af82058 Mon Sep 17 00:00:00 2001 From: Derek Higgins Date: Tue, 20 Mar 2018 11:29:25 +0000 Subject: [PATCH] Add support to ping IPv6 metadata IP Change-Id: Ifc5d690da7e01b3b710eae80d0f6f9f6822b48fa Closes-Bug: #1757110 --- network/scripts/run-os-net-config.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/network/scripts/run-os-net-config.sh b/network/scripts/run-os-net-config.sh index 32a507c5c8..2fbe6bac1c 100755 --- a/network/scripts/run-os-net-config.sh +++ b/network/scripts/run-os-net-config.sh @@ -19,7 +19,7 @@ function get_metadata_ip() { # Look for a variety of Heat transports # FIXME: Heat should provide a way to obtain this in a single place for URL in os-collect-config.cfn.metadata_url os-collect-config.heat.auth_url os-collect-config.request.metadata_url os-collect-config.zaqar.auth_url; do - METADATA_IP=$(os-apply-config --key $URL --key-default '' --type raw 2>/dev/null | sed -e 's|http.*://\([^:]*\).*|\1|') + METADATA_IP=$(os-apply-config --key $URL --key-default '' --type raw 2>/dev/null | sed -e 's|http.*://\[\?\([^]]*\)]\?:.*|\1|') [ -n "$METADATA_IP" ] && break done @@ -43,8 +43,13 @@ function ping_metadata_ip() { echo -n "Trying to ping metadata IP ${METADATA_IP}..." + _ping=ping + if [[ "$METADATA_IP" =~ ":" ]] ; then + _ping=ping6 + fi + local COUNT=0 - until ping -c 1 $METADATA_IP &> /dev/null; do + until $_ping -c 1 $METADATA_IP &> /dev/null; do COUNT=$(( $COUNT + 1 )) if [ $COUNT -eq 10 ]; then echo "FAILURE"