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

object CheckCommand "glusterfs" {
	command = [ "sudo", PluginContribDir + "/check_glusterfs" ]

	arguments = {
		"--perfdata" = {
			set_if = "$glusterfs_perfdata$"
			description = "Optional. Print perfdata of all or the specified volume."
		}
		"--warnonfailedheal" = {
			set_if = "$glusterfs_warnonfailedheal$"
			description = "Optional. Warn if the *heal-failed* log contains entries. The log can be cleared by restarting glusterd."
		}
		"--volume" = {
			value = "$glusterfs_volume$"
			description = "Optional. Only check the specified *VOLUME*. If --volume is not set, all volumes are checked."
		}
		"-w" = {
			value = "$glusterfs_disk_warning$"
			description = "Optional. Warn if disk usage is above *DISKWARN*. Defaults to 90 (percent)."
		}
		"-c" = {
			value = "$glusterfs_disk_critical$"
			description = "Optional. Return a critical error if disk usage is above *DISKCRIT*. Defaults to 95 (percent)."
		}
		"-W" = {
			value = "$glusterfs_inode_warning$"
			description = "Optional. Warn if inode usage is above *DISKWARN*. Defaults to 90 (percent)."
		}
		"-C" = {
			value = "$glusterfs_inode_critical$"
			description = "Optional. Return a critical error if inode usage is above *DISKCRIT*. Defaults to 95 (percent)."
		}
	}

	vars.glusterfs_disk_warning = 90
	vars.glusterfs_disk_critical = 95
	vars.glusterfs_inode_warning = 90
	vars.glusterfs_inode_critical = 95
}

object CheckCommand "ceph" {
	command = [ PluginContribDir + "/check_ceph.py" ]

	arguments = {
		"-e" = {
			value = "$ceph_exec_dir$"
			required = false
			description = "ceph executable [/usr/bin/ceph]"
		}
		"-c" = {
			value = "$ceph_conf_file$"
			required = false
			description = "alternative ceph conf file"
		}
		"-m" = {
			value = "$ceph_mon_address$"
			required = false
			description = "ceph monitor address[:port]"
		}
		"-i" = {
			value = "$ceph_client_id$"
			required = false
			description = "ceph client id"
		}
		"-n" = {
			value = "$ceph_client_name$"
			required = false
			description = "ceph client name"
		}
		"-k" = {
			value = "$ceph_client_key$"
			required = false
			description = "ceph client keyring file"
		}
		"-w" = {
			value = "$ceph_whitelist$"
			required = false
			description = "whitelist regexp for ceph health warnings"
		}
		"-d" = {
			set_if = "$ceph_details$"
			description = "exec 'ceph health detail'"
		}
	}
}

object CheckCommand "btrfs" {
	import "plugin-check-command"
	command = [ "sudo", PluginContribDir + "/check_btrfs" ]

	arguments = {
		"--allocated-warning-gib" = {
			value = "$btrfs_awg$"
			description = "Exit with WARNING status if less than the specified amount of disk space (in GiB) is unallocated"
		}
		"--allocated-critical-gib" = {
			value = "$btrfs_acg$"
			description = "Exit with CRITICAL status if less than the specified amount of disk space (in GiB) is unallocated"
		}
		"--allocated-warning-percent" = {
			value = "$btrfs_awp$"
			description = "Exit with WARNING status if more than the specified percent of disk space is allocated"
		}
		"--allocated-critical-percent" = {
			value = "$btrfs_acp$"
			description = "Exit with CRITICAL status if more than the specified percent of disk space is allocated"
		}
		"--mountpoint" = {
			value = "$btrfs_mountpoint$"
			description = "Path to the BTRFS mountpoint"
			required = true
		}
	}
	vars.btrfs_awp = 80
	vars.btrfs_acp = 90
}