#!/bin/bash

# Neutron metering plugin
# ---------------------------

# Save trace setting
_XTRACE_NETURON_METER=$(set +o | grep xtrace)
set +o xtrace


AGENT_METERING_BINARY="$NEUTRON_BIN_DIR/neutron-metering-agent"
METERING_PLUGIN="neutron.services.metering.metering_plugin.MeteringPlugin"

function neutron_agent_metering_configure_common {
    _neutron_service_plugin_class_add $METERING_PLUGIN
}

function neutron_agent_metering_configure_agent {
    METERING_AGENT_CONF_PATH=/etc/neutron/services/metering
    mkdir -p $METERING_AGENT_CONF_PATH

    METERING_AGENT_CONF_FILENAME="$METERING_AGENT_CONF_PATH/metering_agent.ini"

    cp $NEUTRON_DIR/etc/metering_agent.ini.sample $METERING_AGENT_CONF_FILENAME
}

function neutron_metering_stop {
    stop_process q-metering
}

# Restore xtrace
$_XTRACE_NETURON_METER

