When SERVICE_HOST is defined to literal IPv6 address
(i.e., [fdf8:f53b:82e4::179]) we will have to include
--globoff option for curl to be able to reach the various
openstack services. Using globoff works for both IPv6 and
IPv4 urls, so its safe to include this option for all curl
statements in devstack.
Closes-Bug: #1424943
Change-Id: I2afc16f2f94d7d7069b0ba61bc8348c03413e4e7
... | ... |
@@ -36,7 +36,7 @@ source $TOP_DIR/exerciserc |
36 | 36 |
is_service_enabled horizon || exit 55 |
37 | 37 |
|
38 | 38 |
# can we get the front page |
39 |
-curl http://$SERVICE_HOST 2>/dev/null | grep -q '<h3.*>Log In</h3>' || die $LINENO "Horizon front page not functioning!" |
|
39 |
+$CURL_GET http://$SERVICE_HOST 2>/dev/null | grep -q '<h3.*>Log In</h3>' || die $LINENO "Horizon front page not functioning!" |
|
40 | 40 |
|
41 | 41 |
set +o xtrace |
42 | 42 |
echo "*********************************************************************" |
... | ... |
@@ -35,7 +35,7 @@ source $TOP_DIR/exerciserc |
35 | 35 |
|
36 | 36 |
is_service_enabled sahara || exit 55 |
37 | 37 |
|
38 |
-curl http://$SERVICE_HOST:8386/ 2>/dev/null | grep -q 'Auth' || die $LINENO "Sahara API isn't functioning!" |
|
38 |
+$CURL_GET http://$SERVICE_HOST:8386/ 2>/dev/null | grep -q 'Auth' || die $LINENO "Sahara API isn't functioning!" |
|
39 | 39 |
|
40 | 40 |
set +o xtrace |
41 | 41 |
echo "*********************************************************************" |
... | ... |
@@ -35,7 +35,7 @@ source $TOP_DIR/exerciserc |
35 | 35 |
|
36 | 36 |
is_service_enabled zaqar-server || exit 55 |
37 | 37 |
|
38 |
-curl http://$SERVICE_HOST:8888/v1/ 2>/dev/null | grep -q 'queue_name' || die $LINENO "Zaqar API not functioning!" |
|
38 |
+$CURL_GET http://$SERVICE_HOST:8888/v1/ 2>/dev/null | grep -q 'queue_name' || die $LINENO "Zaqar API not functioning!" |
|
39 | 39 |
|
40 | 40 |
set +o xtrace |
41 | 41 |
echo "*********************************************************************" |
... | ... |
@@ -325,13 +325,15 @@ function use_database { |
325 | 325 |
fi |
326 | 326 |
} |
327 | 327 |
|
328 |
+#Macro for curl statements. curl requires -g option for literal IPv6 addresses. |
|
329 |
+CURL_GET="${CURL_GET:-curl -g}" |
|
328 | 330 |
|
329 | 331 |
# Wait for an HTTP server to start answering requests |
330 | 332 |
# wait_for_service timeout url |
331 | 333 |
function wait_for_service { |
332 | 334 |
local timeout=$1 |
333 | 335 |
local url=$2 |
334 |
- timeout $timeout sh -c "while ! curl -k --noproxy '*' -s $url >/dev/null; do sleep 1; done" |
|
336 |
+ timeout $timeout sh -c "while ! $CURL_GET -k --noproxy '*' -s $url >/dev/null; do sleep 1; done" |
|
335 | 337 |
} |
336 | 338 |
|
337 | 339 |
|
... | ... |
@@ -340,7 +340,7 @@ function start_ceilometer { |
340 | 340 |
# only die on API if it was actually intended to be turned on |
341 | 341 |
if is_service_enabled ceilometer-api; then |
342 | 342 |
echo "Waiting for ceilometer-api to start..." |
343 |
- if ! timeout $SERVICE_TIMEOUT sh -c "while ! curl --noproxy '*' -s http://localhost:8777/v2/ >/dev/null; do sleep 1; done"; then |
|
343 |
+ if ! wait_for_service $SERVICE_TIMEOUT $CEILOMETER_SERVICE_PROTOCOL://$CEILOMETER_SERVICE_HOST:$CEILOMETER_SERVICE_PORT/v2/; then |
|
344 | 344 |
die $LINENO "ceilometer-api did not start" |
345 | 345 |
fi |
346 | 346 |
fi |
... | ... |
@@ -564,7 +564,7 @@ function start_keystone { |
564 | 564 |
# Check that the keystone service is running. Even if the tls tunnel |
565 | 565 |
# should be enabled, make sure the internal port is checked using |
566 | 566 |
# unencryted traffic at this point. |
567 |
- if ! timeout $SERVICE_TIMEOUT sh -c "while ! curl --noproxy '*' -k -s $auth_protocol://$KEYSTONE_SERVICE_HOST:$service_port/v$IDENTITY_API_VERSION/ >/dev/null; do sleep 1; done"; then |
|
567 |
+ if ! wait_for_service $SERVICE_TIMEOUT $auth_protocol://$KEYSTONE_SERVICE_HOST:$service_port/v$IDENTITY_API_VERSION/; then |
|
568 | 568 |
die $LINENO "keystone did not start" |
569 | 569 |
fi |
570 | 570 |
|