#!/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 }