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

object CheckCommand "hpasm" {
	import "ipv4-or-ipv6"

	command = [ PluginContribDir + "/check_hpasm" ]

	arguments = {
		"--hostname" = {
			value = "$hpasm_hostname$"
			set_if = "$hpasm_remote$"
			description = "Hostname or IP-address of the server (SNMP mode only)"
		}
		"--community" = {
			value = "$hpasm_community$"
			description = "SNMP community of the server (SNMP v1/2 only)"
		}
		"--protocol" = {
			value = "$hpasm_protocol$"
			description = "The SNMP protocol to use (default: 2c, other possibilities: 1,3)"
		}
		"--port" = {
			value = "$hpasm_port$"
			description = "The SNMP port to use (default: 161)"
		}
		"--blacklist" = {
			value = "$hpasm_blacklist$"
			description = "Blacklist some (missing/failed) components"
		}
		"--ignore-dimms" = {
			set_if = "$hpasm_ignore-dimms$"
			description = "Ignore \"N/A\"-DIMM status on misc. servers (e.g. older DL320)"
		}
		"--ignore-fan-redundancy" = {
			set_if = "$hpasm_ignore-fan-redundancy$"
			description = "Ignore missing redundancy partners"
		}
		"--customthresholds" = {
			value = "$hpasm_customthresholds$"
			description = "Use custom thresholds for certain temperatures"
		}
		"--eventrange" = {
			value = "$hpasm_eventrange$"
			description = "Period of time before critical IML events respecively become warnings or vanish. A range is descibed as a number and a unit (s, m, h, d), e.g. --eventrange 1h/20m."
		}
		"--perfdata" = {
			value = "$hpasm_perfdata$"
			description = "Output performance data. If your performance data string becomes too long and is truncated by Nagios, then you can use --perfdata=short instead. This will output temperature tags without location information"
		}
		"--username" = {
			value = "$hpasm_username$"
			description = "The securityName for the USM security model (SNMPv3 only)"
		}
		"--authpassword" = {
			value = "$hpasm_authpassword$"
			description = "The authentication password for SNMPv3"
		}
		"--authprotocol" = {
			value = "$hpasm_authprotocol$"
			description = "The authentication protocol for SNMPv3 (md5|sha)"
		}
		"--privpassword" = {
			value = "$hpasm_privpassword$"
			description = "The password for authPriv security level"
		}
		"--privprotocol" = {
			value = "$hpasm_privprotocol$"
			description = "The private protocol for SNMPv3 (des|aes|aes128|3des|3desde)"
		}
		"--servertype" = {
			value = "$hpasm_servertype$"
			description = "The type of the server: proliant (default) or bladesystem"
		}
		"--eval-nics" = {
			set_if = "$hpasm_eval-nics$"
			description = "Check network interfaces (and groups). Try it and report me whyt you think about it. I need to build up some know how on this subject. If get an error and you think, it is not justified for your configuration, please tell me about it. (alwasy send the output of \"snmpwalk -On .... 1.3.6.1.4.1.232\" and a description how you setup your nics and why it is correct opposed to the plugins error message"
		}
	}
	vars.hpasm_remote = true
	vars.hpasm_hostname = "$check_address$"
}

