Add imports support for Timeperiod

This commit is contained in:
Alexander Fuhr 2015-06-26 16:45:44 +02:00
parent f7bd670d1b
commit 0af3ed4452
6 changed files with 84 additions and 0 deletions

View File

@ -48,5 +48,10 @@ class IcingaTimePeriodForm extends DirectorObjectForm
'description' => $this->translate('Check this host in this specific Icinga cluster zone'),
'required' => true
));
$this->addElement('text', 'imports', array(
'label' => $this->translate('Imports'),
'description' => $this->translate('The inherited timperiods template names')
));
}
}

View File

@ -14,4 +14,6 @@ class IcingaTimePeriod extends IcingaObject
'update_method' => null,
'object_type' => null,
);
protected $supportsImports = true;
}

View File

@ -0,0 +1,17 @@
CREATE TABLE icinga_timeperiod_inheritance (
timeperiod_id INT(10) UNSIGNED NOT NULL,
parent_timeperiod_id INT(10) UNSIGNED NOT NULL,
weight MEDIUMINT UNSIGNED DEFAULT NULL,
PRIMARY KEY (timeperiod_id, parent_timeperiod_id),
UNIQUE KEY unique_order (timeperiod_id, weight),
CONSTRAINT icinga_timeperiod_inheritance_timeperiod
FOREIGN KEY host (timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_timeperiod_inheritance_parent_timeperiod
FOREIGN KEY host (parent_timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -152,6 +152,24 @@ CREATE TABLE icinga_timeperiod (
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE icinga_timeperiod_inheritance (
timeperiod_id INT(10) UNSIGNED NOT NULL,
parent_timeperiod_id INT(10) UNSIGNED NOT NULL,
weight MEDIUMINT UNSIGNED DEFAULT NULL,
PRIMARY KEY (timeperiod_id, parent_timeperiod_id),
UNIQUE KEY unique_order (timeperiod_id, weight),
CONSTRAINT icinga_timeperiod_inheritance_timeperiod
FOREIGN KEY host (timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_timeperiod_inheritance_parent_timeperiod
FOREIGN KEY host (parent_timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE icinga_timeperiod_range (
timeperiod_id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
timeperiod_key VARCHAR(255) NOT NULL COMMENT 'monday, ...',

View File

@ -0,0 +1,20 @@
CREATE TABLE icinga_timeperiod_inheritance (
timeperiod_id integer NOT NULL,
parent_timeperiod_id integer NOT NULL,
weight integer DEFAULT NULL,
PRIMARY KEY (timeperiod_id, parent_timeperiod_id),
CONSTRAINT icinga_timeperiod_inheritance_timeperiodr
FOREIGN KEY (timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_timeperiod_inheritance_parent_timeperiod
FOREIGN KEY (parent_timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE RESTRICT
ON UPDATE CASCADE
);
CREATE UNIQUE INDEX timeperiod_inheritance_unique_order ON icinga_timeperiod_inheritance (timeperiod_id, weight);
CREATE INDEX timeperiod_inheritance_timeperiod ON icinga_timeperiod_inheritance (timeperiod_id);
CREATE INDEX timeperiod_inheritance_timeperiod_parent ON icinga_timeperiod_inheritance (parent_timeperiod_id);

View File

@ -197,6 +197,28 @@ CREATE INDEX timeperiod_zone ON icinga_timeperiod (zone_id);
COMMENT ON COLUMN icinga_timeperiod.update_method IS 'Usually LegacyTimePeriod';
CREATE TABLE icinga_timeperiod_inheritance (
timeperiod_id integer NOT NULL,
parent_timeperiod_id integer NOT NULL,
weight integer DEFAULT NULL,
PRIMARY KEY (timeperiod_id, parent_timeperiod_id),
CONSTRAINT icinga_timeperiod_inheritance_timeperiodr
FOREIGN KEY (timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT icinga_timeperiod_inheritance_parent_timeperiod
FOREIGN KEY (parent_timeperiod_id)
REFERENCES icinga_timeperiod (id)
ON DELETE RESTRICT
ON UPDATE CASCADE
);
CREATE UNIQUE INDEX timeperiod_inheritance_unique_order ON icinga_timeperiod_inheritance (timeperiod_id, weight);
CREATE INDEX timeperiod_inheritance_timeperiod ON icinga_timeperiod_inheritance (timeperiod_id);
CREATE INDEX timeperiod_inheritance_timeperiod_parent ON icinga_timeperiod_inheritance (parent_timeperiod_id);
CREATE TABLE icinga_timeperiod_range (
timeperiod_id serial,
timeperiod_key character varying(255) NOT NULL,