#!/usr/bin/env bash
# chkconfig: 345 95 20
# description: ambari-server daemon
# processname: ambari-server

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

# /etc/init.d/ambari-server

VERSION="1.5.1.110"
HASH="${buildNumber}"

case "$1" in
  --version)
        echo -e $VERSION
        exit 0
        ;;
  --hash)
        echo -e $HASH
        exit 0
        ;;
esac

export PATH=/usr/share/ambari/ambari-server/lib/*:$PATH
export AMBARI_CONF_DIR=/etc/ambari-server/conf:$PATH

# Because Ambari rpm unpacks modules here on all systems
export PYTHONPATH=/usr/lib/python2.6/site-packages:$PYTHONPATH

if [ -a /usr/bin/python ]; then
  PYTHON=/usr/bin/python
fi

if [ -a /var/lib/ambari-server/ambari-env.sh ]; then
  . /var/lib/ambari-server/ambari-env.sh
fi

if [ -z "$PYTHON" ]; then
  PYTHON=/usr/bin/python
fi

if [ -z "$AMBARI_PASSPHRASE" ]; then
  AMBARI_PASSPHRASE="DEV"
fi

if [ -n "$JAVA_HOME" ]; then
  export JAVA_HOME=$JAVA_HOME
fi

export AMBARI_PASSPHRASE=$AMBARI_PASSPHRASE

# check for version
majversion=`$PYTHON -V 2>&1 | awk '{print $2}' | cut -d'.' -f1`
minversion=`$PYTHON -V 2>&1 | awk '{print $2}' | cut -d'.' -f2`
numversion=$(( 10 * $majversion + $minversion))
if (( $numversion < 26 )); then
  echo "Need python version > 2.6"
  exit 1
fi
echo "Using python " $PYTHON

case "$1" in
  start)
        echo -e "Starting ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  stop)
        echo -e "Stopping ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  reset)
        echo -e "Resetting ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  restart)
        echo -e "Restarting ambari-server"
        $0 stop
        $0 start
        ;;
  upgrade)
        echo -e "Upgrading ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  status)
        echo -e "Ambari-server status"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  upgradestack)
        echo -e "Upgrading stack of ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  setup)
        echo -e "Setup ambari-server"
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  setup-ldap)
        echo -e "Setting up LDAP properties..."
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  setup-security)
        echo -e "Security setup options..."
        $PYTHON /usr/share/ambari/ambari-server/sbin/ambari-server.py $@
        ;;
  *)
        echo "Usage: /usr/sbin/ambari-server
        {start|stop|restart|setup|upgrade|status|upgradestack|setup-ldap|setup-security} [options]
        Use usr/sbin/ambari-server <action> --help to get details on options available.
        Or, simply invoke ambari-server.py --help to print the options."
        exit 1
esac

exit 0
