IcingaObject/Host/Service: provide interval helpers
This commit is contained in:
parent
466b32ba2e
commit
8bcbf0f45a
|
@ -64,6 +64,11 @@ class IcingaHost extends IcingaObject
|
||||||
'accept_config' => 'accept_config'
|
'accept_config' => 'accept_config'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $intervalProperties = array(
|
||||||
|
'check_interval' => 'check_interval',
|
||||||
|
'retry_interval' => 'retry_interval',
|
||||||
|
);
|
||||||
|
|
||||||
protected $supportsCustomVars = true;
|
protected $supportsCustomVars = true;
|
||||||
|
|
||||||
protected $supportsGroups = true;
|
protected $supportsGroups = true;
|
||||||
|
|
|
@ -43,6 +43,16 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
// property => PropertyClass
|
// property => PropertyClass
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array of interval property names
|
||||||
|
*
|
||||||
|
* Those will be automagically munged to integers (seconds) and rendered
|
||||||
|
* as durations (e.g. 2m 10s). Array expects (propertyName => renderedKey)
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $intervalProperties = array();
|
||||||
|
|
||||||
private $vars;
|
private $vars;
|
||||||
|
|
||||||
private $groups;
|
private $groups;
|
||||||
|
@ -64,6 +74,11 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
return array_key_exists($property, $this->booleans);
|
return array_key_exists($property, $this->booleans);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function propertyIsInterval($property)
|
||||||
|
{
|
||||||
|
return array_key_exists($property, $this->intervalProperties);
|
||||||
|
}
|
||||||
|
|
||||||
public function hasRelation($property)
|
public function hasRelation($property)
|
||||||
{
|
{
|
||||||
return array_key_exists($property, $this->relations);
|
return array_key_exists($property, $this->relations);
|
||||||
|
@ -217,6 +232,10 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
// TODO: what shall we do if it is a template? Fail?
|
// TODO: what shall we do if it is a template? Fail?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->propertyIsInterval($key)) {
|
||||||
|
return parent::set($key, c::parseInterval($value));
|
||||||
|
}
|
||||||
|
|
||||||
return parent::set($key, $value);
|
return parent::set($key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -829,6 +848,11 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
c::renderBoolean($value)
|
c::renderBoolean($value)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
} elseif ($this->propertyIsInterval($key)) {
|
||||||
|
$out .= c::renderKeyValue(
|
||||||
|
$this->intervalProperties[$key],
|
||||||
|
c::renderInterval($value)
|
||||||
|
);
|
||||||
} elseif (substr($key, -3) === '_id'
|
} elseif (substr($key, -3) === '_id'
|
||||||
&& $this->hasRelation($relKey = substr($key, 0, -3))
|
&& $this->hasRelation($relKey = substr($key, 0, -3))
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -57,6 +57,11 @@ class IcingaService extends IcingaObject
|
||||||
'use_agent' => 'use_agent',
|
'use_agent' => 'use_agent',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $intervalProperties = array(
|
||||||
|
'check_interval' => 'check_interval',
|
||||||
|
'retry_interval' => 'retry_interval',
|
||||||
|
);
|
||||||
|
|
||||||
protected $supportsGroups = true;
|
protected $supportsGroups = true;
|
||||||
|
|
||||||
protected $supportsCustomVars = true;
|
protected $supportsCustomVars = true;
|
||||||
|
@ -117,34 +122,6 @@ class IcingaService extends IcingaObject
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Use duration time renderer helper
|
|
||||||
*
|
|
||||||
* Avoid complaints for method names with underscore:
|
|
||||||
* @codingStandardsIgnoreStart
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function renderCheck_Interval()
|
|
||||||
{
|
|
||||||
// @codingStandardsIgnoreEnd
|
|
||||||
return $this->renderPropertyAsSeconds('check_interval');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use duration time renderer helper
|
|
||||||
*
|
|
||||||
* Avoid complaints for method names with underscore:
|
|
||||||
* @codingStandardsIgnoreStart
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function renderRetry_Interval()
|
|
||||||
{
|
|
||||||
// @codingStandardsIgnoreEnd
|
|
||||||
return $this->renderPropertyAsSeconds('retry_interval');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasCheckCommand()
|
public function hasCheckCommand()
|
||||||
{
|
{
|
||||||
return $this->getResolvedProperty('check_command_id') !== null;
|
return $this->getResolvedProperty('check_command_id') !== null;
|
||||||
|
|
Loading…
Reference in New Issue