mirror of
https://github.com/Icinga/icingadb.git
synced 2026-05-28 04:35:54 -04:00
Merge branch 'test/ci' into 'master'
Add CI and config See merge request icingadb/icingadb-main!1
This commit is contained in:
commit
c5fe05f6cd
39 changed files with 1288 additions and 9 deletions
66
config/config.go
Normal file
66
config/config.go
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/go-ini/ini"
|
||||
)
|
||||
|
||||
type RedisInfo struct {
|
||||
Host string `ini:"host"`
|
||||
Port string `ini:"port"`
|
||||
User string `ini:"user"`
|
||||
Password string `ini:"password"`
|
||||
}
|
||||
|
||||
var redisInfo = &RedisInfo{
|
||||
Port: "6379",
|
||||
}
|
||||
|
||||
type MysqlInfo struct {
|
||||
Host string `ini:"host"`
|
||||
Port string `ini:"port"`
|
||||
Database string `ini:"database"`
|
||||
User string `ini:"user"`
|
||||
Password string `ini:"password"`
|
||||
}
|
||||
|
||||
var mysqlInfo = &MysqlInfo{
|
||||
Port: "3306",
|
||||
Database: "icingadb",
|
||||
}
|
||||
|
||||
func ParseConfig(path string) error {
|
||||
cfg, err := ini.Load(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := cfg.Section("redis").MapTo(redisInfo); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if redisInfo.Host == "" {
|
||||
return errors.New("missing redis host")
|
||||
}
|
||||
|
||||
if err = cfg.Section("mysql").MapTo(mysqlInfo); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if mysqlInfo.Host == "" {
|
||||
return errors.New("missing mysql host")
|
||||
}
|
||||
if mysqlInfo.User == "" || mysqlInfo.Password == "" {
|
||||
return errors.New("missing mysql credentials")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetMysqlInfo() *MysqlInfo {
|
||||
return mysqlInfo
|
||||
}
|
||||
|
||||
func GetRedisInfo() *RedisInfo {
|
||||
return redisInfo
|
||||
}
|
||||
62
etc/schema/mysql/command.sql
Normal file
62
etc/schema/mysql/command.sql
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE command (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + type + name)',
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(command.vars)',
|
||||
arguments_checksum binary(20) NOT NULL COMMENT 'sha1(arguments from command_argument where command_argument.command_id = id)',
|
||||
envvars_checksum binary(20) NOT NULL COMMENT 'sha1(envvars from command_envvar where command_envvar.command_id = id)',
|
||||
|
||||
type enum('CheckCommand','NotificationCommand','EventCommand') NOT NULL,
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
command text NOT NULL,
|
||||
timeout smallint(5) unsigned NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE command_argument (
|
||||
command_id binary(20) NOT NULL COMMENT 'command.id',
|
||||
argument_key varchar(64) NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
|
||||
argument_value text DEFAULT NULL,
|
||||
argument_order tinyint(3) DEFAULT NULL,
|
||||
description text DEFAULT NULL,
|
||||
argument_key_override varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
repeat_key enum('y','n') NOT NULL,
|
||||
required enum('y','n') NOT NULL,
|
||||
set_if varchar(255) DEFAULT NULL,
|
||||
skip_key enum('y','n') NOT NULL,
|
||||
|
||||
PRIMARY KEY (command_id,argument_key)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE command_envvar (
|
||||
command_id binary(20) NOT NULL COMMENT 'command.id',
|
||||
envvar_key varchar(64) NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
|
||||
envvar_value text NOT NULL,
|
||||
|
||||
PRIMARY KEY (command_id,envvar_key)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE command_customvar (
|
||||
command_id binary(20) NOT NULL COMMENT 'command.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
PRIMARY KEY (customvar_id, command_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
/* TODO(el): Default custom variables are missing */
|
||||
44
etc/schema/mysql/comment.sql
Normal file
44
etc/schema/mysql/comment.sql
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE host_comment (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL,
|
||||
name varchar(255) NOT NULL,
|
||||
|
||||
author varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci,
|
||||
text text NOT NULL,
|
||||
entry_type enum('comment','ack','downtime','flapping') NOT NULL,
|
||||
entry_time bigint(20) unsigned NOT NULL,
|
||||
is_persistent enum('y','n') NOT NULL,
|
||||
expire_time bigint(20) unsigned DEFAULT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE service_comment (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
service_id binary(20) NOT NULL COMMENT 'service.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL,
|
||||
name varchar(255) NOT NULL,
|
||||
|
||||
author varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci,
|
||||
text text NOT NULL,
|
||||
entry_type enum('comment','ack','downtime','flapping') NOT NULL,
|
||||
entry_time bigint(20) unsigned NOT NULL,
|
||||
is_persistent enum('y','n') NOT NULL,
|
||||
expire_time bigint(20) unsigned DEFAULT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
26
etc/schema/mysql/customvar.sql
Normal file
26
etc/schema/mysql/customvar.sql
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE customvar (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name + value)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
reference_counter int(6) unsigned NOT NULL COMMENT 'if 0, the custom var needs to be deleted',
|
||||
|
||||
name varchar(255) NOT NULL COLLATE utf8_bin,
|
||||
value text NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=COMPRESSED DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
CREATE TABLE customvar_flat (
|
||||
customvar_id binary(20) NOT NULL COMMENT 'sha1(customvar.id)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
path_checksum binary(20) NOT NULL COMMENT 'sha1(flatname before conversion)',
|
||||
flatname_checksum binary(20) NOT NULL COMMENT 'sha1(flatname after conversion)',
|
||||
|
||||
flatname varchar(512) NOT NULL COLLATE utf8_bin COMMENT 'Path converted with `.` and `[ ]`',
|
||||
flatvalue text NOT NULL,
|
||||
|
||||
PRIMARY KEY (customvar_id, path_checksum)
|
||||
) ENGINE=InnoDb ROW_FORMAT=COMPRESSED DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
54
etc/schema/mysql/downtime.sql
Normal file
54
etc/schema/mysql/downtime.sql
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE host_downtime (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
name varchar(255) NOT NULL,
|
||||
|
||||
author varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci,
|
||||
comment text NOT NULL,
|
||||
entry_time bigint(20) unsigned NOT NULL,
|
||||
scheduled_start_time bigint(20) unsigned NOT NULL,
|
||||
scheduled_end_time bigint(20) unsigned NOT NULL,
|
||||
duration bigint(20) unsigned NOT NULL,
|
||||
is_fixed enum('y', 'n') NOT NULL,
|
||||
|
||||
is_in_effect enum('y', 'n') NOT NULL,
|
||||
actual_start_time bigint(20) unsigned DEFAULT NULL COMMENT 'Time when the host went into a problem state during the downtimes timeframe',
|
||||
actual_end_time bigint(20) unsigned DEFAULT NULL COMMENT 'Problem state assumed: scheduled_end_time if fixed, start_time + duration otherwise',
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE service_downtime (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
service_id binary(20) DEFAULT NULL COMMENT 'service.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
name varchar(255) NOT NULL,
|
||||
|
||||
author varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci,
|
||||
comment text NOT NULL,
|
||||
entry_time bigint(20) unsigned NOT NULL,
|
||||
scheduled_start_time bigint(20) unsigned NOT NULL,
|
||||
scheduled_end_time bigint(20) unsigned NOT NULL,
|
||||
duration bigint(20) unsigned NOT NULL,
|
||||
is_fixed enum('y', 'n') NOT NULL,
|
||||
|
||||
is_in_effect enum('y', 'n') NOT NULL,
|
||||
actual_start_time bigint(20) unsigned DEFAULT NULL COMMENT 'Time when the host went into a problem state during the downtimes timeframe',
|
||||
actual_end_time bigint(20) unsigned DEFAULT NULL COMMENT 'Problem state assumed: scheduled_end_time if fixed, start_time + duration otherwise',
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
16
etc/schema/mysql/endpoint.sql
Normal file
16
etc/schema/mysql/endpoint.sql
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE endpoint (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL,
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
zone_id binary(20) NOT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
18
etc/schema/mysql/environment.sql
Normal file
18
etc/schema/mysql/environment.sql
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE environment (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
name varchar(255) NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE icingadb_instance (
|
||||
id binary(16) NOT NULL COMMENT 'UUIDv4',
|
||||
environment_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
heartbeat bigint(20) unsigned NOT NULL COMMENT '*nix timestamp',
|
||||
responsible enum('y','n') NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
29
etc/schema/mysql/helper/cleanup_url.sql
Normal file
29
etc/schema/mysql/helper/cleanup_url.sql
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
DROP PROCEDURE IF EXISTS cleanup_url;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE cleanup_url()
|
||||
BEGIN
|
||||
DELETE
|
||||
FROM action_url
|
||||
WHERE NOT EXISTS(
|
||||
SELECT h.action_url_id
|
||||
FROM host h
|
||||
WHERE h.action_url_id = action_url.id
|
||||
);
|
||||
|
||||
DELETE
|
||||
FROM notes_url
|
||||
WHERE NOT EXISTS(
|
||||
SELECT h.notes_url_id
|
||||
FROM host h
|
||||
WHERE h.notes_url_id = notes_url.id
|
||||
);
|
||||
|
||||
DELETE
|
||||
FROM icon_image
|
||||
WHERE NOT EXISTS(
|
||||
SELECT h.icon_image_id
|
||||
FROM host h
|
||||
WHERE h.icon_image_id = icon_image.id
|
||||
);
|
||||
END//
|
||||
DELIMITER ;
|
||||
5
etc/schema/mysql/helper/functions.sql
Normal file
5
etc/schema/mysql/helper/functions.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
DROP FUNCTION IF EXISTS unix_timestamp_ms;
|
||||
|
||||
CREATE FUNCTION unix_timestamp_ms()
|
||||
RETURNS BIGINT UNSIGNED
|
||||
RETURN FLOOR((UNIX_TIMESTAMP(NOW(3)) * 1000));
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE populate_pending_hosts_for_environment(
|
||||
IN env_id BINARY(20)
|
||||
)
|
||||
BEGIN
|
||||
SET @bigNow = unix_timestamp_ms();
|
||||
INSERT INTO host_state (
|
||||
host_id,
|
||||
env_id,
|
||||
state_type,
|
||||
soft_state,
|
||||
hard_state,
|
||||
attempt,
|
||||
is_active_check,
|
||||
is_problem,
|
||||
is_handled,
|
||||
is_reachable,
|
||||
is_flapping,
|
||||
is_acknowledged,
|
||||
in_downtime,
|
||||
last_update,
|
||||
last_state_change,
|
||||
last_soft_state,
|
||||
last_hard_state,
|
||||
next_check
|
||||
) SELECT
|
||||
h.id,
|
||||
env_id,
|
||||
'hard',
|
||||
99,
|
||||
99,
|
||||
1,
|
||||
'n',
|
||||
'n',
|
||||
'n',
|
||||
'y',
|
||||
'n',
|
||||
'n',
|
||||
'n',
|
||||
@bigNow,
|
||||
@bigNow,
|
||||
99,
|
||||
99,
|
||||
@bigNow + h.check_interval * 1000
|
||||
FROM host h
|
||||
WHERE NOT EXISTS(
|
||||
SELECT host_id
|
||||
FROM host_state hs
|
||||
WHERE hs.host_id = h.id)
|
||||
AND h.env_id = env_id;
|
||||
|
||||
END
|
||||
|
||||
//
|
||||
DELIMITER ;
|
||||
143
etc/schema/mysql/host.sql
Normal file
143
etc/schema/mysql/host.sql
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE host (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(host.vars)',
|
||||
groups_checksum binary(20) NOT NULL COMMENT 'sha1(hostgroup.name + hostgroup.name ...)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
address varchar(255) NOT NULL,
|
||||
address6 varchar(255) NOT NULL,
|
||||
address_bin binary(4) DEFAULT NULL,
|
||||
address6_bin binary(16) DEFAULT NULL,
|
||||
|
||||
checkcommand varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'checkcommand.name',
|
||||
checkcommand_id binary(20) NOT NULL COMMENT 'checkcommand.id',
|
||||
|
||||
max_check_attempts int(10) unsigned NOT NULL,
|
||||
|
||||
check_period varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'timeperiod.name',
|
||||
check_period_id binary(20) DEFAULT NULL COMMENT 'timeperiod.id',
|
||||
|
||||
check_timeout int(10) unsigned DEFAULT NULL,
|
||||
check_interval int(10) unsigned NOT NULL,
|
||||
check_retry_interval int(10) unsigned NOT NULL,
|
||||
|
||||
active_checks_enabled enum('y','n') NOT NULL,
|
||||
passive_checks_enabled enum('y','n') NOT NULL,
|
||||
event_handler_enabled enum('y','n') NOT NULL,
|
||||
notifications_enabled enum('y','n') NOT NULL,
|
||||
|
||||
flapping_enabled enum('y','n') NOT NULL,
|
||||
flapping_threshold_low float unsigned NOT NULL,
|
||||
flapping_threshold_high float unsigned NOT NULL,
|
||||
|
||||
perfdata_enabled enum('y','n') NOT NULL,
|
||||
|
||||
eventcommand varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'eventcommand.name',
|
||||
eventcommand_id binary(20) DEFAULT NULL COMMENT 'eventcommand.id',
|
||||
|
||||
is_volatile enum('y','n') NOT NULL,
|
||||
|
||||
action_url_id binary(20) DEFAULT NULL COMMENT 'action_url.id',
|
||||
notes_url_id binary(20) DEFAULT NULL COMMENT 'notes_url.id',
|
||||
notes text NOT NULL,
|
||||
icon_image_id binary(20) DEFAULT NULL COMMENT 'icon_image.id',
|
||||
icon_image_alt varchar(32) NOT NULL,
|
||||
|
||||
zone varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'zone.name',
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
command_endpoint varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'endpoint.name',
|
||||
command_endpoint_id binary(20) DEFAULT NULL COMMENT 'endpoint.id',
|
||||
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_action_url_checksum (action_url_id) COMMENT 'cleanup',
|
||||
KEY idx_notes_url_checksum (notes_url_id) COMMENT 'cleanup',
|
||||
KEY idx_icon_image_checksum (icon_image_id) COMMENT 'cleanup'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE hostgroup (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(hostgroup.vars)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE hostgroup_member (
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
hostgroup_id binary(20) NOT NULL COMMENT 'hostgroup.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (hostgroup_id,host_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE host_customvar (
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (customvar_id, host_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE hostgroup_customvar (
|
||||
hostgroup_id binary(20) NOT NULL COMMENT 'hostgroup.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (customvar_id, hostgroup_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
CREATE TABLE host_state (
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
state_type enum('hard', 'soft') NOT NULL,
|
||||
soft_state tinyint(1) unsigned NOT NULL,
|
||||
hard_state tinyint(1) unsigned NOT NULL,
|
||||
attempt tinyint(1) unsigned NOT NULL,
|
||||
severity smallint unsigned NOT NULL,
|
||||
|
||||
output text DEFAULT NULL,
|
||||
long_output text DEFAULT NULL,
|
||||
performance_data text DEFAULT NULL,
|
||||
check_commandline varchar(255) DEFAULT NULL,
|
||||
|
||||
is_problem enum('y', 'n') NOT NULL,
|
||||
is_handled enum('y', 'n') NOT NULL,
|
||||
is_reachable enum('y', 'n') NOT NULL,
|
||||
is_flapping enum('y', 'n') NOT NULL,
|
||||
|
||||
is_acknowledged enum('y', 'n', 'sticky') NOT NULL,
|
||||
acknowledgement_comment_id binary(20) DEFAULT NULL COMMENT 'comment.id',
|
||||
|
||||
in_downtime enum('y', 'n') NOT NULL,
|
||||
|
||||
execution_time bigint(20) unsigned DEFAULT NULL,
|
||||
latency bigint(20) unsigned DEFAULT NULL,
|
||||
timeout bigint(20) unsigned DEFAULT NULL,
|
||||
|
||||
last_update bigint(20) unsigned NOT NULL,
|
||||
last_state_change bigint(20) unsigned NOT NULL,
|
||||
last_soft_state tinyint(1) unsigned NOT NULL,
|
||||
last_hard_state tinyint(1) unsigned NOT NULL,
|
||||
next_check bigint(20) unsigned NOT NULL,
|
||||
|
||||
PRIMARY KEY (host_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
54
etc/schema/mysql/notification.sql
Normal file
54
etc/schema/mysql/notification.sql
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE notification (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL,
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(notification.vars)',
|
||||
users_checksum binary(20) NOT NULL,
|
||||
usergroups_checksum binary(20) NOT NULL,
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
host_id binary(20) NOT NULL COMMENT 'host.id',
|
||||
service_id binary(20) DEFAULT NULL COMMENT 'service.id',
|
||||
command_id binary(20) NOT NULL COMMENT 'command.id',
|
||||
|
||||
times_begin int(10) unsigned DEFAULT NULL,
|
||||
times_end int(10) unsigned DEFAULT NULL,
|
||||
notification_interval int(10) unsigned NOT NULL,
|
||||
period_id binary(20) DEFAULT NULL COMMENT 'timeperiod.id',
|
||||
|
||||
states tinyint(2) unsigned NOT NULL,
|
||||
types smallint(3) unsigned NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE notification_user (
|
||||
notification_id binary(20) NOT NULL COMMENT 'notification.id',
|
||||
user_id binary(20) NOT NULL COMMENT 'user.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
|
||||
PRIMARY KEY (notification_id,user_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE notification_usergroup (
|
||||
notification_id binary(20) NOT NULL COMMENT 'notification.id',
|
||||
usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'environment.id',
|
||||
|
||||
PRIMARY KEY (notification_id, usergroup_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE notification_customvar (
|
||||
notification_id binary(20) NOT NULL COMMENT 'notification.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
PRIMARY KEY (customvar_id, notification_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
136
etc/schema/mysql/service.sql
Normal file
136
etc/schema/mysql/service.sql
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE service (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(service.vars)',
|
||||
groups_checksum binary(20) NOT NULL COMMENT 'sha1(servicegroup.name + servicegroup.name ...)',
|
||||
host_id binary(20) NOT NULL COMMENT 'sha1(host.id)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
checkcommand varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'checkcommand.name',
|
||||
checkcommand_id binary(20) NOT NULL COMMENT 'checkcommand.id',
|
||||
|
||||
max_check_attempts int(10) unsigned NOT NULL,
|
||||
|
||||
check_period varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'timeperiod.name',
|
||||
check_period_id binary(20) DEFAULT NULL COMMENT 'timeperiod.id',
|
||||
|
||||
check_timeout int(10) unsigned DEFAULT NULL,
|
||||
check_interval int(10) unsigned NOT NULL,
|
||||
check_retry_interval int(10) unsigned NOT NULL,
|
||||
|
||||
active_checks_enabled enum('y','n') NOT NULL,
|
||||
passive_checks_enabled enum('y','n') NOT NULL,
|
||||
event_handler_enabled enum('y','n') NOT NULL,
|
||||
notifications_enabled enum('y','n') NOT NULL,
|
||||
|
||||
flapping_enabled enum('y','n') NOT NULL,
|
||||
flapping_threshold_low float unsigned NOT NULL,
|
||||
flapping_threshold_high float unsigned NOT NULL,
|
||||
|
||||
perfdata_enabled enum('y','n') NOT NULL,
|
||||
|
||||
eventcommand varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'eventcommand.name',
|
||||
eventcommand_id binary(20) DEFAULT NULL COMMENT 'eventcommand.id',
|
||||
|
||||
is_volatile enum('y','n') NOT NULL,
|
||||
|
||||
action_url_id binary(20) DEFAULT NULL COMMENT 'action_url.id',
|
||||
notes_url_id binary(20) DEFAULT NULL COMMENT 'notes_url.id',
|
||||
notes text NOT NULL,
|
||||
icon_image_id binary(20) DEFAULT NULL COMMENT 'icon_image.id',
|
||||
icon_image_alt varchar(32) NOT NULL,
|
||||
|
||||
zone varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'zone.name',
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
command_endpoint varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'endpoint.name',
|
||||
command_endpoint_id binary(20) DEFAULT NULL COMMENT 'endpoint.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE servicegroup (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(servicegroup.vars)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE servicegroup_member (
|
||||
service_id binary(20) NOT NULL COMMENT 'service.id',
|
||||
servicegroup_id binary(20) NOT NULL COMMENT 'servicegroup.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (servicegroup_id,service_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE service_customvar (
|
||||
service_id binary(20) NOT NULL COMMENT 'service.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (customvar_id, service_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE servicegroup_customvar (
|
||||
servicegroup_id binary(20) NOT NULL COMMENT 'servicegroup.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (customvar_id, servicegroup_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
CREATE TABLE service_state (
|
||||
service_id binary(20) NOT NULL COMMENT 'service.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
state_type enum('hard', 'soft') NOT NULL,
|
||||
soft_state tinyint(1) unsigned NOT NULL,
|
||||
hard_state tinyint(1) unsigned NOT NULL,
|
||||
attempt tinyint(1) unsigned NOT NULL,
|
||||
severity smallint unsigned NOT NULL,
|
||||
|
||||
output text DEFAULT NULL,
|
||||
long_output text DEFAULT NULL,
|
||||
performance_data text DEFAULT NULL,
|
||||
check_commandline varchar(255) DEFAULT NULL,
|
||||
|
||||
is_problem enum('y', 'n') NOT NULL,
|
||||
is_handled enum('y', 'n') NOT NULL,
|
||||
is_reachable enum('y', 'n') NOT NULL,
|
||||
is_flapping enum('y', 'n') NOT NULL,
|
||||
|
||||
is_acknowledged enum('y', 'n', 'sticky') NOT NULL,
|
||||
acknowledgement_comment_id binary(20) DEFAULT NULL COMMENT 'comment.id',
|
||||
|
||||
in_downtime enum('y', 'n') NOT NULL,
|
||||
|
||||
execution_time bigint(20) unsigned DEFAULT NULL,
|
||||
latency bigint(20) unsigned DEFAULT NULL,
|
||||
timeout bigint(20) unsigned DEFAULT NULL,
|
||||
|
||||
last_update bigint(20) unsigned NOT NULL,
|
||||
last_state_change bigint(20) unsigned NOT NULL,
|
||||
last_soft_state tinyint(1) unsigned NOT NULL,
|
||||
last_hard_state tinyint(1) unsigned NOT NULL,
|
||||
next_check bigint(20) unsigned NOT NULL,
|
||||
|
||||
PRIMARY KEY (service_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
11
etc/schema/mysql/tests/action_url.csv
Normal file
11
etc/schema/mysql/tests/action_url.csv
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
id;action_url
|
||||
7ae3bfebcb1d644e9ad9;http://google.com
|
||||
4bdd2ffe5134c4283afd;https://netways.de
|
||||
f2040cbe68069d252c8d;https://icinga.com
|
||||
4a4e5b48bf31ae07ca84;https://example.com
|
||||
271661f114b4a123bdc8;https://test.net
|
||||
67af359061dd5e8417d4;http://localhost:8080/action
|
||||
fe465a8ed9e9ca13ab92;https://github.com/icinga
|
||||
9978ba84b178edb04c5f;http://heise.de
|
||||
db1b8dde62083321f6fc;http://www.myaction.com/action?host=$host.name$
|
||||
000ab0a3143b170aa9be;https://foobar.com/action
|
||||
|
7
etc/schema/mysql/tests/command.csv
Normal file
7
etc/schema/mysql/tests/command.csv
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
id;zone_id;env_id;name_checksum;properties_checksum;arguments_checksum;envvars_checksum;type;name;name_ci;command;timeout
|
||||
028c76d230427a74cf13;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;e092682d99e54714972c;56e79a3538284e88b0c6;8724b67d15e3407ca18a;9d62a097e80b47be9b52;CheckCommand;ssh;ssh;check_ssh;10
|
||||
7c6a6e2c6cd0b7eb6e3d;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;9be217119fb447fdaabb;74e1d06fc0ec41fe96ae;8352f468b029422a935f;beacaf4124f9447498c1;CheckCommand;http;http;check_http;10
|
||||
9669632761ac9a6b34c7;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;d31aa3f08a3249b59e35;d2d80d9f3501482b9993;b2f8bbee31684e609d58;c7a536eeec964e64bede;CheckCommand;ping;ping;check_ping;10
|
||||
b35cfcabd029d83ed0e9;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;afc75755c38e427892c7;091a208425604cd3906a;a69d97ba65ef4870ac6e;4a300f6d2c6e437c951d;CheckCommand;udp;udp;check_udp;30
|
||||
8026ac5396f0824556a5;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;2ecd4850301f4270b93b;c2de4a2fbdba4e9594a3;db6cff485e18432aa5e2;d9f6ce09ed7b48d2ab17;CheckCommand;smtp;smtp;check_smtp;50
|
||||
e55cfd3301c0454a8481;5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;fa27c97c4e5d48938ca4;6b952824120747fe9501;50cbf42f63b948a89e0e;33fe8a4ed79049928857;NotificationCommand;notify-by-email;notify-by-email;notifiy-by-email;20
|
||||
|
2
etc/schema/mysql/tests/endpoint.csv
Normal file
2
etc/schema/mysql/tests/endpoint.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
id;env_id;name_checksum;properties_checksum;name;name_ci;zone_checksum;
|
||||
de05024e342884336eb9;b65da3345b7d4cff9a24;182b2683d3ce1422da51;1d38f896a509ce6a233f;host-1.example.com;host-1.example.com;5bf526ee976b4ccade5a
|
||||
|
4
etc/schema/mysql/tests/environment.csv
Normal file
4
etc/schema/mysql/tests/environment.csv
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
env_id;name
|
||||
b65da3345b7d4cff9a24;berlin
|
||||
2591057fe9b1668fe6f3;rio
|
||||
a776df0725a7fb7e8350;london
|
||||
|
2
etc/schema/mysql/tests/eventcommand.csv
Normal file
2
etc/schema/mysql/tests/eventcommand.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
id;env_id;name_checksum;name
|
||||
6625851376b230891032;b65da3345b7d4cff9a24;33f3e3be317c6e79daae;run_my_event.sh
|
||||
|
2
etc/schema/mysql/tests/host.csv
Normal file
2
etc/schema/mysql/tests/host.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
id;env_id;name_checksum;properties_checksum;customvars_checksum;groups_checksum;name;name_ci;display_name;address;address6;address_bin;address6_bin;checkcommand;checkcommand_id;max_check_attempts;check_period;check_period_id;check_timeout;check_interval;check_retry_interval;active_checks_enabled;passive_checks_enabled;event_handler_enabled;notifications_enabled;flapping_enabled;flapping_threshold_low;flapping_threshold_high;perfdata_enabled;eventcommand;eventcommand_id;is_volatile;action_url_id;notes_url_id;notes;icon_image_id;icon_image_alt;zone;zone_id;command_endpoint;command_endpoint_id
|
||||
4bf94dba13178df0a0a4;b65da3345b7d4cff9a24;29d5877b34cc481ddf93;52ea2238f3f248295f4e;fe98cdc58d454dd68c6c;2f27f2ad0f9e725febb1;host-1.example.com;host-1.example.com;Host-1;127.0.0.1;::1;abcd;abcdefgh;/bin/foobar;028c76d230427a74cf13;3;24x7;0f75d7bbb6bcc4ac23cc;50;60;10;y;y;y;y;y;"";"";y;"";"";n;"";"";foobar asdf;"";"";master;5bf526ee976b4ccade5a;host-1.example.com;de05024e342884336eb9
|
||||
|
5
etc/schema/mysql/tests/hostgroup.csv
Normal file
5
etc/schema/mysql/tests/hostgroup.csv
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
id;env_id;name_checksum;properties_checksum;name;name_ci;display_name
|
||||
2707e212c64878787ff7;b65da3345b7d4cff9a24;061c5b49e09d4fab6232;b739d140a7a58a65b61f;linux-server;linux-server;Linux Server
|
||||
21229b386d88d686e22f;b65da3345b7d4cff9a24;25697d5e364550ee4bb3;b77b58b5ce480395acb2;windows;windows;Windows
|
||||
2f27f2ad0f9e725febb1;b65da3345b7d4cff9a24;75e381fffc334e19c372;167e9930fd7b55b376aa;Dc1;dc1;DC 1
|
||||
bc04f6c12cf74149bdb7;b65da3345b7d4cff9a24;86a2f9a4799960bac520;461146038345a545f79c;Dc2;dc2;DC 2
|
||||
|
2
etc/schema/mysql/tests/hostgroup_member.csv
Normal file
2
etc/schema/mysql/tests/hostgroup_member.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
host_id;hostgroup_id;env_id
|
||||
4bf94dba13178df0a0a4;2707e212c64878787ff7;b65da3345b7d4cff9a24
|
||||
|
11
etc/schema/mysql/tests/icon_image.csv
Normal file
11
etc/schema/mysql/tests/icon_image.csv
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
id;icon_image
|
||||
7e2bc7526cf32e0ca468;/usr/local/icons/icon.img
|
||||
152a0cb13bb7725fdba0;/var/www/icon.ico
|
||||
c1e1a286bf94b776876b;/icons/linux.png
|
||||
9c78fe334eb32efbe5dc;/icons/windows.png
|
||||
f1eaa4bce4a5adbad360;/icons/bsd.png
|
||||
c27aa5794a5391881c4e;/icons/cloud.png
|
||||
e2ce7f6b557ca20e7929;/icons/switch.png
|
||||
3612e1fd75143e4582ec;/icons/router.png
|
||||
d2b0743a6c62896b07b6;/icons/hub.png
|
||||
403956eaf7a48505726b;/icons/rj45-cable.png
|
||||
|
165
etc/schema/mysql/tests/import.sql
Normal file
165
etc/schema/mysql/tests/import.sql
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
LOAD DATA INFILE '/var/lib/mysql-files/environment.csv'
|
||||
REPLACE
|
||||
INTO TABLE environment
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/host.csv'
|
||||
REPLACE
|
||||
INTO TABLE host
|
||||
CHARACTER SET utf8mb4
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/hostgroup.csv'
|
||||
REPLACE
|
||||
INTO TABLE hostgroup
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/hostgroup_member.csv'
|
||||
REPLACE
|
||||
INTO TABLE hostgroup_member
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/service.csv'
|
||||
REPLACE
|
||||
INTO TABLE service
|
||||
CHARACTER SET utf8mb4
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/servicegroup.csv'
|
||||
REPLACE
|
||||
INTO TABLE servicegroup
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/servicegroup_member.csv'
|
||||
REPLACE
|
||||
INTO TABLE servicegroup_member
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/command.csv'
|
||||
REPLACE
|
||||
INTO TABLE command
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/eventcommand.csv'
|
||||
REPLACE
|
||||
INTO TABLE eventcommand
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/action_url.csv'
|
||||
REPLACE
|
||||
INTO TABLE action_url
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/notes_url.csv'
|
||||
REPLACE
|
||||
INTO TABLE notes_url
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/icon_image.csv'
|
||||
REPLACE
|
||||
INTO TABLE icon_image
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/endpoint.csv'
|
||||
REPLACE
|
||||
INTO TABLE endpoint
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/zone.csv'
|
||||
REPLACE
|
||||
INTO TABLE zone
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/notification.csv'
|
||||
REPLACE
|
||||
INTO TABLE notification
|
||||
CHARACTER SET utf8mb4
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/user.csv'
|
||||
REPLACE
|
||||
INTO TABLE user
|
||||
CHARACTER SET utf8mb4
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/usergroup.csv'
|
||||
REPLACE
|
||||
INTO TABLE usergroup
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
|
||||
LOAD DATA INFILE '/var/lib/mysql-files/usergroup_member.csv'
|
||||
REPLACE
|
||||
INTO TABLE usergroup_member
|
||||
COLUMNS TERMINATED BY ';'
|
||||
OPTIONALLY ENCLOSED BY '"'
|
||||
ESCAPED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 LINES;
|
||||
11
etc/schema/mysql/tests/notes_url.csv
Normal file
11
etc/schema/mysql/tests/notes_url.csv
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
id;notes_url
|
||||
0f75d7bbb6bcc4ac23cc;https://netways.de/notes
|
||||
48c192d5df8397c5aefb;https://mynotes1.com/notes
|
||||
d3bd74fb834008ef18b0;http://mynotes2.com/notes2
|
||||
f018361bed42fb11e307;http://netways.de/
|
||||
c6bce8bb9287eecec438;http://google.com/notes
|
||||
1b3802cd9bf366a6deb6;http://example.com/foobar
|
||||
72b8661ed08a3638094e;https://foobar.com/notes
|
||||
d9930220bddf331861e7;http://barfoo.net
|
||||
5201df53a52a5026ecfb;https://www.test.com/myicinganotes
|
||||
4d1951edf8204a93ac91;http://localhost:8080/notes
|
||||
|
2
etc/schema/mysql/tests/notification.csv
Normal file
2
etc/schema/mysql/tests/notification.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
id;env_id;name_checksum;properties_checksum;name;name_ci;host_id;service_id;command_id;times_begin;times_end;notification_interval;period_id;states;types;zone_id
|
||||
0a30d6199584432ea369;b65da3345b7d4cff9a24;fe53687c39514a5794b7;2992037dd9dd4577ae79;notify-1;notify-1;4bf94dba13178df0a0a4;NULL;e55cfd3301c0454a8481;NULL;NULL;300;f98a83dfd1fd4aaa9af9;15;96;5bf526ee976b4ccade5a
|
||||
|
3
etc/schema/mysql/tests/service.csv
Normal file
3
etc/schema/mysql/tests/service.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
id;env_id;name_checksum;properties_checksum;groups_checksum;host_checksum;name;name_ci;display_name;checkcommand;checkcommand_id;max_check_attempts;check_period;check_period_id;check_timeout;check_interval;check_retry_interval;active_checks_enabled;passive_checks_enabled;event_handler_enabled;notifications_enabled;flapping_enabled;flapping_threshold_low;flapping_threshold_high;perfdata_enabled;eventcommand;eventcommand_id;is_volatile;action_url_id;notes_url_id;notes;icon_image_id;icon_image_alt;zone;zone_id;command_endpoint;command_endpoint_id
|
||||
761cd44dac02475eace0;b65da3345b7d4cff9a24;c06ec2d10dc547f4b0ae;0fe34c2ab0a84d70bc1f;bafbaa5b9c024db19376;4bf94dba13178df0a0a4;ssh;ssh;SSH;ssh;028c76d230427a74cf13;3;24x7;f82ff663461d45baac03;60;60;10;y;y;y;y;y;NULL;NULL;y;NULL;NULL;n;NULL;NULL;NULL;NULL;NULL;master;5bf526ee976b4ccade5a;host-1.example.com;4bf94dba13178df0a0a4
|
||||
1c26aa30d3b9406ba838;b65da3345b7d4cff9a24;54cb075cbcfe43a6b927;f9250c3bc58248d7b5e6;1247ae00b6ef4f0ca7e1;129421882f9a5d27097f;http;http;HTTP;http;7c6a6e2c6cd0b7eb6e3d;3;24x7;f82ff663461d45baac03;60;60;10;y;y;n;y;n;NULL;NULL;y;NULL;NULL;n;NULL;NULL;NULL;NULL;NULL;master;5bf526ee976b4ccade5a;NULL;NULL
|
||||
|
2
etc/schema/mysql/tests/servicegroup.csv
Normal file
2
etc/schema/mysql/tests/servicegroup.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
id;env_id;name_checksum;properties_checksum;name;name_ci;display_name;zone_id
|
||||
6eaf35fcc99d490cb110;b65da3345b7d4cff9a24;7078e8355bb444d78616;60a2a3583ce443c498a5;myGroup;mygroup;My Group;5bf526ee976b4ccade5a
|
||||
|
2
etc/schema/mysql/tests/servicegroup_member.csv
Normal file
2
etc/schema/mysql/tests/servicegroup_member.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
service_id;servicegroup_id;env_id
|
||||
761cd44dac02475eace0;6eaf35fcc99d490cb110;b65da3345b7d4cff9a24
|
||||
|
3
etc/schema/mysql/tests/user.csv
Normal file
3
etc/schema/mysql/tests/user.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
id;env_id;name_checksum;properties_checksum;groups_checksum;name;name_ci;label;email;pager;notifications_enabled;period_id;states;types;zone_id
|
||||
68e12f6f9ebb42cea93b;b65da3345b7d4cff9a24;9379c8d791fe4728ab4c;d75ffc6507b34f18b083;210436e39ad141d189b4;John;john;John;john@doe.com;NULL;y;f98a83dfd1fd4aaa9af9;15;96;5bf526ee976b4ccade5a
|
||||
2744e0261ab04aa2ad66;b65da3345b7d4cff9a24;c04cdda645d341c1bfc3;c49635a2d3e74f329d60;9f57dd06be924335ad1c;Bob;bob;Bob;bob@apple.com;NULL;y;996b2dfd57a14d39b815;7;32;5bf526ee976b4ccade5a
|
||||
|
3
etc/schema/mysql/tests/usergroup.csv
Normal file
3
etc/schema/mysql/tests/usergroup.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
id;env_id;name_checksum;properties_checksum;name;name_ci;display_name;zone_id
|
||||
4ba982d6c3a44798ad73;b65da3345b7d4cff9a24;e9e70554b63d4e04ade3;a7ead798a7b94668a6de;Administrators;administrators;Admins;5bf526ee976b4ccade5a
|
||||
074302b6f8ae40c88567;b65da3345b7d4cff9a24;1710fe8a008c433486cb;dc30bdf415544b6fa061;Users;users;Users;5bf526ee976b4ccade5a
|
||||
|
3
etc/schema/mysql/tests/usergroup_member.csv
Normal file
3
etc/schema/mysql/tests/usergroup_member.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
user_id;usergroup_id;env_id
|
||||
2744e0261ab04aa2ad66;4ba982d6c3a44798ad73;b65da3345b7d4cff9a24
|
||||
68e12f6f9ebb42cea93b;074302b6f8ae40c88567;b65da3345b7d4cff9a24
|
||||
|
3
etc/schema/mysql/tests/zone.csv
Normal file
3
etc/schema/mysql/tests/zone.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
id;env_checksum;name_checksum;properties_checksum;name;name_ci;is_global;parent_id
|
||||
5bf526ee976b4ccade5a;b65da3345b7d4cff9a24;1c99751939822f45bdbe;69616e902472807a9478;master;master;n;NULL
|
||||
627b6a90fbee738ae674;b65da3345b7d4cff9a24;dc2baecdb1b69ffc174a;e5c614f057dede0a5765;global;global;y;NULL
|
||||
|
50
etc/schema/mysql/timeperiod.sql
Normal file
50
etc/schema/mysql/timeperiod.sql
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE timeperiod (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(env.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
ranges_checksum binary(20) NOT NULL COMMENT 'sha1(ranges from timeperiod_ranges where timeperiod_range.timeperiod_id = id)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(timeperiod.vars)',
|
||||
includes_checksum binary(20) NOT NULL COMMENT 'sha1(includes)',
|
||||
excludes_checksum binary(20) NOT NULL COMMENT 'sha1(excludes)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
prefer_includes enum('y','n') NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE timeperiod_range (
|
||||
timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id',
|
||||
range_key varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
range_value varchar(255) NOT NULL,
|
||||
|
||||
PRIMARY KEY (timeperiod_id,range_key)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE timeperiod_override (
|
||||
timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id',
|
||||
override_id binary(20) NOT NULL COMMENT 'timeperiod.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
|
||||
override_type enum('include','exclude') NOT NULL,
|
||||
|
||||
PRIMARY KEY (timeperiod_id,override_id,override_type)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE timeperiod_customvar (
|
||||
timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
PRIMARY KEY (customvar_id, timeperiod_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
128
etc/schema/mysql/types
Normal file
128
etc/schema/mysql/types
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
object:*
|
||||
name
|
||||
zone (if has zone)
|
||||
|
||||
checksum:*
|
||||
name_checksum
|
||||
environment_checksum
|
||||
zone_id (if has zone)
|
||||
|
||||
object:*command
|
||||
name
|
||||
type (CheckCommand, EventCommand, NotificationCommand)
|
||||
command
|
||||
timeout
|
||||
|
||||
arguments (not part of property_checksum)
|
||||
envvars (not part of property_checksum)
|
||||
|
||||
checksum:Xcommand
|
||||
properties_checksum
|
||||
arguments_checksum
|
||||
argument_ids
|
||||
envvars_checksum
|
||||
envvar_ids
|
||||
|
||||
object:notification
|
||||
times_begin (not part of property_checksum)
|
||||
times_end (not part of property_checksum)
|
||||
|
||||
checksum:notification
|
||||
host_id
|
||||
service_id (if servicenotification)
|
||||
command_id
|
||||
properties_checksum
|
||||
user_ids
|
||||
users_checksum
|
||||
usergroup_ids
|
||||
usergroups_checksum
|
||||
|
||||
object:Xcomment
|
||||
author
|
||||
text
|
||||
entry_type
|
||||
is_persistent
|
||||
expire_time
|
||||
|
||||
checksum:Xcomment
|
||||
host_id (if hostcomment)
|
||||
service_id (if servicecomment)
|
||||
|
||||
object:Xgroup
|
||||
display_name
|
||||
|
||||
checksum:Xgroup
|
||||
properties_checksum
|
||||
|
||||
object:user
|
||||
display_name
|
||||
email
|
||||
pager
|
||||
notification_enabled
|
||||
states
|
||||
types
|
||||
|
||||
checksum:user
|
||||
properies_checksum
|
||||
group_ids
|
||||
groups_checksum
|
||||
period_id
|
||||
|
||||
object:zone
|
||||
is_global
|
||||
|
||||
checkusm:zone
|
||||
properties_checksum
|
||||
parents_checksum
|
||||
parent_ids
|
||||
|
||||
object:endpoint
|
||||
|
||||
checksum:endpoint
|
||||
properties_checksum
|
||||
|
||||
object:host/service
|
||||
checkcommand
|
||||
max_check_attempts
|
||||
check_timeout
|
||||
check_interval
|
||||
check_retry_interval
|
||||
active_checks_enabled
|
||||
passive_checks_enabled
|
||||
event_handler_enabled
|
||||
notifications_enabled
|
||||
flapping_enabled
|
||||
flapping_threshold_low
|
||||
flapping_threshold_high
|
||||
perfdata_enabled
|
||||
is_volatile
|
||||
notes
|
||||
icon_image_alt
|
||||
command_endpoint
|
||||
check_period
|
||||
eventcommand
|
||||
display_name
|
||||
address (if host)
|
||||
address6 (if host)
|
||||
|
||||
checksum:host/service
|
||||
host_id (if service)
|
||||
action_url_id
|
||||
notes_url_id
|
||||
icon_image_id
|
||||
command_endpoint_id
|
||||
check_period_id
|
||||
eventcommand_id
|
||||
groups_checksum
|
||||
group_ids
|
||||
|
||||
object:timeperiod
|
||||
display_name
|
||||
prefer_indluces
|
||||
|
||||
checksum:timeperiod
|
||||
ranges_checksum
|
||||
includes_checksum
|
||||
include_ids
|
||||
excludes_checksum
|
||||
exclude_ids
|
||||
32
etc/schema/mysql/url.sql
Normal file
32
etc/schema/mysql/url.sql
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE icon_image (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(icon_image)',
|
||||
icon_image text COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
reference_counter int(6) unsigned NOT NULL COMMENT 'if 0, the custom var needs to be deleted',
|
||||
|
||||
PRIMARY KEY (env_id, id),
|
||||
KEY idx_icon_image (icon_image(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE action_url (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(action_url)',
|
||||
action_url text COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
reference_counter int(6) unsigned NOT NULL COMMENT 'if 0, the custom var needs to be deleted',
|
||||
|
||||
PRIMARY KEY (env_id, id),
|
||||
KEY idx_action_url (action_url(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE notes_url (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(notes_url)',
|
||||
notes_url text COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
reference_counter int(6) unsigned NOT NULL COMMENT 'if 0, the custom var needs to be deleted',
|
||||
|
||||
PRIMARY KEY (env_id, id),
|
||||
KEY idx_notes_url (notes_url(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
67
etc/schema/mysql/user.sql
Normal file
67
etc/schema/mysql/user.sql
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE user (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(user.vars)',
|
||||
groups_checksum binary(20) NOT NULL COMMENT 'sha1(usergroup.name + userroup.name ...)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
email varchar(255) NOT NULL,
|
||||
pager varchar(255) NOT NULL,
|
||||
|
||||
notifications_enabled enum('y', 'n') NOT NULL,
|
||||
|
||||
period_id binary(20) DEFAULT NULL COMMENT 'timeperiod.id',
|
||||
|
||||
states tinyint(2) unsigned NOT NULL,
|
||||
types smallint(3) unsigned NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE usergroup (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
customvars_checksum binary(20) NOT NULL COMMENT 'sha1(usergroup.vars)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
display_name varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
zone_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE usergroup_member (
|
||||
user_id binary(20) NOT NULL COMMENT 'user.id',
|
||||
usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
|
||||
PRIMARY KEY (user_id,usergroup_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE user_customvar (
|
||||
user_id binary(20) NOT NULL COMMENT 'user.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
PRIMARY KEY (customvar_id, user_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
CREATE TABLE usergroup_customvar (
|
||||
usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id',
|
||||
customvar_id binary(20) NOT NULL COMMENT 'customvar.id',
|
||||
env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)',
|
||||
PRIMARY KEY (customvar_id, usergroup_id)
|
||||
) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin;
|
||||
31
etc/schema/mysql/zone.sql
Normal file
31
etc/schema/mysql/zone.sql
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
SET sql_mode = 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION';
|
||||
SET innodb_strict_mode = 1;
|
||||
|
||||
CREATE TABLE zone (
|
||||
id binary(20) NOT NULL COMMENT 'sha1(environment.name + name)',
|
||||
env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)',
|
||||
name_checksum binary(20) NOT NULL COMMENT 'sha1(name)',
|
||||
properties_checksum binary(20) NOT NULL COMMENT 'sha1(all properties)',
|
||||
parents_checksum binary(20) NOT NULL COMMENT 'sha1(all parents checksums)',
|
||||
|
||||
name varchar(255) NOT NULL,
|
||||
name_ci varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
|
||||
is_global enum('y','n') NOT NULL,
|
||||
parent_id binary(20) DEFAULT NULL COMMENT 'zone.id',
|
||||
|
||||
|
||||
PRIMARY KEY (id),
|
||||
INDEX idx_parent_id (parent_id),
|
||||
UNIQUE INDEX idx_env_id_id (env_id,id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
|
||||
CREATE TABLE zone_tree (
|
||||
parent_id binary(20) NOT NULL COMMENT 'zone.id',
|
||||
child_id binary(20) NOT NULL COMMENT 'zone.id',
|
||||
env_id binary(20) NOT NULL COMMENT 'env.id',
|
||||
depth tinyint(3) unsigned NOT NULL,
|
||||
|
||||
PRIMARY KEY (child_id,depth),
|
||||
UNIQUE INDEX zone_relation (child_id,parent_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
|
||||
7
icingadb.ini
Normal file
7
icingadb.ini
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[redis]
|
||||
host="127.0.0.1"
|
||||
|
||||
[mysql]
|
||||
host="127.0.0.1"
|
||||
user="module-dev"
|
||||
password="icinga0815!"
|
||||
30
main.go
30
main.go
|
|
@ -1,9 +1,11 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"git.icinga.com/icingadb/icingadb-connection"
|
||||
"git.icinga.com/icingadb/icingadb-ha"
|
||||
"git.icinga.com/icingadb/icingadb-json-decoder"
|
||||
"git.icinga.com/icingadb/icingadb-main/config"
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject/host"
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject/sync"
|
||||
"git.icinga.com/icingadb/icingadb-main/supervisor"
|
||||
|
|
@ -11,22 +13,32 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
redisConn, err := icingadb_connection.NewRDBWrapper("127.0.0.1:6379")
|
||||
configPath := flag.String("config", "icingadb.ini", "path to config")
|
||||
flag.Parse()
|
||||
|
||||
if err := config.ParseConfig(*configPath); err != nil {
|
||||
log.Fatalf("Error reading config: %v", err)
|
||||
}
|
||||
|
||||
redisInfo := config.GetRedisInfo()
|
||||
mysqlInfo := config.GetMysqlInfo()
|
||||
|
||||
redisConn, err := icingadb_connection.NewRDBWrapper(redisInfo.Host + ":" + redisInfo.Port)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
mysqlConn, err := icingadb_connection.NewDBWrapper("module-dev:icinga0815!@tcp(127.0.0.1:3306)/icingadb" )
|
||||
mysqlConn, err := icingadb_connection.NewDBWrapper(mysqlInfo.User + ":" + mysqlInfo.Password + "@tcp(" + mysqlInfo.Host + ":" + mysqlInfo.Port + ")/" + mysqlInfo.Database)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
super := supervisor.Supervisor{
|
||||
ChErr: make (chan error),
|
||||
ChEnv: make(chan *icingadb_ha.Environment),
|
||||
ChErr: make(chan error),
|
||||
ChEnv: make(chan *icingadb_ha.Environment),
|
||||
ChDecode: make(chan *icingadb_json_decoder.JsonDecodePackages),
|
||||
Rdbw: redisConn,
|
||||
Dbw: mysqlConn,
|
||||
Rdbw: redisConn,
|
||||
Dbw: mysqlConn,
|
||||
}
|
||||
|
||||
ha := icingadb_ha.HA{}
|
||||
|
|
@ -42,7 +54,7 @@ func main() {
|
|||
|
||||
super.ChErr <- sync.Operator(&super, chHA, &sync.Context{
|
||||
ObjectType: "host",
|
||||
Factory: host.NewHost,
|
||||
Factory: host.NewHost,
|
||||
InsertStmt: host.BulkInsertStmt,
|
||||
DeleteStmt: host.BulkDeleteStmt,
|
||||
UpdateStmt: host.BulkUpdateStmt,
|
||||
|
|
@ -51,10 +63,10 @@ func main() {
|
|||
|
||||
for {
|
||||
select {
|
||||
case err := <- super.ChErr:
|
||||
case err := <-super.ChErr:
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue