diff options
Diffstat (limited to 'packages/base/src/files/bin/monitor')
-rw-r--r-- | packages/base/src/files/bin/monitor | 180 |
1 files changed, 88 insertions, 92 deletions
diff --git a/packages/base/src/files/bin/monitor b/packages/base/src/files/bin/monitor index 6d40f7e2..864582f1 100644 --- a/packages/base/src/files/bin/monitor +++ b/packages/base/src/files/bin/monitor @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env ash # ============LICENSE_START======================================================= # ONAP @@ -21,122 +21,118 @@ source ${POLICY_HOME}/etc/profile.d/env.sh function usage() { - echo -n "syntax: $(basename $0) " - echo "[--debug]" + echo -n "syntax: $(basename $0) " + echo "[--debug]" } function log() { - echo "$(date +"%Y-%m-%d_%H-%M-%S") $1" >> ${POLICY_HOME}/logs/monitor.log + echo "$(date +"%Y-%m-%d_%H-%M-%S") $1" >> ${POLICY_HOME}/logs/monitor.log } function monitor() { - if [[ $DEBUG == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - CONTROLLER=$1 - STATUS=$2 - - if [[ -z ${CONTROLLER} ]]; then - log "WARNING: invalid invocation: no component provided" - return - fi - - if [[ -z ${STATUS} ]]; then - log "WARNING: invalid invocation: no on/off/uninstalled switch provided for ${CONTROLLER}" - return - fi - - if [[ "${STATUS}" == "off" ]]; then - off ${CONTROLLER} - else - if [[ "${STATUS}" == "on" ]]; then - on ${CONTROLLER} - fi - fi + if [ "$DEBUG" = "y" ]; then + echo "-- monitor --" + set -x + fi + + CONTROLLER=$1 + STATUS=$2 + + if [ -z "${CONTROLLER}" ]; then + log "WARNING: invalid invocation: no component provided" + return + fi + + if [ -z "${STATUS}" ]; then + log "WARNING: invalid invocation: no on/off/uninstalled switch provided for ${CONTROLLER}" + return + fi + + if [ "${STATUS}" = "off" ]; then + off ${CONTROLLER} + else + if [ "${STATUS}" = "on" ]; then + on ${CONTROLLER} + fi + fi } function on() { - if [[ $DEBUG == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - CONTROLLER=$1 - - ${POLICY_HOME}/bin/${CONTROLLER} status - if [[ $? != 0 ]]; then - log "starting ${CONTROLLER}" - - # need to make sure we don't pass the lock file descriptor - ${POLICY_HOME}/bin/${CONTROLLER} umstart {cfg}>&- - else - log "OK: ${CONTROLLER} (UP)" - fi + if [ "$DEBUG" = "y" ]; then + echo "-- on --" + set -x + fi + + CONTROLLER=$1 + + ${POLICY_HOME}/bin/${CONTROLLER} status + if [ $? -ne 0 ]; then + log "starting ${CONTROLLER}" + + # need to make sure we don't pass the lock file descriptor + ${POLICY_HOME}/bin/${CONTROLLER} umstart 200>&- + else + log "OK: ${CONTROLLER} (UP)" + fi } function off() { - if [[ $DEBUG == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - CONTROLLER=$1 - - ${POLICY_HOME}/bin/${CONTROLLER} status - if [[ $? != 0 ]]; then - log "OK: ${CONTROLLER} (DOWN)" - - else - log "stopping ${CONTROLLER}" - ${POLICY_HOME}/bin/${CONTROLLER} umstop - fi + if [ "$DEBUG" = "y" ]; then + echo "-- off --" + set -x + fi + + CONTROLLER=$1 + + ${POLICY_HOME}/bin/${CONTROLLER} status + if [ $? -ne 0 ]; then + log "OK: ${CONTROLLER} (DOWN)" + + else + log "stopping ${CONTROLLER}" + ${POLICY_HOME}/bin/${CONTROLLER} umstop + fi } function process_config() { - if [[ $DEBUG == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - CONF_FILE=${POLICY_HOME}/etc/monitor/monitor.cfg - while read line || [ -n "${line}" ]; do - if [[ -n ${line} ]] && [[ ${line} != *#* ]]; then - controller=$(echo "${line}" | awk -F = '{print $1;}') - status=$(echo "${line}" | awk -F = '{print $2;}') - if [[ -n ${controller} ]] && [[ -n ${status} ]]; then - monitor ${controller} ${status} - fi - fi - done < "${CONF_FILE}" - return 0 + if [ "$DEBUG" = "y" ]; then + echo "-- process_config --" + set -x + fi + local lines=$(grep "^[^#;]" ${CON_FILE} 2> /dev/null) + for line in ${lines} ; do + controller=$(echo "${line}" | awk -F = '{print $1;}') + status=$(echo "${line}" | awk -F = '{print $2;}') + if [ -n "${controller}" ] && [ -n "${status}" ]; then + monitor ${controller} ${status} + fi + done + return 0 } log "Enter monitor" DEBUG=n until [[ -z "$1" ]]; do - case $1 in - -d|--debug|debug) DEBUG=y - set -x - ;; - *) usage - exit 1 - ;; - esac - shift + case $1 in + -d|--debug|debug) DEBUG=y + set -x + ;; + *) usage + exit 1 + ;; + esac + shift done if pidof -o %PPID -x $(basename $0) > /dev/null 2>&1; then - log "WARNING: $(basename $0) from the previous iteration still running. Exiting." - exit 1 + log "WARNING: $(basename $0) from the previous iteration still running. Exiting." + exit 1 fi +CONF_FILE=${POLICY_HOME}/etc/monitor/monitor.cfg . ${POLICY_HOME}/etc/profile.d/env.sh -if flock ${cfg} ; then - process_config -fi {cfg}>>${POLICY_HOME}/etc/monitor/monitor.cfg.lock - - +if flock 200 ; then + process_config +fi 200>>${CONF_FILE}.lock |