/*
 * Icinga2 CheckCommand definitions to monitor RAID controller from Adaptec and Broadcom using
 * the Adaptec RAID Monitoring Plugin and the LSI RAID Monitoring Plugin
 */

object CheckCommand "adaptec-raid" {
	import "plugin-check-command"

	command = [ PluginContribDir + "/check_adaptec_raid" ]

	arguments = {
		"-C" = {
			required = true
			value = "$adaptec_controller_number$"
			description = "Insert the controller number to be checked."
		}
		"-p" = {
			required = true
			value = "$arcconf_path$"
			description = "Insert the path to arcconf (e.g. /sbin/arcconf)."
		}
	}

	vars.arcconf_path = "/sbin/arcconf"
}

object CheckCommand "lsi-raid" {
	import "plugin-check-command"

	command = [ PluginContribDir + "/check_lsi_raid" ]

	arguments = {
		"-C" = {
			value = "$lsi_controller_number$"
			description = "Insert the controller number to be checked."
		}
		"-p" = {
			value = "$storcli_path$"
			description = "Insert the path to storcli (e.g. /usr/sbin/storcli)."
		}
		"-EID" = {
			value = "$lsi_enclosure_id$"
			description = "Enclosure numbers to be checked, comma-separated."
		}
		"-LD" = {
			value = "$lsi_ld_id$"
			description = "Logical devices to be checked, comma-separated."
		}
		"-PD" = {
			value = "$lsi_pd_id$"
			description = "Physical devices to be checked, comma-separated."
		}
		"-Tw" = {
			value = "$lsi_temp_warning$"
			description = "RAID controller warning temperature."
		}
		"-Tc" = {
			value = "$lsi_temp_critical$"
			description = "RAID controller critical temperature."
		}
		"-PDTw" = {
			value = "$lsi_pd_temp_warning$"
			description = "Disk warning temperature."
		}
		"-PDTc" = {
			value = "$lsi_pd_temp_critical$"
			description = "Disk critical temperature."
		}
		"-BBUTw" = {
			value = "$lsi_bbu_temp_warning$"
			description = "Battery warning temperature."
		}
		"-BBUTc" = {
			value = "$lsi_bbu_temp_critical$"
			description = "Battery critical temperature."
		}
		"-CVTw" = {
			value = "$lsi_cv_temp_warning$"
			description = "CacheVault warning temperature."
		}
		"-CVTc" = {
			value = "$lsi_cv_temp_critical$"
			description = "CacheVault critical temperature."
		}
		"-Im" = {
			value = "$lsi_ignored_media_errors$"
			description = "Warning threshold for media errors."
		}
		"-Io" = {
			value = "$lsi_ignored_other_errors$"
			description = "Warning threshold for other errors."
		}
		"-Ip" = {
			value = "$lsi_ignored_predictive_fails$"
			description = "Warning threshold for predictive failures."
		}
		"-Is" = {
			value = "$lsi_ignored_shield_counters$"
			description = "Warning threshold for shield counter."
		}
		"-Ib" = {
			value = "$lsi_ignored_bbm_counters$"
			description = "Warning threshold for BBM counter."
		}
		"-b" = {
			value = "$lsi_bbu$"
			description = "Define if BBU is present and it's state should be checked."
		}
		"--noenclosures" = {
			set_if = "$lsi_noenclosures$"
			description = "Define if enclosures are present."
		}
		"--nosudo" = {
			set_if = "$lsi_nosudo$"
			description = "Do not use sudo when running storcli."
		}
		"--nocleanlogs" = {
			set_if = "$lsi_nocleanlogs$"
			description = "Do not clean up the log files after executing storcli checks."
		}
	}
}