pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/docker-playground/+/37471?usp=email )

Change subject: asterisk: Wait for Asterisk ready before starting testsuite
......................................................................

asterisk: Wait for Asterisk ready before starting testsuite

A recent commit made Asterisk wait for dnsmasq to be ready before
starting it. This means Asterisk takes more time now to be ready itself,
hence we need to delay launching the testsuite until it is ready.
Otherwise, the entire set of tests may be run even before Asterisk gets
to answer on the AMI socket.

Change-Id: I337d57f3eb3e6688dbf3c61d55978da10d84b2cb
---
M ttcn3-asterisk-ims-ue-test/jenkins.sh
M ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
2 files changed, 28 insertions(+), 3 deletions(-)

Approvals:
  osmith: Looks good to me, but someone else must approve
  Jenkins Builder: Verified
  pespin: Looks good to me, approved




diff --git a/ttcn3-asterisk-ims-ue-test/jenkins.sh 
b/ttcn3-asterisk-ims-ue-test/jenkins.sh
index cad25bd..0707cb9 100755
--- a/ttcn3-asterisk-ims-ue-test/jenkins.sh
+++ b/ttcn3-asterisk-ims-ue-test/jenkins.sh
@@ -74,6 +74,7 @@
                        --ulimit core=-1 \
                        -e "TTCN3_PCAP_PATH=/data" \
                        -e "EXTRA_IPADDR=${EXTRA_IPADDR}" \
+                       -e "ASTERISK_IPADDR=${ASTERISK_IPADDR}" \
                        -v 
"$VOL_BASE_DIR/asterisk-ims-ue-tester-${test_config}:/data" \
                        --name "${BUILD_TAG}-ttcn3-asterisk-ims-ue-test" \
                        $DOCKER_ARGS \
@@ -109,17 +110,19 @@
        if [ "$i" = "ipv4" ]; then
                NETMASK_PREFIX="24"
                SUBNET_IP_PREFIX="$SUB4_PREFIX.$SUBNET"
+               ASTERISK_IPADDR="${SUBNET_IP_PREFIX}.${ASTERISK_IP_SUFFIX}"
                DNS_IPADDR="${SUBNET_IP_PREFIX}.${DNS_IP_SUFFIX}"
                
EXTRA_IPADDR="${SUBNET_IP_PREFIX}.${IMSCORE_IP_SUFFIX}/${NETMASK_PREFIX}"
        elif [ "$i" = "ipv6" ]; then
                NETMASK_PREFIX="64"
                SUBNET_IP_PREFIX="$SUB6_PREFIX:$SUBNET"
+               ASTERISK_IPADDR="${SUBNET_IP_PREFIX}::${ASTERISK_IP_SUFFIX}"
                DNS_IPADDR="${SUBNET_IP_PREFIX}::${DNS_IP_SUFFIX}"
                
EXTRA_IPADDR="${SUBNET_IP_PREFIX}::${IMSCORE_IP_SUFFIX}/${NETMASK_PREFIX}"

                # Replace IPv4 addresses with IPv6 ones:
                
REPLACE_V4_TO_V6_EXPR="s,${SUB4_PREFIX}\.${SUBNET}\.,${SUB6_PREFIX}:${SUBNET}::,g"
-               
REPLACE_V4_TO_V6_PORT_EXPR="s,${SUB4_PREFIX}\.${SUBNET}\.${ASTERISK_IP_SUFFIX}:,[${SUB6_PREFIX}:${SUBNET}::${ASTERISK_IP_SUFFIX}]:,g"
+               
REPLACE_V4_TO_V6_PORT_EXPR="s,${SUB4_PREFIX}\.${SUBNET}\.${ASTERISK_IP_SUFFIX}:,[${ASTERISK_IPADDR}]:,g"
                sed -i -E -e "${REPLACE_V4_TO_V6_EXPR}" 
"${VOL_BASE_DIR}/dnsmasq-${i}"/*.conf
                sed -i -E -e 
"s,${SUB4_PREFIX}\.${SUBNET}\.${TTCN3_IP_SUFFIX}/24,${SUB6_PREFIX}:${SUBNET}::${TTCN3_IP_SUFFIX}/${NETMASK_PREFIX},g"
 "${VOL_BASE_DIR}/asterisk-${i}"/manager.conf
                sed -i -E -e "s,${SUB4},${SUB6},g" 
"${VOL_BASE_DIR}/asterisk-${i}"/*.conf
@@ -130,8 +133,6 @@

        start_dnsmasq "$i"
        start_asterisk "$i"
-       # Leave some time for asterisk to start:
-       sleep 5
        start_testsuite "$i"

        docker_kill_wait "$BUILD_TAG"-asterisk || true
diff --git a/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh 
b/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
index e1d4fac..5787d1f 100755
--- a/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
+++ b/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
@@ -13,4 +13,13 @@
 # IPv6 addresses may take an extra while to be available ('tentative' state):
 while [ -n "$(ip -6 addr show tentative)" ]; do sleep 1; done

+# Wait for Asterisk to be ready, which in turn may be waiting for dnsmasq to 
be ready...
+for i in $(seq 100); do
+  set -e
+  netcat -z -v "${ASTERISK_IPADDR}" 5038 && break
+  set +e
+  echo "[$i] Asterisk AMI ${ASTERISK_IPADDR} (port 5038) not ready, waiting..."
+  sleep 1
+done
+
 ttcn3-docker-run asterisk Asterisk_Tests

--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/37471?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I337d57f3eb3e6688dbf3c61d55978da10d84b2cb
Gerrit-Change-Number: 37471
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to