Merge branch 'feature/icinga-legacy-config-13049'
This commit is contained in:
commit
16dbf8e503
|
@ -500,6 +500,15 @@ class IcingaConfig
|
|||
protected function prepareGlobalBasics()
|
||||
{
|
||||
if ($this->isLegacy()) {
|
||||
$this->configFile(
|
||||
sprintf(
|
||||
'director/%s/001-director-basics',
|
||||
$this->connection->getDefaultGlobalZoneName()
|
||||
), '.cfg'
|
||||
)->prepend(
|
||||
$this->renderLegacyDefaultNotification()
|
||||
);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
@ -781,4 +790,39 @@ apply Service for (title => params in host.vars["%s"]) {
|
|||
|
||||
return $this->lastActivityChecksum;
|
||||
}
|
||||
|
||||
protected function renderLegacyDefaultNotification()
|
||||
{
|
||||
return preg_replace('~^ {12}~m', '', '
|
||||
#
|
||||
# Default objects to avoid warnings
|
||||
#
|
||||
|
||||
define contact {
|
||||
contact_name icingaadmin
|
||||
alias Icinga Admin
|
||||
host_notifications_enabled 0
|
||||
host_notification_commands notify-never-default
|
||||
host_notification_period notification_none
|
||||
service_notifications_enabled 0
|
||||
service_notification_commands notify-never-default
|
||||
service_notification_period notification_none
|
||||
}
|
||||
|
||||
define contactgroup {
|
||||
contactgroup_name icingaadmins
|
||||
members icingaadmin
|
||||
}
|
||||
|
||||
define timeperiod {
|
||||
timeperiod_name notification_none
|
||||
alias No Notifications
|
||||
}
|
||||
|
||||
define command {
|
||||
command_name notify-never-default
|
||||
command_line /bin/echo "NOOP"
|
||||
}
|
||||
');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,14 @@ class IcingaHostGroup extends IcingaObjectGroup
|
|||
} else {
|
||||
$allMembers = array();
|
||||
|
||||
// make sure we write to all zones
|
||||
// so host -> group relations are still possible
|
||||
foreach (IcingaObject::loadAllByType('zone', $conn) as $zone) {
|
||||
if (! array_key_exists($zone->id, $zoneMap)) {
|
||||
$zoneMap[$zone->id] = array();
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($zoneMap as $zoneId => $members) {
|
||||
$file = $this->legacyZoneHostgroupFile($config, $zoneId);
|
||||
$this->properties['members'] = $members;
|
||||
|
|
|
@ -2054,6 +2054,16 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
|||
{
|
||||
$str = '';
|
||||
|
||||
// Set notification settings for the object to suppress warnings
|
||||
if (
|
||||
array_key_exists('enable_notifications', $this->defaultProperties)
|
||||
&& $this->isTemplate()
|
||||
) {
|
||||
$str .= c1::renderKeyValue('notification_period', 'notification_none');
|
||||
$str .= c1::renderKeyValue('notification_interval', '0');
|
||||
$str .= c1::renderKeyValue('contact_groups', 'icingaadmins');
|
||||
}
|
||||
|
||||
// force rendering of check_command when ARG1 is set
|
||||
if ($this->supportsCustomVars() && array_key_exists('check_command_id', $this->defaultProperties)) {
|
||||
if (
|
||||
|
|
Loading…
Reference in New Issue