collectd-openstack-plugins/devstack/libs/collectd

91 lines
3.3 KiB
Bash

#!/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
}
function install_requirements {
echo "Installing pre-resquisites"
if is_ubuntu; then
install_package libvirt-bin libvirt-dev python-libvirt
elif is_fedora; then
install_package libvirt libvirt-devel libvirt-python
fi
}
# install collectd
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 -p "$COLLECTD_CONF_DIR"
fi
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/collectd-ceilometer-plugin.conf $COLLECTD_CONF_DIR/
# Configure collectd-ceiloemter-plugin.conf
sudo sed -i 's|ModulePath.*$|ModulePath "'$COLLECTD_CEILOMETER_DIR'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|VERBOSE.*$|VERBOSE '$COLLECTD_CEILOMETER_VERBOSE'|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|BATCH_SIZE.*$|BATCH_SIZE "'$COLLECTD_BATCH_SIZE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_AUTH_URL.*$|OS_AUTH_URL "'$OS_AUTH_URL'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|CEILOMETER_URL_TYPE.*$|CEILOMETER_URL_TYPE "'$CEILOMETER_URL_TYPE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|CEILOMETER_TIMEOUT.*$|CEILOMETER_TIMEOUT "'$CEILOMETER_TIMEOUT'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_PASSWORD.*$|OS_PASSWORD "'$SERVICE_PASSWORD'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_TENANT_NAME.*$|OS_TENANT_NAME "'$SERVICE_TENANT_NAME'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
# Configure custom units
if [[ "$COLLECTD_CEILOMETER_UNITS" != none ]]; then
OIFS=$IFS
IFS=','
for UNIT in $COLLECTD_CEILOMETER_UNITS
do
sudo sed -i '/<UNITS>/a\ UNIT '"$UNIT"'' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
done
IFS=$OIFS
fi
# Configure collectd logfile plugin
if [ -n $COLLECTD_LOG_FILE ]; then
touch $COLLECTD_LOG_FILE
fi
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/logfile.conf $COLLECTD_CONF_DIR/01-logfile.conf
sudo sed -i 's|LogLevel.*$|LogLevel "'$COLLECTD_LOG_LEVEL'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
sudo sed -i 's|File.*$|File "'$COLLECTD_LOG_FILE'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
}
# 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/01-logfile.conf
fi
}