#!/usr/bin/env ash # ============LICENSE_START======================================================= # ONAP # ================================================================================ # Copyright (C) 2017-2020 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========================================================= function usage() { echo -n "syntax: $(basename $0) " echo -n "[--debug] " echo "status|start|stop" } function check_x_file() { if [ "$DEBUG" = "y" ]; then echo "-- check_x_file --" set -x fi FILE=$1 if [[ ! -f ${FILE} || ! -x ${FILE} ]]; then return 1 fi return 0 } function policy_op() { if [ "$DEBUG" = "y" ]; then echo "-- policy_op --" set -x fi operation=$1 cd $POLICY_HOME echo "[drools-pdp-controllers]" if check_x_file "${BIN_SCRIPT}"; then trap "rm -f /tmp/out$$" EXIT ${BIN_SCRIPT} ${operation} >/tmp/out$$ echo " L [${controller}]: $(sed ':a;N;$!ba;s/\n/ /g' /tmp/out$$)" else echo " L [${controller}]: -" fi } function policy_status() { if [ "$DEBUG" = "y" ]; then echo "-- policy_status --" set -x fi echo policy_op "status" NUM_CRONS=$(crontab -l 2>/dev/null | wc -l) echo " ${NUM_CRONS} cron jobs installed." echo echo "[features]" features status local databases=$(ls -d "${POLICY_HOME}"/etc/db/migration/*/ 2>/dev/null) if [ -n "${databases}" ]; then echo "[migration]" db-migrator -s ALL -o ok fi } function policy_start() { if [ "$DEBUG" = "y" ]; then echo "-- policy_start --" set -x fi policy_op "start" } function policy_exec() { if [ "$DEBUG" = "y" ]; then echo "-- policy_exec --" set -x fi cd $POLICY_HOME if check_x_file "${BIN_SCRIPT}"; then ${BIN_SCRIPT} "exec" fi } function policy_stop() { if [ "$DEBUG" = "y" ]; then echo "-- policy_stop --" set -x fi policy_op "stop" } ######################################################################### ## ## script execution body ## ######################################################################### source ${POLICY_HOME}/etc/profile.d/env.sh if [ "${DEBUG}" = "y" ]; then echo "-- $0 $* --" set -x fi BIN_SCRIPT="bin/policy-management-controller" OPERATION=none until [ -z "$1" ]; do case $1 in -d | --debug | debug) DEBUG=y set -x ;; -i | --status | status) OPERATION=status ;; -s | --start | start) OPERATION=start ;; -x | --exec | exec) OPERATION=exec ;; -h | --stop | stop | --halt | halt) OPERATION=halt ;; *) usage exit 1 ;; esac shift done # operation validation case $OPERATION in status) ;; start) ;; exec) ;; halt) ;; *) echo "invalid operation \(${OPERATION}\): must be in {status|start|stop}" usage exit 1 ;; esac if [ -z "${POLICY_HOME}" ]; then echo "error: POLICY_HOME is unset." exit 1 fi # operation validation case $OPERATION in status) policy_status ;; start) policy_start ;; exec) policy_exec ;; halt) policy_stop ;; *) echo "invalid operation \(${OPERATION}\): must be in {status|start|stop|exec}" usage exit 1 ;; esac