#!/bin/bash
##

set -eu

. /etc/xensource-inventory
UPGRADE="false"
[ -r ${FIRSTBOOT_DATA_DIR}/host.conf ] && . ${FIRSTBOOT_DATA_DIR}/host.conf


start() {
    [ "$UPGRADE" = true ] && return 0

    XAPI_START_TIMEOUT_SECONDS=240
    /opt/xensource/bin/xapi-wait-init-complete ${XAPI_START_TIMEOUT_SECONDS}

    if [ -z "$CONTROL_DOMAIN_UUID" ]; then
	echo "cannot set control domain params"
	return 1
    fi

    # create a perfmon config which generates alarms on dom0 fs usage level and memory pressure
    FS_USAGE_TRIGGER_LEVEL=0.9
    FS_USAGE_TRIGGER_PERIOD=60
    FS_USAGE_AUTO_INHIBIT_PERIOD=3600
    MEM_USAGE_TRIGGER_LEVEL=0.95
    MEM_USAGE_TRIGGER_PERIOD=60
    MEM_USAGE_AUTO_INHIBIT_PERIOD=3600
    LOG_FS_USAGE_TRIGGER_LEVEL=0.9
    LOG_FS_USAGE_TRIGGER_PERIOD=60
    LOG_FS_USAGE_AUTO_INHIBIT_PERIOD=3600
    PERFMON_CONFIG="<config><variable><name value=\"fs_usage\"/><alarm_trigger_level value=\"$FS_USAGE_TRIGGER_LEVEL\"/><alarm_trigger_period value=\"$FS_USAGE_TRIGGER_PERIOD\"/><alarm_auto_inhibit_period value=\"$FS_USAGE_AUTO_INHIBIT_PERIOD\"/></variable><variable><name value=\"mem_usage\"/><alarm_trigger_level value=\"$MEM_USAGE_TRIGGER_LEVEL\"/><alarm_trigger_period value=\"$MEM_USAGE_TRIGGER_PERIOD\"/><alarm_auto_inhibit_period value=\"$MEM_USAGE_AUTO_INHIBIT_PERIOD\"/></variable><variable><name value=\"log_fs_usage\"/><alarm_trigger_level value=\"$LOG_FS_USAGE_TRIGGER_LEVEL\"/><alarm_trigger_period value=\"$LOG_FS_USAGE_TRIGGER_PERIOD\"/><alarm_auto_inhibit_period value=\"$LOG_FS_USAGE_AUTO_INHIBIT_PERIOD\"/></variable></config>"
    $XE vm-param-set uuid="$CONTROL_DOMAIN_UUID" other-config:perfmon="$PERFMON_CONFIG"
}

case $1 in
    start)  start ;;
esac
