From 1aecd985b917c697e81b0b4b42693e02d3507474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20M=C3=A1gr?= Date: Tue, 7 Nov 2017 12:23:37 +0100 Subject: [PATCH] Healthcheck for nova_migration_target container nova_migration_target container reuses nova_compute container, so we have to adapt the health check to support both containers. Closes-Bug: #1730649 Change-Id: Id48e32b43d2e0cd4319905131f1c0bee9774e5f0 --- healthcheck/common.sh | 15 +++++++++++++++ healthcheck/nova-compute | 18 +++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/healthcheck/common.sh b/healthcheck/common.sh index 343fe58e1..98fa7aead 100644 --- a/healthcheck/common.sh +++ b/healthcheck/common.sh @@ -25,6 +25,21 @@ healthcheck_port () { ss -ntp | awk '{print $5,"-",$6}' | egrep ":($ports)" | grep "$process" } +healthcheck_listen () { + process=$1 + + # ss truncate command name to 15 characters and this behaviour + # cannot be diabled + if [ ${#process} -gt 15 ] ; then + process=${process:0:15} + fi + + shift 1 + args=$@ + ports=${args// /|} + ss -lnp | awk '{print $5,"-",$7}' | egrep ":($ports)" | grep "$process" +} + get_config_val () { crudini --get "$1" "$2" "$3" 2> /dev/null || echo "$4" } diff --git a/healthcheck/nova-compute b/healthcheck/nova-compute index 24c412a7a..14e4a78b1 100755 --- a/healthcheck/nova-compute +++ b/healthcheck/nova-compute @@ -2,13 +2,21 @@ . ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh -process='nova-compute' -args="${@:-5671 5672}" +if ps -e | grep nova-compute; then + process='nova-compute' + args="${@:-5671 5672}" + test_func='healthcheck_port' + err_msg="There is no $process process with opened RabbitMQ ports (${args// /,}) running in the container" +else + process='sshd' + args="${@:-2022}" + test_func='healthcheck_listen' + err_msg="There is no $process process listening on port(s) ${args// /,} in the container" +fi -if healthcheck_port $process $args; then +if $test_func $process $args; then exit 0 else - ports=${args// /,} - echo "There is no $process process with opened RabbitMQ ports ($ports) running in the container" + echo $err_msg exit 1 fi