summaryrefslogtreecommitdiffstats
path: root/packages/base/src/files/bin/monitor.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packages/base/src/files/bin/monitor.sh')
-rw-r--r--packages/base/src/files/bin/monitor.sh139
1 files changed, 139 insertions, 0 deletions
diff --git a/packages/base/src/files/bin/monitor.sh b/packages/base/src/files/bin/monitor.sh
new file mode 100644
index 000000000..fb311bc04
--- /dev/null
+++ b/packages/base/src/files/bin/monitor.sh
@@ -0,0 +1,139 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP Policy Engine
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+#!/bin/bash
+
+function usage() {
+ echo -n "syntax: $(basename $0) "
+ echo "[--debug]"
+}
+
+function 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
+
+ COMPONENT=$1
+ STATUS=$2
+
+ if [[ -z ${COMPONENT} ]]; 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 ${COMPONENT}"
+ return
+ fi
+
+ if [[ "${STATUS}" == "off" ]]; then
+ off ${COMPONENT}
+ else
+ if [[ "${STATUS}" == "on" ]]; then
+ on ${COMPONENT}
+ fi
+ fi
+}
+
+function on() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ COMPONENT=$1
+
+ ${POLICY_HOME}/etc/init.d/${COMPONENT} status
+ if [[ $? != 0 ]]; then
+ log "starting ${COMPONENT}"
+
+ ${POLICY_HOME}/etc/init.d/${COMPONENT} umstart
+ else
+ log "OK: ${COMPONENT} (UP)"
+ fi
+}
+
+function off() {
+ if [[ $DEBUG == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ COMPONENT=$1
+
+ ${POLICY_HOME}/etc/init.d/${COMPONENT} status
+ if [[ $? != 0 ]]; then
+ log "OK: ${COMPONENT} (DOWN)"
+
+ else
+ log "stopping ${COMPONENT}"
+ ${POLICY_HOME}/etc/init.d/${COMPONENT} umstop
+ fi
+}
+
+function 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
+ component=$(echo "${line}" | awk -F = '{print $1;}')
+ status=$(echo "${line}" | awk -F = '{print $2;}')
+ if [[ -n ${component} ]] && [[ -n ${status} ]]; then
+ monitor ${component} ${status}
+ fi
+ fi
+ done < "${CONF_FILE}"
+ 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
+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
+fi
+
+. ${POLICY_HOME}/etc/profile.d/env.sh
+
+
+config
+