"-H" = "$ping_address$"
"-w" = "$ping_wrta$,$ping_wpl$%"
"-c" = "$ping_crta$,$ping_cpl$%"
- "-p" = {
- value = "$ping_packets$"
- optional = true
- }
- "-t" = {
- value = "$ping_timeout$"
- optional = true
- }
+ "-p" = "$ping_packets$"
+ "-t" = "$ping_timeout$"
}
vars.ping_wrta = 100
command = PluginDir + "/check_http"
arguments = {
- "-H" = {
- value = "$http_vhost$"
- optional = true
- }
+ "-H" = "$http_vhost$"
"-I" = "$http_address$"
- "-u" = {
- value = "$http_uri$"
- optional = true
- }
- "-p" = {
- value = "$http_port$"
- optional = true
- }
+ "-u" = "$http_uri$"
+ "-p" = "$http_port$"
"-S" = {
set_if = "$http_ssl$"
}
- "-w" = {
- value = "$http_warn_time$"
- optional = true
- }
- "-c" = {
- value = "$http_critical_time$"
- optional = true
- }
+ "-w" = "$http_warn_time$"
+ "-c" = "$http_critical_time$"
}
vars.http_address = "$address$"
arguments = {
"-H" = "$ssmtp_address$"
- "-p" = {
- value = "$ssmtp_port$"
- optional = true
- }
+ "-p" = "$ssmtp_port$"
}
vars.ssmtp_address = "$address$"
command = PluginDir + "/check_ssh"
arguments = {
- "-p" = {
- value = "$ssh_port$"
- optional = true
- }
+ "-p" = "$ssh_port$"
"host" = {
value = "$ssh_address$"
skip_key = true
%attribute %dictionary "*" {
%attribute %string "value"
%attribute %string "description"
- %attribute %number "optional"
+ %attribute %number "required"
%attribute %number "skip_key"
%attribute %string "set_if"
%attribute %number "order"
CommandArgument arg;
arg.Key = kv.first;
- bool optional = false;
+ bool required = false;
String argval;
if (arginfo.IsObjectType<Dictionary>()) {
Dictionary::Ptr argdict = arginfo;
argval = argdict->Get("value");
- optional = argdict->Get("optional");
+ if (argdict->Contains("required"))
+ required = argdict->Get("required");
arg.SkipKey = argdict->Get("skip_key");
arg.Order = argdict->Get("order");
checkable->GetLastCheckResult(), &missingMacro);
if (!missingMacro.IsEmpty()) {
- if (!optional) {
+ if (required) {
String message = "Non-optional macro '" + missingMacro + "' used in argument '" +
arg.Key + "' is missing while executing command '" + commandObj->GetName() +
"' for object '" + checkable->GetName() + "'";