#!/bin/bash
#
# common functions for collectd ceilometer plugin
# -----------------------------------------------
# start/stop service
#
function start_collectd {
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
sudo service collectd restart
fi
}
function stop_collectd {
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
sudo service collectd stop
fi
}
# install collectd service
function install_collectd {
if [[ "$COLLECTD_INSTALL" == True ]]; then
if is_fedora || is_ubuntu; then
install_package collectd
else
die $LINENO "No support for collectd on this platform"
fi
fi
}
# Add conf file for plugin
function adapt_collectd_conf {
if [ ! -d "$COLLECTD_CONF_DIR" ]; then
sudo mkdir "$COLLECTD_CONF_DIR"
fi
cat << EOF | sudo tee $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
Globals true
ModulePath "$COLLECTD_CEILOMETER_DIR"
LogTraces true
Interactive false
Import "collectd_ceilometer.plugin"
# Verbosity True|False
VERBOSE $COLLECTD_CEILOMETER_VERBOSE
# Batch size
BATCH_SIZE "$COLLECTD_BATCH_SIZE"
# Service endpoint addresses
OS_AUTH_URL "$OS_AUTH_URL"
OS_IDENTITY_API_VERSION "$OS_IDENTITY_API_VERSION"
# Ceilometer address
#CEILOMETER_ENDPOINT
CEILOMETER_URL_TYPE "$CEILOMETER_URL_TYPE"
# Ceilometer timeout in ms
CEILOMETER_TIMEOUT "$CEILOMETER_TIMEOUT"
# # Ceilometer user creds
OS_USERNAME "ceilometer"
OS_PASSWORD "$SERVICE_PASSWORD"
OS_TENANT_NAME "$SERVICE_TENANT_NAME"
EOF
# Configure collectd logfile plugin
if [ -n $COLLECTD_LOG_FILE ]; then
touch $COLLECTD_LOG_FILE
cat << EOF | sudo tee "$COLLECTD_CONF_DIR/logfile.conf"
LoadPlugin "logfile"
LogLevel "$COLLECTD_LOG_LEVEL"
File "$COLLECTD_LOG_FILE"
Timestamp true
EOF
fi
}
# remove plugin conf file
function restore_collectd_conf {
if [ -f '$COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf' ]; then
sudo rm -f $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo rm -f $COLLECTD_CONF_DIR/logfile.conf
fi
}