#!/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
<LoadPlugin python>
  Globals true
</LoadPlugin>

<Plugin python>
    ModulePath "$COLLECTD_CEILOMETER_DIR"
    LogTraces true
    Interactive false
    Import "collectd_ceilometer.plugin"

    <Module "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"

        # 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"

    </Module>
</Plugin>
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"
<Plugin "logfile">
  LogLevel "$COLLECTD_LOG_LEVEL"
  File "$COLLECTD_LOG_FILE"
  Timestamp true
</Plugin>
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

}
