]> source.dussan.org Git - nextcloud-server.git/commitdiff
Use sockets for startup notification in primary storage tests
authorMorris Jobke <hey@morrisjobke.de>
Tue, 1 Mar 2016 09:45:48 +0000 (10:45 +0100)
committerMorris Jobke <hey@morrisjobke.de>
Tue, 1 Mar 2016 09:45:48 +0000 (10:45 +0100)
tests/objectstore/start-swift-ceph.sh
tests/objectstore/stop-swift-ceph.sh

index 8863a1f9f163a0f5e1a86b0d9769a3b15d25f0f4..46cf51ad6cfac1ea854879da45cf119fc55e3236 100755 (executable)
@@ -28,6 +28,10 @@ docker pull ${docker_image}
 # retrieve current folder to place the config in the parent folder
 thisFolder="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
+# create readiness notification socket
+notify_sock=$(readlink -f "$thisFolder"/dockerContainerCeph.$EXECUTOR_NUMBER.swift.sock)
+mkfifo "$notify_sock"
+
 port=5034
 
 user=test
@@ -45,6 +49,7 @@ container=`docker run -d \
     -e KEYSTONE_SERVICE=${service} \
     -e OSD_SIZE=300 \
     -v ${thisFolder}/entrypoint.sh:/entrypoint.sh \
+    -v "$notify_sock":/run/notifyme.sock \
     --privileged \
     --entrypoint /entrypoint.sh ${docker_image}`
 
@@ -57,20 +62,13 @@ echo "${docker_image} container: $container"
 echo $container >> $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
 
 echo -n "Waiting for ceph initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 80 </dev/null >&/dev/null \
-    || nc -w 1 ${host} 80 </dev/null >&/dev/null); do
-    sleep 1
-    echo -n '.'
-    if (( $(date +%s) > starttime + 160 )); then
-       echo
-       echo "[ERROR] Waited 120 seconds, no response" >&2
-       exit 1
-    fi
-done
-echo
-sleep 20 # the keystone server also needs some time to fully initialize
+ready=$(timeout 600 cat "$notify_sock")
+if [[ $ready != 'READY=1' ]]; then
+    echo "[ERROR] Waited 600 seconds, no response" >&2
+    docker logs $container
+    exit 1
+fi
+sleep 1
 
 cat > $thisFolder/swift.config.php <<DELIM
 <?php
index 400db8925e9223ee31e1e27000ee7ff4e1881e4a..23423e73d6af834a8f9d3bdca5c790c86165ee75 100755 (executable)
@@ -38,3 +38,4 @@ fi;
 # cleanup
 rm -rf $thisFolder/swift.config.php
 rm -rf $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
+rm -rf $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift.sock