/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */

object CheckCommand "ipmi-sensor" {
	import "ipv4-or-ipv6"

	command = [ PluginContribDir + "/check_ipmi_sensor" ]

	arguments = {
		"-H" = {
			value = "$ipmi_address$"
			description = "Hostname or ip address of the IPMI interface (default: host.address or host.address6)"
		}
		"-f" = {
			value = "$ipmi_config_file$"
			description = "Path to the FreeIPMI configuration file"
		}
		"-U" = {
			value = "$ipmi_username$"
			description = "Username to connect with"
		}
		"-P" = {
			value = "$ipmi_password$"
			description = "Password to use"
		}
		"-L" = {
			value = "$ipmi_privilege_level$"
			description = "Privilege level of the user"
		}
		"-b" = {
			set_if = "$ipmi_backward_compatibility_mode$"
			description = "Enable backward compatibility mode (for FreeIPMI 0.5.*)"
		}
		"-T" = {
			value = "$ipmi_sensor_type$"
			description = "Limit sensors to query based on IPMI sensor type (seperated by comma)"
		}
		"-ST" = {
			value = "$ipmi_sel_type$"
			description = "Limit SEL entries to specific types. (seperated by comma)"
		}
		"-x" = {
			value = "$ipmi_exclude_sensor_id$"
			description = "Exclude sensor matching ipmi_sensor_id"
		}
		"-xT" = {
			value = "$ipmi_exclude_sensor$"
			description = "Exclude sensors based on IPMI sensor type. (seperated by comma)"
		}
		"-xST" = {
			value = "$ipmi_exclude_sel$"
			description = "Exclude SEL entries of specific sensor types. (seperated by comma)"
		}
		"-i" = {
			value = "$ipmi_sensor_id$"
			description = "Include sensor matching ipmi_sensor_id"
		}
		"--nosel" = {
			set_if = "$ipmi_no_sel_checking$"
			description = "Turn off system event log checking via ipmi-sel"
		}
		"--nothresholds" = {
			set_if = "$ipmi_no_thresholds$"
			description = "Turn off performance data thresholds from output-sensor-thresholds"
		}
		"-D" = {
			value = "$ipmi_protocol_lan_version$"
			description = "Change the protocol LAN version (default: LAN_2_0)"
		}
		"-fc" = {
			value = "$ipmi_number_of_active_fans$"
			description = "Number of fans that should be active"
		}
		"--fru" = {
			set_if = "$ipmi_show_fru$"
			description = "Print the product serial number got by ipmi-fru"
		}
		"--noentityabsent" = {
			set_if = "$ipmi_noentityabsent$"
			description = "Skip sensor checks for sensors that have 'noentityabsent' as event state"
		}
		"-vv" = {
			set_if = "$ipmi_verbose$"
			description = "Be Verbose multi line output, also with additional details for warnings"
		}
		"-vvv" = {
			set_if = "$ipmi_debug$"
			description = "Be Verbose debugging output, followed by normal multi line output"
		}
		"-us" = {
			value = "$ipmi_unify_file$"
			description = "Path to the unify file to unify sensor names."
		}
	}

	vars.ipmi_address = "$check_address$"
	vars.ipmi_protocol_lan_version = "LAN_2_0"
}

/*
 * Icinga2 CheckCommand definition for an IPMI interface ping check
*/

template CheckCommand "ipmi-alive-common" {
	vars.ping_wrta = 5000.0
	vars.ping_wpl = 100

	vars.ping_crta = 5000.0
	vars.ping_cpl = 100

	vars.ping_packets = 1
}
object CheckCommand "ipmi-alive" {
	import "ping"
	import "ipmi-alive-common"
}
