IcingaObjects: add new "disabled" property

This commit is contained in:
Thomas Gelf 2016-02-16 12:17:50 +01:00
parent b22f12cf55
commit 5b3b5cbfb8
14 changed files with 88 additions and 18 deletions

View File

@ -15,6 +15,7 @@ class IcingaApiUser extends IcingaObject
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null, 'object_type' => null,
'disabled' => 'n',
'password' => null, 'password' => null,
'client_dn' => null, 'client_dn' => null,
'permissions' => null, 'permissions' => null,

View File

@ -13,11 +13,12 @@ class IcingaCommand extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'methods_execute' => null, 'methods_execute' => null,
'command' => null, 'command' => null,
'timeout' => null, 'timeout' => null,
'zone_id' => null, 'zone_id' => null,
'object_type' => null,
); );
protected $supportsCustomVars = true; protected $supportsCustomVars = true;

View File

@ -12,10 +12,11 @@ class IcingaEndpoint extends IcingaObject
'id' => null, 'id' => null,
'zone_id' => null, 'zone_id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'host' => null, 'host' => null,
'port' => null, 'port' => null,
'log_duration' => null, 'log_duration' => null,
'object_type' => null,
'apiuser_id' => null, 'apiuser_id' => null,
); );

View File

@ -12,6 +12,8 @@ class IcingaHost extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'display_name' => null, 'display_name' => null,
'address' => null, 'address' => null,
'address6' => null, 'address6' => null,
@ -36,7 +38,6 @@ class IcingaHost extends IcingaObject
'action_url' => null, 'action_url' => null,
'icon_image' => null, 'icon_image' => null,
'icon_image_alt' => null, 'icon_image_alt' => null,
'object_type' => null,
'has_agent' => null, 'has_agent' => null,
'master_should_connect' => null, 'master_should_connect' => null,
'accept_config' => null, 'accept_config' => null,

View File

@ -11,7 +11,8 @@ class IcingaHostGroup extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'display_name' => null,
'object_type' => null, 'object_type' => null,
'disabled' => 'n',
'display_name' => null,
); );
} }

View File

@ -219,6 +219,11 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
} }
} }
protected function setDisabled($disabled)
{
return parent::set($this->normalizeBoolean($disabled));
}
public function markForRemoval($remove = true) public function markForRemoval($remove = true)
{ {
$this->shouldBeRemoved = $remove; $this->shouldBeRemoved = $remove;
@ -740,6 +745,12 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
} }
} }
// Disabled is a virtual property
protected function renderDisabled()
{
return '';
}
protected function renderProperties() protected function renderProperties()
{ {
$out = ''; $out = '';

View File

@ -9,6 +9,8 @@ class IcingaService extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'display_name' => null, 'display_name' => null,
'host_id' => null, 'host_id' => null,
'check_command_id' => null, 'check_command_id' => null,
@ -32,7 +34,6 @@ class IcingaService extends IcingaObject
'action_url' => null, 'action_url' => null,
'icon_image' => null, 'icon_image' => null,
'icon_image_alt' => null, 'icon_image_alt' => null,
'object_type' => null,
'use_agent' => null, 'use_agent' => null,
); );

View File

@ -11,7 +11,8 @@ class IcingaServiceGroup extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'display_name' => null,
'object_type' => null, 'object_type' => null,
'disabled' => 'n',
'display_name' => null,
); );
} }

View File

@ -10,9 +10,10 @@ class IcingaTimePeriod extends IcingaObject
'id' => null, 'id' => null,
'zone_id' => null, 'zone_id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'display_name' => null, 'display_name' => null,
'update_method' => null, 'update_method' => null,
'object_type' => null,
); );
protected $supportsImports = true; protected $supportsImports = true;

View File

@ -9,13 +9,14 @@ class IcingaUser extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null,
'disabled' => 'n',
'display_name' => null, 'display_name' => null,
'email' => null, 'email' => null,
'pager' => null, 'pager' => null,
'enable_notifications' => null, 'enable_notifications' => null,
'period_id' => null, 'period_id' => null,
'zone_id' => null, 'zone_id' => null,
'object_type' => null,
); );
protected $supportsGroups = true; protected $supportsGroups = true;

View File

@ -11,8 +11,9 @@ class IcingaUserGroup extends IcingaObject
protected $defaultProperties = array( protected $defaultProperties = array(
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'display_name' => null,
'object_type' => null, 'object_type' => null,
'disabled' => 'n',
'display_name' => null,
'zone_id' => null, 'zone_id' => null,
); );
} }

View File

@ -12,6 +12,7 @@ class IcingaZone extends IcingaObject
'id' => null, 'id' => null,
'object_name' => null, 'object_name' => null,
'object_type' => null, 'object_type' => null,
'disabled' => 'n',
'parent_id' => null, 'parent_id' => null,
'is_global' => 'n', 'is_global' => 'n',
); );

