From d0c8723c26613391a3a7cab2e887d3f6e0e03a0c Mon Sep 17 00:00:00 2001 From: Ryota MIBU Date: Fri, 19 Aug 2016 17:58:20 +0900 Subject: [PATCH] update workaround for notification from OpenStack Now ssh tunnels will be created from each controller node to functest container, so that aodh can send message to doctor consumer in functest VM. Change-Id: Ia4360e78caa99b17a27802477765ec055c1144d7 Signed-off-by: Ryota MIBU --- tests/run.sh | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/tests/run.sh b/tests/run.sh index 7531c989..42600dac 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -166,8 +166,10 @@ create_alarm() { # get vm_id as test user ceilometer $as_doctor_user alarm-list | grep -q " $ALARM_NAME " && return 0 vm_id=$(openstack $as_doctor_user server list | grep " $VM_NAME " | awk '{print $2}') + # TODO(r-mibu): change notification endpoint from localhost to the consumer + # IP address (functest container). ceilometer $as_doctor_user alarm-event-create --name "$ALARM_NAME" \ - --alarm-action "http://$CONSUMER_IP:$CONSUMER_PORT/failure" \ + --alarm-action "http://localhost:$CONSUMER_PORT/failure" \ --description "VM failure" \ --enabled True \ --repeat-actions False \ @@ -208,19 +210,39 @@ 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 + + # NOTE(r-mibu): create tunnel to the controller nodes, 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 & + if [[ "$INSTALLER_TYPE" == "apex" ]] ; then + CONTROLLER_IPS=$(nova list | grep ' overcloud-controller-[0-9] ' \ + | sed -e 's/^.*ctlplane=//' -e 's/ *|$//') + fi + if [[ -z "$CONTROLLER_IPS" ]]; then + echo "ERROR: Could not get CONTROLLER_IPS." + exit 1 + fi + for ip in $CONTROLLER_IPS + do + forward_rule="-R $CONSUMER_PORT:localhost:$CONSUMER_PORT" + tunnel_command="sudo ssh $ssh_opts $ip $forward_rule sleep 600" + $tunnel_command > "ssh_tunnel.${ip}.log" 2>&1 < /dev/null & + done } 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 + + # NOTE(r-mibu): terminate tunnels to the controller nodes + for ip in $CONTROLLER_IPS + do + forward_rule="-R $CONSUMER_PORT:localhost:$CONSUMER_PORT" + tunnel_command="sudo ssh $ssh_opts $ip $forward_rule sleep 600" + kill $(pgrep -f "$tunnel_command") + print_log "ssh_tunnel.${ip}.log" + done } wait_for_vm_launch() { -- 2.16.6