From a6795a5dec13bccd3113975a206a5e1c44fc3efc Mon Sep 17 00:00:00 2001 From: Ryota MIBU Date: Thu, 18 Aug 2016 02:20:46 +0900 Subject: workaround for issue controller cannot talk to consumer The doctor test kick by functest fails in some deployment due to no connectivity from controller to the doctor consumer. To avoid this issue, this patch add ssh tunnel from installer node to the functest contatiner. JIRA: DOCTOR-63 Change-Id: Ide85137767382a53ebd15b875fd216aeed632705 Signed-off-by: Ryota MIBU --- tests/run.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/run.sh b/tests/run.sh index 5f2a56e6..731d2ac6 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -114,7 +114,8 @@ prepare_compute_ssh() { } get_consumer_ip() { - CONSUMER_IP=$(ip route get $COMPUTE_IP | awk '/ src /{print $NF}') + CONSUMER_IP=$(sudo ssh $ssh_opts root@$INSTALLER_IP \ + "ip route get $COMPUTE_IP | awk '/ src /{print \$NF}'") echo "CONSUMER_IP=$CONSUMER_IP" if [[ -z "$CONSUMER_IP" ]]; then @@ -206,12 +207,19 @@ stop_inspector() { start_consumer() { pgrep -f "python consumer.py" && return 0 python consumer.py "$CONSUMER_PORT" > consumer.log 2>&1 & + # NOTE(r-mibu): create tunnel to the installer node, so that we can + # avoid some network problems dpends on infra and installers. + # This tunnel will be terminated by stop_consumer() or after 10 mins passed. + TUNNEL_COMMAND="sudo ssh $ssh_opts $INSTALLER_IP -R $CONSUMER_PORT:localhost:$CONSUMER_PORT 'sleep 600'" + $TUNNEL_COMMAND > ssh_tunnel.log 2>&1 < /dev/null & } stop_consumer() { pgrep -f "python consumer.py" || return 0 kill $(pgrep -f "python consumer.py") print_log consumer.log + kill $(pgrep -f "$TUNNEL_COMMAND") + print_log ssh_tunnel.log } wait_for_vm_launch() { -- cgit 1.2.3-korg