View File

@ -0,0 +1,37 @@
ALTER TABLE icinga_zone
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_timeperiod
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_command
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_apiuser
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_endpoint
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_host
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_service
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_hostgroup
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_servicegroup
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_user
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
ALTER TABLE icinga_usergroup
ADD COLUMN disabled ENUM('y', 'n') NOT NULL DEFAULT 'n' AFTER object_type;
INSERT INTO director_schema_migration
SET migration_time = NOW(),
schema_version = 65;

View File

@ -162,6 +162,7 @@ CREATE TABLE icinga_zone (
parent_id INT(10) UNSIGNED DEFAULT NULL, parent_id INT(10) UNSIGNED DEFAULT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template', 'external_object') NOT NULL, object_type ENUM('object', 'template', 'external_object') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
is_global ENUM('y', 'n') NOT NULL DEFAULT 'n', is_global ENUM('y', 'n') NOT NULL DEFAULT 'n',
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name), UNIQUE INDEX object_name (object_name),
@ -197,6 +198,7 @@ CREATE TABLE icinga_timeperiod (
update_method VARCHAR(64) DEFAULT NULL COMMENT 'Usually LegacyTimePeriod', update_method VARCHAR(64) DEFAULT NULL COMMENT 'Usually LegacyTimePeriod',
zone_id INT(10) UNSIGNED DEFAULT NULL, zone_id INT(10) UNSIGNED DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL, object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name, zone_id), UNIQUE INDEX object_name (object_name, zone_id),
CONSTRAINT icinga_timeperiod_zone CONSTRAINT icinga_timeperiod_zone
@ -243,14 +245,15 @@ CREATE TABLE icinga_timeperiod_range (
CREATE TABLE icinga_command ( CREATE TABLE icinga_command (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template', 'external_object') NOT NULL
COMMENT 'external_object is an attempt to work with existing commands',
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
methods_execute VARCHAR(64) DEFAULT NULL, methods_execute VARCHAR(64) DEFAULT NULL,
command TEXT DEFAULT NULL, command TEXT DEFAULT NULL,
-- env text DEFAULT NULL, -- env text DEFAULT NULL,
-- vars text DEFAULT NULL, -- vars text DEFAULT NULL,
timeout SMALLINT UNSIGNED DEFAULT NULL, timeout SMALLINT UNSIGNED DEFAULT NULL,
zone_id INT(10) UNSIGNED DEFAULT NULL, zone_id INT(10) UNSIGNED DEFAULT NULL,
object_type ENUM('object', 'template', 'external_object') NOT NULL
COMMENT 'external_object is an attempt to work with existing commands',
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name, zone_id), UNIQUE INDEX object_name (object_name, zone_id),
CONSTRAINT icinga_command_zone CONSTRAINT icinga_command_zone
@ -335,6 +338,7 @@ CREATE TABLE icinga_apiuser (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template', 'external_object') NOT NULL, object_type ENUM('object', 'template', 'external_object') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
password VARCHAR(255) DEFAULT NULL, password VARCHAR(255) DEFAULT NULL,
client_dn VARCHAR(64) DEFAULT NULL, client_dn VARCHAR(64) DEFAULT NULL,
permissions TEXT DEFAULT NULL COMMENT 'JSON-encoded permissions', permissions TEXT DEFAULT NULL COMMENT 'JSON-encoded permissions',
@ -345,10 +349,11 @@ CREATE TABLE icinga_endpoint (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
zone_id INT(10) UNSIGNED DEFAULT NULL, zone_id INT(10) UNSIGNED DEFAULT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template', 'external_object') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
host VARCHAR(255) DEFAULT NULL COMMENT 'IP address / hostname of remote node', host VARCHAR(255) DEFAULT NULL COMMENT 'IP address / hostname of remote node',
port SMALLINT UNSIGNED DEFAULT NULL COMMENT '5665 if not set', port SMALLINT UNSIGNED DEFAULT NULL COMMENT '5665 if not set',
log_duration VARCHAR(32) DEFAULT NULL COMMENT '1d if not set', log_duration VARCHAR(32) DEFAULT NULL COMMENT '1d if not set',
object_type ENUM('object', 'template', 'external_object') NOT NULL,
apiuser_id INT(10) UNSIGNED DEFAULT NULL, apiuser_id INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name), UNIQUE INDEX object_name (object_name),
@ -385,6 +390,8 @@ CREATE TABLE icinga_endpoint_inheritance (
CREATE TABLE icinga_host ( CREATE TABLE icinga_host (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) DEFAULT NULL,
address VARCHAR(64) DEFAULT NULL, address VARCHAR(64) DEFAULT NULL,
address6 VARCHAR(45) DEFAULT NULL, address6 VARCHAR(45) DEFAULT NULL,
@ -409,7 +416,6 @@ CREATE TABLE icinga_host (
action_url VARCHAR(255) DEFAULT NULL, action_url VARCHAR(255) DEFAULT NULL,
icon_image VARCHAR(255) DEFAULT NULL, icon_image VARCHAR(255) DEFAULT NULL,
icon_image_alt VARCHAR(255) DEFAULT NULL, icon_image_alt VARCHAR(255) DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL,
has_agent ENUM('y', 'n') DEFAULT NULL, has_agent ENUM('y', 'n') DEFAULT NULL,
master_should_connect ENUM('y', 'n') DEFAULT NULL, master_should_connect ENUM('y', 'n') DEFAULT NULL,
accept_config ENUM('y', 'n') DEFAULT NULL, accept_config ENUM('y', 'n') DEFAULT NULL,
@ -495,6 +501,8 @@ CREATE TABLE icinga_host_var (
CREATE TABLE icinga_service ( CREATE TABLE icinga_service (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template', 'apply') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) DEFAULT NULL,
host_id INT(10) UNSIGNED DEFAULT NULL, host_id INT(10) UNSIGNED DEFAULT NULL,
check_command_id INT(10) UNSIGNED DEFAULT NULL, check_command_id INT(10) UNSIGNED DEFAULT NULL,
@ -518,7 +526,6 @@ CREATE TABLE icinga_service (
action_url VARCHAR(255) DEFAULT NULL, action_url VARCHAR(255) DEFAULT NULL,
icon_image VARCHAR(255) DEFAULT NULL, icon_image VARCHAR(255) DEFAULT NULL,
icon_image_alt VARCHAR(255) DEFAULT NULL, icon_image_alt VARCHAR(255) DEFAULT NULL,
object_type ENUM('object', 'template', 'apply') NOT NULL,
use_agent ENUM('y', 'n') DEFAULT NULL, use_agent ENUM('y', 'n') DEFAULT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
-- UNIQUE INDEX object_name (object_name, zone_id), -- UNIQUE INDEX object_name (object_name, zone_id),
@ -635,8 +642,9 @@ CREATE TABLE icinga_host_service (
CREATE TABLE icinga_hostgroup ( CREATE TABLE icinga_hostgroup (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
display_name VARCHAR(255) DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL, object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name), UNIQUE INDEX object_name (object_name),
KEY search_idx (display_name) KEY search_idx (display_name)
@ -664,8 +672,9 @@ CREATE TABLE icinga_hostgroup_inheritance (
CREATE TABLE icinga_servicegroup ( CREATE TABLE icinga_servicegroup (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) DEFAULT NULL, object_name VARCHAR(255) DEFAULT NULL,
display_name VARCHAR(255) DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL, object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name), UNIQUE INDEX object_name (object_name),
KEY search_idx (display_name) KEY search_idx (display_name)
@ -740,13 +749,14 @@ CREATE TABLE icinga_hostgroup_parent (
CREATE TABLE icinga_user ( CREATE TABLE icinga_user (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) DEFAULT NULL, object_name VARCHAR(255) DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) DEFAULT NULL,
email VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL,
pager VARCHAR(255) DEFAULT NULL, pager VARCHAR(255) DEFAULT NULL,
enable_notifications ENUM('y', 'n') DEFAULT NULL, enable_notifications ENUM('y', 'n') DEFAULT NULL,
period_id INT(10) UNSIGNED DEFAULT NULL, period_id INT(10) UNSIGNED DEFAULT NULL,
zone_id INT(10) UNSIGNED DEFAULT NULL, zone_id INT(10) UNSIGNED DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name, zone_id), UNIQUE INDEX object_name (object_name, zone_id),
CONSTRAINT icinga_user_zone CONSTRAINT icinga_user_zone
@ -834,9 +844,10 @@ CREATE TABLE icinga_user_var (
CREATE TABLE icinga_usergroup ( CREATE TABLE icinga_usergroup (
id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL, id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
object_name VARCHAR(255) NOT NULL, object_name VARCHAR(255) NOT NULL,
object_type ENUM('object', 'template') NOT NULL,
disabled ENUM('y', 'n') NOT NULL DEFAULT 'n',
display_name VARCHAR(255) DEFAULT NULL, display_name VARCHAR(255) DEFAULT NULL,
zone_id INT(10) UNSIGNED DEFAULT NULL, zone_id INT(10) UNSIGNED DEFAULT NULL,
object_type ENUM('object', 'template') NOT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE INDEX object_name (object_name, zone_id), UNIQUE INDEX object_name (object_name, zone_id),
KEY search_idx (display_name) KEY search_idx (display_name)