/******************************************************************************
 * Icinga 2                                                                   *
 * Copyright (C) 2012-2013 Icinga Development Team (http://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 "ping4" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_ping",
		"-4",
		"-H", "$address$",
		"-w", "$wrta$,$wpl$%",
		"-c", "$crta$,$cpl$%",
		"-p", "$packets$",
		"-t", "$timeout$"
	],

	macros = {
		wrta = 100,
		wpl = 5,

		crta = 200,
		cpl = 15,

		packets = 5,
		timeout = 0
	}
}

object CheckCommand "ping6" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_ping",
		"-6",
		"-H", "$address6$",
		"-w", "$wrta$,$wpl$%",
		"-c", "$crta$,$cpl$%",
		"-p", "$packets$",
		"-t", "$timeout$"
	],

	macros = {
		wrta = 100,
		wpl = 5,

		crta = 200,
		cpl = 15,

		packets = 5,
		timeout = 0
	}
}

object CheckCommand "dummy" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_dummy",
		"$state$",
		"$text$"
	],

	macros = {
		state = 0,
		text = "Check was successful."
	}
}

object CheckCommand "passive" inherits "dummy" {
	macros = {
		state = 3,
		text = "No Passive Check Result Received."
	}
}

object CheckCommand "tcp" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_tcp",
		"-H", "$address$",
		"-p", "$port$"
	]
}

object CheckCommand "udp" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_udp",
		"-H", "$address$",
		"-p", "$port$"
	]
}

object CheckCommand "http_vhost" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_http",
		"-H", "$vhost$"
	]
}

object CheckCommand "http_ip" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_http",
		"-H", "$address$"
	]
}

object CheckCommand "https_vhost" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_http",
		"-H", "$vhost$", "-S"
	]
}

object CheckCommand "https_ip" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_http",
		"-I", "$address$", "-S"
	]
}

object CheckCommand "smtp" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_smtp",
		"-H", "$address$"
	]
}

object CheckCommand "ssmtp" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_ssmtp",
		"-H", "$address$",
		"-p", "$port$"
	],

	macros += {
		port = 465
	}
}

object CheckCommand "ntp_time" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_ntp_time",
		"-H", "$address$"
	]
}

object CheckCommand "ssh" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_ssh",
		"$address$"
	]
}

object CheckCommand "disk" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_disk",
		"-w", "$wfree$%",
		"-c", "$cfree$%"
	],

	macros += {
		wfree = 20,
		cfree = 10,
	}
}

object CheckCommand "users" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_users",
		"-w", "$wgreater$",
		"-c", "$cgreater$"
	],

	macros += {
		wgreater = 20,
		cgreater = 50,
	}
}

object CheckCommand "processes" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_procs",
		"-w", "$wgreater$",
		"-c", "$cgreater$"
	],

	macros += {
		wgreater = 250,
		cgreater = 400,
	}
}

object CheckCommand "load" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_load",
		"-w", "$wload1$,$wload5$,$wload15$",
		"-c", "$cload1$,$cload5$,$cload15$"
	],

	macros = {
		wload1 = 5.0,
		wload5 = 4.0,
		wload15 = 3.0,

		cload1 = 10.0,
		cload5 = 6.0,
		cload15 = 4.0
	}
}

object CheckCommand "snmp" inherits "plugin-check-command" {
	command = [
		"$plugindir$/check_snmp",
		"-H", "$address$",
		"-o", "$oid$",
		"-C", "$community$"
	],

	macros = {
		community = "public"
	}
}

object CheckCommand "snmp-uptime" inherits "snmp" {
	macros += {
		oid = "1.3.6.1.2.1.1.3.0"
	}
}

object CheckCommand "icinga" inherits "icinga-check-command" {
}