object CheckCommand "openmanage" {
	import "plugin-check-command"
	command = [ PluginContribDir + "/check_openmanage" ]
	arguments += {
		"--all" = {
			set_if = "$openmanage_all$"
			description = "Check everything, even log content"
		}
		"--blacklist" = {
			value = "$openmanage_blacklist$"
			repeat_key = true
			description = "Blacklist missing and/or failed components"
		}
		"--check" = {
			value = "$openmanage_check$"
			description = "Fine-tune which components are checked"
		}
		"--community" = {
			value = "$openmanage_community$"
			description = "SNMP community string [default=public]"
		}
		"--config" = {
			value = "$openmanage_config$"
			description = "Specify configuration file"
		}
		"--critical" = {
			value = "$openmanage_critical$"
			description = "Custom temperature critical limits"
		}
		"--extinfo" = {
			set_if = "$openmanage_extinfo$"
			description = "Append system info to alerts"
		}
		"--fahrenheit" = {
			set_if = "$openmanage_fahrenheit$"
			description = "Use Fahrenheit as temperature unit"
		}
		"--hostname" = {
			value = "$openmanage_hostname$"
			description = "Hostname or IP (required for SNMP)"
		}
		"--htmlinfo" = {
			set_if = "$openmanage_htmlinfo$"
			description = "HTML output with clickable links"
		}
		"--info" = {
			set_if = "$openmanage_info$"
			description = "Prefix any alerts with the service tag"
		}
		"--ipv6" = {
			set_if = "$openmanage_ipv6$"
			description = "Use IPv6 instead of IPv4 [default=no]"
		}
		"--legacy-perfdata" = {
			set_if = "$openmanage_legacy_perfdata$"
			description = "legacy performance data output"
		}
		"--no-storage" = {
			set_if = "$openmanage_no_storage$"
			description = "Don't check storage"
		}
		"--only" = {
			value = "$openmanage_only$"
			description = "Only check a certain component or alert type"
		}
		"--perfdata" = {
			set_if = "$openmanage_perfdata$"
			description = "Output performance data [default=no]"
		}
		"--port" = {
			value = "$openmanage_port$"
			description = "SNMP port number [default=161]"
		}
		"--protocol" = {
			value = "$openmanage_protocol$"
			description = "SNMP protocol version [default=2c]"
		}
		"--short-state" = {
			set_if = "$openmanage_short_state$"
			description = "Prefix alerts with alert state abbreviated"
		}
		"--show-blacklist" = {
			set_if = "$openmanage_show_blacklist$"
			description = "Show blacklistings in OK output"
		}
		"--state" = {
			set_if = "$openmanage_state$"
			description = "Prefix alerts with alert state"
		}
		"--tcp" = {
			set_if = "$openmanage_tcp$"
			description = "Use TCP instead of UDP [default=no]"
		}
		"--timeout" = {
			value = "$openmanage_timeout$"
			description = "Plugin timeout in seconds [default=30]"
		}
		"--vdisk-critical" = {
			set_if = "$openmanage_vdisk_critical$"
			description = "Make any alerts on virtual disks critical"
		}
		"--warning" = {
			value = "$openmanage_warning$"
			description = "Custom temperature warning limits"
		}
	}
}

object CheckCommand "lmsensors" {
	command = [ PluginContribDir + "/check_lmsensors" ]

	arguments = {
		"-w" = {
			value = "$lmsensors_warning$"
			description = "Exit with WARNING status if above INTEGER degrees"
			required = true
		}
		"-c" = {
			value = "$lmsensors_critical$"
			description = "Exit with CRITICAL status if above INTEGER degrees"
			required = true
		}
		"--sensor" = {
			value = "$lmsensors_sensor$"
			description = "Set what to monitor, for example CPU or MB (or M/B). Check sensors for the correct word. Default is CPU."
		}
	}

	vars.lmsensors_warning = "75"
	vars.lmsensors_critical = "80"
	vars.lmsensors_sensor = "Core"
}

object CheckCommand "hddtemp" {
	import "plugin-check-command"
	command = [ PluginContribDir + "/check_hddtemp" ]

	arguments = {
		"--server" = {
			value = "$hddtemp_server$"
			description = "server name or address"
			required = true
		}
		"--port" = {
			value = "$hddtemp_port$"
			description = "port number"
		}
		"--devices" = {
			value = "$hddtemp_devices$"
			description = "comma separated devices list, or empty for all devices in hddtemp response"
		}
		"--separator" = {
			value = "$hddtemp_separator$"
			description = "hddtemp separator"
		}
		"--warning" = {
			value = "$hddtemp_warning$"
			description = "warning temperature"
			required = true
		}
		"--critical" = {
			value = "$hddtemp_critical$"
			description = "critical temperature"
			required = true
		}
		"--timeout" = {
			value = "$hddtemp_timeout$"
			description = "receiving data from hddtemp operation network timeout"
		}
		"--performance-data" = {
			set_if = "$hddtemp_performance$"
			description = "return performance data"
		}
		"--quiet" = {
			set_if = "$hddtemp_quiet$"
			description = "be quiet"
		}
	}

	vars.hddtemp_server = "127.0.0.1"
	vars.hddtemp_warning = 55
	vars.hddtemp_critical = 60
	vars.hddtemp_performance = true
	vars.hddtemp_timeout = 5
}
