/******************************************************************************
 * Icinga 2                                                                   *
 * Copyright (C) 2012-2016 Icinga Development Team (https://www.icinga.org/)  *
 *                                                                            *
 * This program is free software; you can redistribute it and/or              *
 * modify it under the terms of the GNU General Public License                *
 * as published by the Free Software Foundation; either version 2             *
 * of the License, or (at your option) any later version.                     *
 *                                                                            *
 * This program is distributed in the hope that it will be useful,            *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
 * GNU General Public License for more details.                               *
 *                                                                            *
 * You should have received a copy of the GNU General Public License          *
 * along with this program; if not, write to the Free Software Foundation     *
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
 ******************************************************************************/

object CheckCommand "mem" {
	import "plugin-check-command"

	command = [ PluginContribDir + "/check_mem.pl" ]

	arguments = {
		"-u" = {
			set_if = "$mem_used$"
			description = "Check USED memory"
		}
		"-f" = {
			set_if = "$mem_free$"
			description = "Check FREE memory"
		}
		"-C" = {
			set_if = "$mem_cache$"
			description = "Count OS caches as FREE memory"
		}
		"-w" = {
			value = "$mem_warning$"
			description = "Percent free/used when to warn"
		}
		"-c" = {
			value = "$mem_critical$"
			description = "Percent free/used when critical"
		}
	}

	vars.mem_used = false
	vars.mem_free = false
	vars.mem_cache = false
}

object CheckCommand "running_kernel" {
	import "plugin-check-command"

	command = {{
		var use_sudo = macro("$running_kernel_use_sudo$")

		if (use_sudo == null && PlatformName == "Ubuntu") {
			use_sudo = true
		}

		var args

		if (use_sudo) {
			args = [ "sudo" ]
		} else {
			args = []
		}

		args += [ PluginContribDir + "/check_running_kernel" ]

		return args
	}}
}

object CheckCommand "yum" {
	import "plugin-check-command"

	command = [ PluginContribDir + "/check_yum" ]

	arguments = {
		"--all-updates" = {
			set_if = "$yum_all_updates$"
			description = "Do not distinguish between security and non-security updates. This may be used if the YUM security plugin is absent."
		}
		"--warn-on-any-update" = {
			set_if = "$yum_warn_on_any_update$"
			description = "Warns if there are any (non-security) package updates available."
		}
		"--cache-only" = {
			set_if = "$yum_cache_only$"
			description = "Run entirely from cache and do not update the cache."
		}
		"--no-warn-on-lock" = {
			set_if = "$yum_no_warn_on_lock$"
			description = "Return OK instead of WARNING when YUM is locked."
		}
		"--no-warn-on-updates" = {
			set_if = "$yum_no_warn_on_updates$"
			description = "Return OK instead of WARNING even when updates are available."
		}
		"--enablerepo" = {
			value = "$yum_enablerepo$"
			description = "Explicitly enables a reposity when calling YUM. Can take a comma separated list of repositories."
		}
		"--disablerepo" = {
			value = "$yum_disablerepo$"
			description = "Explicitly disables a reposity when calling YUM. Can take a comma separated list of repositories."
		}
		"--installroot" = {
			value = "$yum_installroot$"
			description = "Specifies another installation root directory"
		}
		"--timeout" = {
			value = "$yum_timeout$"
			description = "Sets a timeout in seconds after which the plugin will exit (defaults to 55 seconds)."
		}
	}

	vars.yum_all_updates = false
	vars.yum_warn_on_any_update = false
	vars.yum_cache_only = false
	vars.yum_no_warn_on_lock = false
	vars.yum_no_warn_on_updates = false

	timeout = 5m
}

object CheckCommand "iostat" {
	import "plugin-check-command"
	command = [ PluginContribDir + "/check_iostat" ]
	arguments = {
		"-d" = {
			value = "$iostat_disk$"
			description = "Device to check without path. e.g. sda"
		}
		"-w" = {
			value ="$iostat_wtps$,$iostat_wread$,$iostat_wwrite$"
			description = "warning threshold for tps, KB_read/s and KB_written/s"
		}
		"-c" = {
			value ="$iostat_ctps$,$iostat_cread$,$iostat_cwrite$"
			description = "warning threshold for tps, KB_read/s and KB_written/s"
		}
	}

	vars.iostat_disk = "sda"
	vars.iostat_wtps = 100
	vars.iostat_wread = 100
	vars.iostat_wwrite = 100
	vars.iostat_ctps = 200
	vars.iostat_cread = 200
	vars.iostat_cwrite = 200
}
