ceilometer-powervm/devstack/plugin.sh

122 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
#
# plugin.sh - Devstack extras script to install and configure the ceilometer
# hypervisor inspector for powervm
# This driver is enabled in ceilometer.conf with:
# hypervisor_inspector=powervm
# The following entry points are called in this order for ceilometer-powervm:
#
# - install_ceilometer_powervm
# - configure_ceilometer_powervm
# - start_ceilometer_powervm
# - stop_ceilometer_powervm
# - cleanup_ceilometer_powervm
# Save trace setting
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
# Defaults
# --------
# Set up base directories
CEILOMETER_CONF_DIR=${CEILOMETER_CONF_DIR:-/etc/ceilometer}
CEILOMETER_CONF=${CEILOMETER_CONF:-CEILOMETER_CONF_DIR/ceilometer.conf}
NOVA_CONF=${NOVA_CONF:-/etc/nova/nova.conf}
# ceilometer-powervm directories
CEILOMETER_POWERVM_DIR=${CEILOMETER_POWERVM_DIR:-${DEST}/ceilometer-powervm}
CEILOMETER_POWERVM_PLUGIN_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
# Source functions
source $CEILOMETER_POWERVM_PLUGIN_DIR/powervm-functions.sh
# Entry Points
# ------------
# configure_ceilometer_powervm() - Configure the system to use ceilometer_powervm
function configure_ceilometer_powervm {
# Set the hypervisor inspector to be powervm
iniset $CEILOMETER_CONF DEFAULT hypervisor_inspector $HYPERVISOR_INSPECTOR
# Set the compute monitors
iniset $NOVA_CONF DEFAULT compute_monitors cpu.virt_driver
}
# install_ceilometer_powervm() - Install ceilometer_powervm and necessary dependencies
function install_ceilometer_powervm {
# Install the ceilometer-powervm package
setup_develop $CEILOMETER_POWERVM_DIR
}
# start_ceilometer_powervm() - Start the ceilometer_powervm process
function start_ceilometer_powervm {
# Check that NovaLink is installed and running
check_novalink_install
# Start the pvm ceilometer compute agent
run_process pvm-ceilometer-acompute "$CEILOMETER_BIN_DIR/ceilometer-polling --polling-namespaces compute --config-file $CEILOMETER_CONF"
}
# stop_ceilometer_powervm() - Stop the ceilometer_powervm process
function stop_ceilometer_powervm {
# Stop the pvm ceilometer compute agent
stop_process pvm-ceilometer-acompute
}
# cleanup_ceilometer_powervm() - Cleanup the ceilometer_powervm process
function cleanup_ceilometer_powervm {
# This function intentionally left blank
:
}
# Core Dispatch
# -------------
if is_service_enabled pvm-ceilometer-acompute; then
if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
# Install NovaLink if set
if [[ "$INSTALL_NOVALINK" = "True" ]]; then
echo_summary "Installing NovaLink"
install_novalink
fi
fi
if [[ "$1" == "stack" && "$2" == "install" ]]; then
# Perform installation of ceilometer-powervm
echo_summary "Installing ceilometer-powervm"
install_ceilometer_powervm
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
# Lay down configuration post install
echo_summary "Configuring ceilometer-powervm"
configure_ceilometer_powervm
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
# Initialize and start the ceilometer compute agent for PowerVM
echo_summary "Starting ceilometer-powervm"
start_ceilometer_powervm
fi
if [[ "$1" == "unstack" ]]; then
# Shut down the ceilometer compute agent for PowerVM
echo_summary "Stopping ceilometer-powervm"
stop_ceilometer_powervm
fi
if [[ "$1" == "clean" ]]; then
# Remove any lingering configuration data
# clean.sh first calls unstack.sh
echo_summary "Cleaning up ceilometer-powervm and associated data"
cleanup_ceilometer_powervm
fi
fi
# Restore xtrace
$MY_XTRACE
# Local variables:
# mode: shell-script
# End: