summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyota MIBU <r-mibu@cq.jp.nec.com>2016-08-19 17:58:20 +0900
committerRyota MIBU <r-mibu@cq.jp.nec.com>2016-08-19 18:02:20 +0900
commitd0c8723c26613391a3a7cab2e887d3f6e0e03a0c (patch)
treeac86d66dfd439af19878820d56ac5c0d7f0a140b
parent38a2b7c629688a1a8b362e1d4ffb5c8cde965dad (diff)
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 <r-mibu@cq.jp.nec.com>
-rwxr-xr-xtests/run.sh34
1 files 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() {