summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:47:21 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:47:21 +0000
commit1ac4a2050c8076eb96e07e83721ebc9db864db94 (patch)
treeda9b32212bf99154450a7668f61a75f65617a9fa /test
parentInitial commit. (diff)
downloadicingaweb2-module-toplevelview-1ac4a2050c8076eb96e07e83721ebc9db864db94.tar.xz
icingaweb2-module-toplevelview-1ac4a2050c8076eb96e07e83721ebc9db864db94.zip
Adding upstream version 0.3.3.upstream/0.3.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test')
-rw-r--r--test/config/authentication.ini3
-rw-r--r--test/config/config.ini7
l---------test/config/enabledModules/doc1
l---------test/config/enabledModules/monitoring1
l---------test/config/enabledModules/toplevelview1
l---------test/config/enabledModules/translation1
-rw-r--r--test/config/groups.ini3
-rw-r--r--test/config/icingaweb2/authentication.ini3
-rw-r--r--test/config/icingaweb2/config.ini7
l---------test/config/icingaweb2/enabledModules/monitoring1
l---------test/config/icingaweb2/enabledModules/toplevelview1
-rw-r--r--test/config/icingaweb2/groups.ini3
-rw-r--r--test/config/icingaweb2/modules/monitoring/backends.ini3
-rw-r--r--test/config/icingaweb2/resources.ini19
-rw-r--r--test/config/icingaweb2/roles.ini4
-rw-r--r--test/config/modules/monitoring/backends.ini8
-rw-r--r--test/config/modules/toplevelview/views/.gitignore1
-rw-r--r--test/config/modules/toplevelview/views/mass.yml394
-rw-r--r--test/config/modules/toplevelview/views/test.yml75
-rw-r--r--test/config/resources.ini27
-rw-r--r--test/config/roles.ini4
-rw-r--r--test/docker/Dockerfile5
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icinga.sh19
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icinga/.gitignore1
-rwxr-xr-xtest/docker/docker-entrypoint-initdb.d/icinga/dump.sh22
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icinga/ido-data.sql244
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icinga/ido-legacy-data.sql78
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icinga/ido-mysql.sql1690
-rw-r--r--test/docker/docker-entrypoint-initdb.d/icingaweb2.sql138
-rw-r--r--test/fixtures/sqlite-legacy.sql44
-rwxr-xr-xtest/setup_vendor.sh74
31 files changed, 2882 insertions, 0 deletions
diff --git a/test/config/authentication.ini b/test/config/authentication.ini
new file mode 100644
index 0000000..6852ece
--- /dev/null
+++ b/test/config/authentication.ini
@@ -0,0 +1,3 @@
+[icingaweb2]
+backend = "db"
+resource = "icingaweb_db"
diff --git a/test/config/config.ini b/test/config/config.ini
new file mode 100644
index 0000000..8fc8330
--- /dev/null
+++ b/test/config/config.ini
@@ -0,0 +1,7 @@
+[global]
+show_stacktraces = "1"
+config_backend = "db"
+config_resource = "icingaweb_db"
+
+[logging]
+log = "none"
diff --git a/test/config/enabledModules/doc b/test/config/enabledModules/doc
new file mode 120000
index 0000000..a9d790e
--- /dev/null
+++ b/test/config/enabledModules/doc
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/doc \ No newline at end of file
diff --git a/test/config/enabledModules/monitoring b/test/config/enabledModules/monitoring
new file mode 120000
index 0000000..c201d00
--- /dev/null
+++ b/test/config/enabledModules/monitoring
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/monitoring \ No newline at end of file
diff --git a/test/config/enabledModules/toplevelview b/test/config/enabledModules/toplevelview
new file mode 120000
index 0000000..71aae1d
--- /dev/null
+++ b/test/config/enabledModules/toplevelview
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/toplevelview \ No newline at end of file
diff --git a/test/config/enabledModules/translation b/test/config/enabledModules/translation
new file mode 120000
index 0000000..45b66cf
--- /dev/null
+++ b/test/config/enabledModules/translation
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/translation \ No newline at end of file
diff --git a/test/config/groups.ini b/test/config/groups.ini
new file mode 100644
index 0000000..6852ece
--- /dev/null
+++ b/test/config/groups.ini
@@ -0,0 +1,3 @@
+[icingaweb2]
+backend = "db"
+resource = "icingaweb_db"
diff --git a/test/config/icingaweb2/authentication.ini b/test/config/icingaweb2/authentication.ini
new file mode 100644
index 0000000..6852ece
--- /dev/null
+++ b/test/config/icingaweb2/authentication.ini
@@ -0,0 +1,3 @@
+[icingaweb2]
+backend = "db"
+resource = "icingaweb_db"
diff --git a/test/config/icingaweb2/config.ini b/test/config/icingaweb2/config.ini
new file mode 100644
index 0000000..8fc8330
--- /dev/null
+++ b/test/config/icingaweb2/config.ini
@@ -0,0 +1,7 @@
+[global]
+show_stacktraces = "1"
+config_backend = "db"
+config_resource = "icingaweb_db"
+
+[logging]
+log = "none"
diff --git a/test/config/icingaweb2/enabledModules/monitoring b/test/config/icingaweb2/enabledModules/monitoring
new file mode 120000
index 0000000..c201d00
--- /dev/null
+++ b/test/config/icingaweb2/enabledModules/monitoring
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/monitoring \ No newline at end of file
diff --git a/test/config/icingaweb2/enabledModules/toplevelview b/test/config/icingaweb2/enabledModules/toplevelview
new file mode 120000
index 0000000..71aae1d
--- /dev/null
+++ b/test/config/icingaweb2/enabledModules/toplevelview
@@ -0,0 +1 @@
+/usr/share/icingaweb2/modules/toplevelview \ No newline at end of file
diff --git a/test/config/icingaweb2/groups.ini b/test/config/icingaweb2/groups.ini
new file mode 100644
index 0000000..6852ece
--- /dev/null
+++ b/test/config/icingaweb2/groups.ini
@@ -0,0 +1,3 @@
+[icingaweb2]
+backend = "db"
+resource = "icingaweb_db"
diff --git a/test/config/icingaweb2/modules/monitoring/backends.ini b/test/config/icingaweb2/modules/monitoring/backends.ini
new file mode 100644
index 0000000..eed9a90
--- /dev/null
+++ b/test/config/icingaweb2/modules/monitoring/backends.ini
@@ -0,0 +1,3 @@
+[ido]
+type = "ido"
+resource = "icinga_db"
diff --git a/test/config/icingaweb2/resources.ini b/test/config/icingaweb2/resources.ini
new file mode 100644
index 0000000..7dd53ee
--- /dev/null
+++ b/test/config/icingaweb2/resources.ini
@@ -0,0 +1,19 @@
+[icingaweb_db]
+type = "db"
+db = "mysql"
+host = "db"
+port = ""
+dbname = "icingaweb2"
+username = "icingaweb2"
+password = "rosebud"
+charset = ""
+persistent = "0"
+use_ssl = "0"
+
+[icinga_db]
+type = "db"
+db = "mysql"
+host = "db"
+dbname = "icinga"
+username = "icingaweb2"
+password = "rosebud"
diff --git a/test/config/icingaweb2/roles.ini b/test/config/icingaweb2/roles.ini
new file mode 100644
index 0000000..44f14d5
--- /dev/null
+++ b/test/config/icingaweb2/roles.ini
@@ -0,0 +1,4 @@
+[Administratoren]
+users = "icingaadmin"
+permissions = "*"
+groups = "Administratoren"
diff --git a/test/config/modules/monitoring/backends.ini b/test/config/modules/monitoring/backends.ini
new file mode 100644
index 0000000..2611429
--- /dev/null
+++ b/test/config/modules/monitoring/backends.ini
@@ -0,0 +1,8 @@
+[icinga]
+type = "ido"
+resource = "icinga_db"
+
+[legacy]
+type = "ido"
+resource = "icinga_legacy_db"
+;disabled = "1"
diff --git a/test/config/modules/toplevelview/views/.gitignore b/test/config/modules/toplevelview/views/.gitignore
new file mode 100644
index 0000000..355164c
--- /dev/null
+++ b/test/config/modules/toplevelview/views/.gitignore
@@ -0,0 +1 @@
+*/
diff --git a/test/config/modules/toplevelview/views/mass.yml b/test/config/modules/toplevelview/views/mass.yml
new file mode 100644
index 0000000..5bf1ad8
--- /dev/null
+++ b/test/config/modules/toplevelview/views/mass.yml
@@ -0,0 +1,394 @@
+---
+name: More Tiles
+children:
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_down
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_down
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_down
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+- name: Section
+ children:
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
+ - name: Tile
+ children:
+ - host: host_ok
diff --git a/test/config/modules/toplevelview/views/test.yml b/test/config/modules/toplevelview/views/test.yml
new file mode 100644
index 0000000..789de94
--- /dev/null
+++ b/test/config/modules/toplevelview/views/test.yml
@@ -0,0 +1,75 @@
+---
+name: Test
+children:
+- name: Single Objects
+ children:
+ - name: OK
+ children:
+ - host: host_ok
+ - host: host_ok
+ service: s_ok
+ - host: host_s_soft
+ - host: host_s_soft
+ service: s_critical_soft
+ - name: DOWN
+ children:
+ - host: host_down
+ - host: host_down
+ service: s_critical
+ - name: CRITICAL
+ children:
+ - host: host_s_critical
+ - host: host_s_critical
+ service: s_critical
+ - name: WARNING
+ children:
+ - host: host_s_warning
+ - host: host_s_warning
+ service: s_warning
+- name: Single Objects Handled
+ children:
+ - name: CRITICAL handled
+ children:
+ - host: host_s_critical_handled
+ - host: host_s_critical_handled
+ service: s_critical_handled
+ - name: WARNING handled
+ children:
+ - host: host_s_warning_handled
+ - host: host_s_warning_handled
+ service: s_warning_handled
+- name: Hostgroups
+ children:
+ - name: OK
+ children:
+ - hostgroup: HG_OK
+ - hostgroup: HG_SOFT
+ - name: DOWN
+ children:
+ - hostgroup: HG_DOWN
+ - name: CRITICAL
+ children:
+ - hostgroup: HG_CRITICAL
+ - name: WARNING
+ children:
+ - hostgroup: HG_WARNING
+- name: TLV Missing
+ children:
+ - name: Partially missing
+ children:
+ - host: host_ok
+ - name: missing
+ - name: Missing with problems
+ children:
+ - host: host_down
+ - name: missing
+ - name: Missing with handled
+ children:
+ - host: host_down_handled
+ - name: missing
+ - name: Empty
+ children:
+ - name: nothing here
+ - name: Notexisting Object
+ children:
+ - host: notexisting \ No newline at end of file
diff --git a/test/config/resources.ini b/test/config/resources.ini
new file mode 100644
index 0000000..2c0c221
--- /dev/null
+++ b/test/config/resources.ini
@@ -0,0 +1,27 @@
+[icingaweb_db]
+type = "db"
+db = "mysql"
+host = "db"
+port = ""
+dbname = "icingaweb2"
+username = "icingaweb2"
+password = "rosebud"
+charset = ""
+persistent = "0"
+use_ssl = "0"
+
+[icinga_db]
+type = "db"
+db = "mysql"
+host = "db"
+dbname = "icinga"
+username = "icingaweb2"
+password = "rosebud"
+
+[icinga_legacy_db]
+type = "db"
+db = "mysql"
+host = "db"
+dbname = "icinga_legacy"
+username = "icingaweb2"
+password = "rosebud"
diff --git a/test/config/roles.ini b/test/config/roles.ini
new file mode 100644
index 0000000..44f14d5
--- /dev/null
+++ b/test/config/roles.ini
@@ -0,0 +1,4 @@
+[Administratoren]
+users = "icingaadmin"
+permissions = "*"
+groups = "Administratoren"
diff --git a/test/docker/Dockerfile b/test/docker/Dockerfile
new file mode 100644
index 0000000..d1ffb4f
--- /dev/null
+++ b/test/docker/Dockerfile
@@ -0,0 +1,5 @@
+FROM lazyfrosch/icingaweb2
+
+RUN apk add -U \
+ php7-pdo_sqlite \
+ sqlite
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga.sh b/test/docker/docker-entrypoint-initdb.d/icinga.sh
new file mode 100644
index 0000000..b0538d4
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+set -ex
+
+: ${MYSQL_ROOT_PASSWORD:=}
+: ${MYSQL_USER:=}
+
+export MYSQL_PWD="${MYSQL_ROOT_PASSWORD}"
+
+mysql -e "DROP DATABASE IF EXISTS icinga"
+mysql -e "CREATE DATABASE icinga"
+mysql -e "GRANT ALL ON icinga.* TO '${MYSQL_USER}'@'%'"
+mysql -e "DROP DATABASE IF EXISTS icinga_legacy"
+mysql -e "CREATE DATABASE icinga_legacy"
+mysql -e "GRANT ALL ON icinga_legacy.* TO '${MYSQL_USER}'@'%'"
+mysql icinga < /docker-entrypoint-initdb.d/icinga/ido-mysql.sql
+mysql icinga < /docker-entrypoint-initdb.d/icinga/ido-data.sql
+mysql icinga_legacy < /docker-entrypoint-initdb.d/icinga/ido-mysql.sql
+mysql icinga_legacy < /docker-entrypoint-initdb.d/icinga/ido-legacy-data.sql
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga/.gitignore b/test/docker/docker-entrypoint-initdb.d/icinga/.gitignore
new file mode 100644
index 0000000..8cfb08d
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga/.gitignore
@@ -0,0 +1 @@
+full.sql
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga/dump.sh b/test/docker/docker-entrypoint-initdb.d/icinga/dump.sh
new file mode 100755
index 0000000..54f91a9
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga/dump.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+CONFIG="$(docker-compose config)"
+MYSQL_ROOT_PASSWORD="$(echo "$CONFIG" | grep MYSQL_ROOT_PASSWORD | cut -d: -f2 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
+
+set -x
+
+docker exec -i \
+ "$(docker-compose ps -q db)" \
+ mysqldump -p"${MYSQL_ROOT_PASSWORD}" --no-create-info icinga \
+ icinga_instances icinga_programstatus icinga_objects \
+ icinga_hosts icinga_hoststatus \
+ icinga_services icinga_servicestatus \
+ icinga_hostgroups icinga_hostgroup_members \
+ > ido-data.sql
+
+docker exec -i \
+ "$(docker-compose ps -q db)" \
+ mysqldump -p"${MYSQL_ROOT_PASSWORD}" icinga \
+ > full.sql
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga/ido-data.sql b/test/docker/docker-entrypoint-initdb.d/icinga/ido-data.sql
new file mode 100644
index 0000000..c1eafe8
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga/ido-data.sql
@@ -0,0 +1,244 @@
+-- MySQL dump 10.16 Distrib 10.1.18-MariaDB, for debian-linux-gnu (x86_64)
+--
+-- Host: localhost Database: icinga
+-- ------------------------------------------------------
+-- Server version 10.1.18-MariaDB-1~jessie
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Dumping data for table `icinga_instances`
+--
+
+LOCK
+TABLES `icinga_instances` WRITE;
+/*!40000 ALTER TABLE `icinga_instances` DISABLE KEYS */;
+INSERT INTO `icinga_instances`
+VALUES (1, 'default', 'default');
+/*!40000 ALTER TABLE `icinga_instances` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_programstatus`
+--
+
+LOCK
+TABLES `icinga_programstatus` WRITE;
+/*!40000 ALTER TABLE `icinga_programstatus` DISABLE KEYS */;
+INSERT INTO `icinga_programstatus`
+VALUES (1, 1, '0.0.1', '2017-10-10 10:59:47', '2017-10-10 10:59:47', NULL, NULL, 1, 0, 0, NULL, NULL, 1, NULL, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, NULL);
+/*!40000 ALTER TABLE `icinga_programstatus` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_objects`
+--
+
+LOCK
+TABLES `icinga_objects` WRITE;
+/*!40000 ALTER TABLE `icinga_objects` DISABLE KEYS */;
+INSERT INTO `icinga_objects`
+VALUES (1, 1, 1, 'host_ok', NULL, 1),
+ (2, 1, 1, 'host_down', NULL, 1),
+ (3, 1, 1, 'host_s_soft', NULL, 1),
+ (4, 1, 2, 'host_ok', 's_ok', 1),
+ (5, 1, 2, 'host_down', 's_critical', 1),
+ (6, 1, 2, 'host_s_soft', 's_critical_soft', 1),
+ (7, 1, 1, 'host_s_critical', NULL, 1),
+ (8, 1, 1, 'host_s_warning', NULL, 1),
+ (9, 1, 2, 'host_s_critical', 's_critical', 1),
+ (10, 1, 2, 'host_s_warning', 's_warning', 1),
+ (11, 1, 3, 'HG_OK', NULL, 1),
+ (12, 1, 3, 'HG_SOFT', NULL, 1),
+ (13, 1, 3, 'HG_DOWN', NULL, 1),
+ (14, 1, 3, 'HG_CRITICAL', NULL, 1),
+ (15, 1, 3, 'HG_WARNING', NULL, 1),
+ (16, 1, 1, 'host_s_critical_handled', NULL, 1),
+ (17, 1, 1, 'host_s_warning_handled', NULL, 1),
+ (18, 1, 2, 'host_s_critical_handled', 's_critical_handled', 1),
+ (19, 1, 2, 'host_s_warning_handled', 's_warning_handled', 1),
+ (20, 1, 9, '24x7', NULL, 1);
+/*!40000 ALTER TABLE `icinga_objects` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_hosts`
+--
+
+LOCK
+TABLES `icinga_hosts` WRITE;
+/*!40000 ALTER TABLE `icinga_hosts` DISABLE KEYS */;
+INSERT INTO `icinga_hosts`
+VALUES (1, 1, 1, 1, 'host_ok', 'host_ok', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0,
+ 0, 0, 0, NULL),
+ (2, 1, 1, 2, 'host_down', 'host_down', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0,
+ 0, 0, 0, 0, 0, NULL),
+ (3, 1, 1, 3, 'host_s_soft', 'host_s_soft', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0,
+ 0, 0, 0, 0, 0, 0, NULL),
+ (4, 1, 1, 7, 'host_s_critical', 'host_s_critical', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (5, 1, 1, 8, 'host_s_warning', 'host_s_warning', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (6, 1, 1, 16, 'host_s_critical_handled', 'host_s_critical_handled', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '',
+ 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (7, 1, 1, 17, 'host_s_warning_handled', 'host_s_warning_handled', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '',
+ 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL);
+/*!40000 ALTER TABLE `icinga_hosts` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_hoststatus`
+--
+
+LOCK
+TABLES `icinga_hoststatus` WRITE;
+/*!40000 ALTER TABLE `icinga_hoststatus` DISABLE KEYS */;
+INSERT INTO `icinga_hoststatus`
+VALUES (1, 1, 1, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (2, 1, 2, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 1, '2017-10-10 11:01:51',
+ '2017-10-10 11:01:51', NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL,
+ NULL, 0, 0, 0, 0, NULL),
+ (3, 1, 3, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (4, 1, 7, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (5, 1, 8, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (6, 1, 16, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (7, 1, 17, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51',
+ '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1,
+ NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL);
+/*!40000 ALTER TABLE `icinga_hoststatus` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_services`
+--
+
+LOCK
+TABLES `icinga_services` WRITE;
+/*!40000 ALTER TABLE `icinga_services` DISABLE KEYS */;
+INSERT INTO `icinga_services`
+VALUES (1, 1, 1, 1, 4, 's_ok', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (2, 1, 1, 2, 5, 's_critical', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (3, 1, 1, 3, 6, 's_critical_soft', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (4, 1, 1, 7, 9, 's_critical', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (5, 1, 1, 8, 10, 's_warning', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (6, 1, 1, 16, 18, 's_critical_handled', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (7, 1, 1, 17, 19, 's_warning_handled', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);
+/*!40000 ALTER TABLE `icinga_services` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_servicestatus`
+--
+
+LOCK
+TABLES `icinga_servicestatus` WRITE;
+/*!40000 ALTER TABLE `icinga_servicestatus` DISABLE KEYS */;
+INSERT INTO `icinga_servicestatus`
+VALUES (1, 1, 4, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 0, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (2, 1, 5, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (3, 1, 6, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 0, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 0, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (4, 1, 9, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 2, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (5, 1, 10, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (6, 1, 19, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (7, 1, 18, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01',
+ '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL,
+ NULL, 1, NULL, NULL, 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL);
+/*!40000 ALTER TABLE `icinga_servicestatus` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_hostgroups`
+--
+
+LOCK
+TABLES `icinga_hostgroups` WRITE;
+/*!40000 ALTER TABLE `icinga_hostgroups` DISABLE KEYS */;
+INSERT INTO `icinga_hostgroups`
+VALUES (1, 1, 1, 11, 'HG_OK', NULL, NULL, NULL, NULL),
+ (2, 1, 1, 12, 'HG_SOFT', NULL, NULL, NULL, NULL),
+ (3, 1, 1, 13, 'HG_DOWN', NULL, NULL, NULL, NULL),
+ (4, 1, 1, 14, 'HG_CRITICAL', NULL, NULL, NULL, NULL),
+ (5, 1, 1, 15, 'HG_WARNING', NULL, NULL, NULL, NULL);
+/*!40000 ALTER TABLE `icinga_hostgroups` ENABLE KEYS */;
+UNLOCK
+TABLES;
+
+--
+-- Dumping data for table `icinga_hostgroup_members`
+--
+
+LOCK
+TABLES `icinga_hostgroup_members` WRITE;
+/*!40000 ALTER TABLE `icinga_hostgroup_members` DISABLE KEYS */;
+INSERT INTO `icinga_hostgroup_members`
+VALUES (1, 1, 1, 1),
+ (2, 1, 2, 3),
+ (3, 1, 3, 2),
+ (4, 1, 4, 7),
+ (5, 1, 5, 8);
+/*!40000 ALTER TABLE `icinga_hostgroup_members` ENABLE KEYS */;
+UNLOCK
+TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2017-10-17 10:05:46
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga/ido-legacy-data.sql b/test/docker/docker-entrypoint-initdb.d/icinga/ido-legacy-data.sql
new file mode 100644
index 0000000..2a1d4bf
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga/ido-legacy-data.sql
@@ -0,0 +1,78 @@
+INSERT INTO `icinga_instances`
+VALUES (1, 'legacy', 'legacy');
+
+INSERT INTO `icinga_programstatus`
+VALUES (1, 1, '0.0.1', '2017-10-10 10:59:47', '2017-10-10 10:59:47', NULL, NULL, 1, 0, 0, NULL, NULL, 1, NULL, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, NULL);
+
+INSERT INTO `icinga_objects`
+VALUES (991, 1, 1, 'host_ok', NULL, 1),
+ (992, 1, 1, 'host_down', NULL, 1),
+ (993, 1, 1, 'host_s_soft', NULL, 1),
+ (994, 1, 2, 'host_ok', 's_ok', 1),
+ (995, 1, 2, 'host_down', 's_critical', 1),
+ (996, 1, 2, 'host_s_soft', 's_critical_soft', 1),
+ (997, 1, 1, 'host_s_critical', NULL, 1),
+ (998, 1, 1, 'host_s_warning', NULL, 1),
+ (999, 1, 2, 'host_s_critical', 's_critical', 1),
+ (9910, 1, 2, 'host_s_warning', 's_warning', 1),
+ (9911, 1, 3, 'HG_OK', NULL, 1),
+ (9912, 1, 3, 'HG_SOFT', NULL, 1),
+ (9913, 1, 3, 'HG_DOWN', NULL, 1),
+ (9914, 1, 3, 'HG_CRITICAL', NULL, 1),
+ (9915, 1, 3, 'HG_WARNING', NULL, 1),
+ (9916, 1, 1, 'host_s_critical_handled', NULL, 1),
+ (9917, 1, 1, 'host_s_warning_handled', NULL, 1),
+ (9918, 1, 2, 'host_s_critical_handled', 's_critical_handled', 1),
+ (9919, 1, 2, 'host_s_warning_handled', 's_warning_handled', 1),
+ (9920, 1, 9, '24x7', NULL, 1);
+
+INSERT INTO `icinga_hosts`
+VALUES (1, 1, 1, 991, 'host_ok', 'host_ok', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (2, 1, 1, 992, 'host_down', 'host_down', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (3, 1, 1, 993, 'host_s_soft', 'host_s_soft', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (4, 1, 1, 997, 'host_s_critical', 'host_s_critical', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (5, 1, 1, 998, 'host_s_warning', 'host_s_warning', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (6, 1, 1, 9916, 'host_s_critical_handled', 'host_s_critical_handled', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL),
+ (7, 1, 1, 9917, 'host_s_warning_handled', 'host_s_warning_handled', '127.0.0.1', '', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL);
+
+INSERT INTO `icinga_hoststatus`
+VALUES (1, 1, 991, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (2, 1, 992, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 1, '2017-10-10 11:01:51', '2017-10-10 11:01:51', NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (3, 1, 993, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (4, 1, 997, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (5, 1, 998, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (6, 1, 9916, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL),
+ (7, 1, 9917, '2017-10-10 11:01:51', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:01:51', '2017-10-10 11:06:51', 0, '2017-10-10 11:01:51', '2017-10-10 11:01:51', 0, '2017-10-10 11:01:51', NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL);
+
+INSERT INTO `icinga_services`
+VALUES (1, 1, 1, 991, 994, 's_ok', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (2, 1, 1, 992, 995, 's_critical', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (3, 1, 1, 993, 996, 's_critical_soft', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (4, 1, 1, 997, 999, 's_critical', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (5, 1, 1, 998, 9910, 's_warning', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (6, 1, 1, 9916, 9918, 's_critical_handled', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL),
+ (7, 1, 1, 9917, 9919, 's_warning_handled', 0, NULL, 0, NULL, 20, 0, '', 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);
+
+INSERT INTO `icinga_servicestatus`
+VALUES (1, 1, 994, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 0, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 0, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (2, 1, 995, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (3, 1, 996, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 0, '2017-10-10 11:17:11', NULL, NULL, NULL, 0, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (4, 1, 999, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 2, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (5, 1, 9910, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (6, 1, 9919, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 1, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL),
+ (7, 1, 9918, '2017-10-10 11:16:38', 'TEST', NULL, NULL, '', 2, 1, 0, 1, 5, '2017-10-10 11:17:01', '2017-10-10 11:22:03', 1, '2017-10-10 11:17:11', '2017-10-10 11:17:11', 1, '2017-10-10 11:17:11', NULL, NULL, NULL, 1, NULL, NULL, 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 5, 1, 0, 0, NULL);
+
+INSERT INTO `icinga_hostgroups`
+VALUES (1, 1, 1, 9911, 'HG_OK', NULL, NULL, NULL, NULL),
+ (2, 1, 1, 9912, 'HG_SOFT', NULL, NULL, NULL, NULL),
+ (3, 1, 1, 9913, 'HG_DOWN', NULL, NULL, NULL, NULL),
+ (4, 1, 1, 9914, 'HG_CRITICAL', NULL, NULL, NULL, NULL),
+ (5, 1, 1, 9915, 'HG_WARNING', NULL, NULL, NULL, NULL);
+
+INSERT INTO `icinga_hostgroup_members`
+VALUES (1, 1, 1, 991),
+ (2, 1, 2, 993),
+ (3, 1, 3, 992),
+ (4, 1, 4, 997),
+ (5, 1, 5, 998);
diff --git a/test/docker/docker-entrypoint-initdb.d/icinga/ido-mysql.sql b/test/docker/docker-entrypoint-initdb.d/icinga/ido-mysql.sql
new file mode 100644
index 0000000..77f022b
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icinga/ido-mysql.sql
@@ -0,0 +1,1690 @@
+-- --------------------------------------------------------
+-- mysql.sql
+-- DB definition for IDO MySQL
+--
+-- Copyright (c) 2009-2016 Icinga Development Team (https://www.icinga.com/)
+--
+-- -- --------------------------------------------------------
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+
+--
+-- Database: icinga
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_acknowledgements
+--
+
+CREATE TABLE IF NOT EXISTS icinga_acknowledgements (
+ acknowledgement_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ entry_time_usec int default 0,
+ acknowledgement_type smallint default 0,
+ object_id bigint unsigned default 0,
+ state smallint default 0,
+ author_name varchar(64) character set latin1 default '',
+ comment_data TEXT character set latin1,
+ is_sticky smallint default 0,
+ persistent_comment smallint default 0,
+ notify_contacts smallint default 0,
+ end_time timestamp NULL,
+ PRIMARY KEY (acknowledgement_id)
+) ENGINE=InnoDB COMMENT='Current and historical host and service acknowledgements';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_commands
+--
+
+CREATE TABLE IF NOT EXISTS icinga_commands (
+ command_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ object_id bigint unsigned default 0,
+ command_line TEXT character set latin1,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (command_id),
+ UNIQUE KEY instance_id (instance_id,object_id,config_type)
+) ENGINE=InnoDB COMMENT='Command definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_commenthistory
+--
+
+CREATE TABLE IF NOT EXISTS icinga_commenthistory (
+ commenthistory_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ entry_time_usec int default 0,
+ comment_type smallint default 0,
+ entry_type smallint default 0,
+ object_id bigint unsigned default 0,
+ comment_time timestamp NULL,
+ internal_comment_id bigint unsigned default 0,
+ author_name varchar(64) character set latin1 default '',
+ comment_data TEXT character set latin1,
+ is_persistent smallint default 0,
+ comment_source smallint default 0,
+ expires smallint default 0,
+ expiration_time timestamp NULL,
+ deletion_time timestamp NULL,
+ deletion_time_usec int default 0,
+ name TEXT character set latin1 default NULL,
+ PRIMARY KEY (commenthistory_id),
+ UNIQUE KEY instance_id (instance_id,object_id,comment_time,internal_comment_id)
+) ENGINE=InnoDB COMMENT='Historical host and service comments';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_comments
+--
+
+CREATE TABLE IF NOT EXISTS icinga_comments (
+ comment_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ entry_time_usec int default 0,
+ comment_type smallint default 0,
+ entry_type smallint default 0,
+ object_id bigint unsigned default 0,
+ comment_time timestamp NULL,
+ internal_comment_id bigint unsigned default 0,
+ author_name varchar(64) character set latin1 default '',
+ comment_data TEXT character set latin1,
+ is_persistent smallint default 0,
+ comment_source smallint default 0,
+ expires smallint default 0,
+ expiration_time timestamp NULL,
+ name TEXT character set latin1 default NULL,
+ session_token int default NULL,
+ PRIMARY KEY (comment_id),
+ UNIQUE KEY instance_id (instance_id,object_id,comment_time,internal_comment_id)
+) ENGINE=InnoDB COMMENT='Usercomments on Icinga objects';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_configfiles
+--
+
+CREATE TABLE IF NOT EXISTS icinga_configfiles (
+ configfile_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ configfile_type smallint default 0,
+ configfile_path varchar(255) character set latin1 default '',
+ PRIMARY KEY (configfile_id),
+ UNIQUE KEY instance_id (instance_id,configfile_type,configfile_path)
+) ENGINE=InnoDB COMMENT='Configuration files';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_configfilevariables
+--
+
+CREATE TABLE IF NOT EXISTS icinga_configfilevariables (
+ configfilevariable_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ configfile_id bigint unsigned default 0,
+ varname varchar(64) character set latin1 default '',
+ varvalue TEXT character set latin1,
+ PRIMARY KEY (configfilevariable_id)
+) ENGINE=InnoDB COMMENT='Configuration file variables';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_conninfo
+--
+
+CREATE TABLE IF NOT EXISTS icinga_conninfo (
+ conninfo_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ agent_name varchar(32) character set latin1 default '',
+ agent_version varchar(32) character set latin1 default '',
+ disposition varchar(32) character set latin1 default '',
+ connect_source varchar(32) character set latin1 default '',
+ connect_type varchar(32) character set latin1 default '',
+ connect_time timestamp NULL,
+ disconnect_time timestamp NULL,
+ last_checkin_time timestamp NULL,
+ data_start_time timestamp NULL,
+ data_end_time timestamp NULL,
+ bytes_processed bigint unsigned default '0',
+ lines_processed bigint unsigned default '0',
+ entries_processed bigint unsigned default '0',
+ PRIMARY KEY (conninfo_id)
+) ENGINE=InnoDB COMMENT='IDO2DB daemon connection information';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contactgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contactgroups (
+ contactgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ contactgroup_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (contactgroup_id),
+ UNIQUE KEY instance_id (instance_id,config_type,contactgroup_object_id)
+) ENGINE=InnoDB COMMENT='Contactgroup definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contactgroup_members
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contactgroup_members (
+ contactgroup_member_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ contactgroup_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ PRIMARY KEY (contactgroup_member_id)
+) ENGINE=InnoDB COMMENT='Contactgroup members';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contactnotificationmethods
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contactnotificationmethods (
+ contactnotificationmethod_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ contactnotification_id bigint unsigned default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ command_object_id bigint unsigned default 0,
+ command_args TEXT character set latin1,
+ PRIMARY KEY (contactnotificationmethod_id),
+ UNIQUE KEY instance_id (instance_id,contactnotification_id,start_time,start_time_usec)
+) ENGINE=InnoDB COMMENT='Historical record of contact notification methods';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contactnotifications
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contactnotifications (
+ contactnotification_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ notification_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ PRIMARY KEY (contactnotification_id),
+ UNIQUE KEY instance_id (instance_id,contact_object_id,start_time,start_time_usec)
+) ENGINE=InnoDB COMMENT='Historical record of contact notifications';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contacts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contacts (
+ contact_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ contact_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ email_address varchar(255) character set latin1 default '',
+ pager_address varchar(64) character set latin1 default '',
+ host_timeperiod_object_id bigint unsigned default 0,
+ service_timeperiod_object_id bigint unsigned default 0,
+ host_notifications_enabled smallint default 0,
+ service_notifications_enabled smallint default 0,
+ can_submit_commands smallint default 0,
+ notify_service_recovery smallint default 0,
+ notify_service_warning smallint default 0,
+ notify_service_unknown smallint default 0,
+ notify_service_critical smallint default 0,
+ notify_service_flapping smallint default 0,
+ notify_service_downtime smallint default 0,
+ notify_host_recovery smallint default 0,
+ notify_host_down smallint default 0,
+ notify_host_unreachable smallint default 0,
+ notify_host_flapping smallint default 0,
+ notify_host_downtime smallint default 0,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (contact_id),
+ UNIQUE KEY instance_id (instance_id,config_type,contact_object_id)
+) ENGINE=InnoDB COMMENT='Contact definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contactstatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contactstatus (
+ contactstatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ status_update_time timestamp NULL,
+ host_notifications_enabled smallint default 0,
+ service_notifications_enabled smallint default 0,
+ last_host_notification timestamp NULL,
+ last_service_notification timestamp NULL,
+ modified_attributes int default 0,
+ modified_host_attributes int default 0,
+ modified_service_attributes int default 0,
+ PRIMARY KEY (contactstatus_id),
+ UNIQUE KEY contact_object_id (contact_object_id)
+) ENGINE=InnoDB COMMENT='Contact status';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contact_addresses
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contact_addresses (
+ contact_address_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ contact_id bigint unsigned default 0,
+ address_number smallint default 0,
+ address varchar(255) character set latin1 default '',
+ PRIMARY KEY (contact_address_id),
+ UNIQUE KEY contact_id (contact_id,address_number)
+) ENGINE=InnoDB COMMENT='Contact addresses';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_contact_notificationcommands
+--
+
+CREATE TABLE IF NOT EXISTS icinga_contact_notificationcommands (
+ contact_notificationcommand_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ contact_id bigint unsigned default 0,
+ notification_type smallint default 0,
+ command_object_id bigint unsigned default 0,
+ command_args varchar(255) character set latin1 default '',
+ PRIMARY KEY (contact_notificationcommand_id),
+ UNIQUE KEY contact_id (contact_id,notification_type,command_object_id,command_args)
+) ENGINE=InnoDB COMMENT='Contact host and service notification commands';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_customvariables
+--
+
+CREATE TABLE IF NOT EXISTS icinga_customvariables (
+ customvariable_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ object_id bigint unsigned default 0,
+ config_type smallint default 0,
+ has_been_modified smallint default 0,
+ varname varchar(255) character set latin1 collate latin1_general_cs default NULL,
+ varvalue TEXT character set latin1,
+ is_json smallint default 0,
+ PRIMARY KEY (customvariable_id),
+ UNIQUE KEY object_id_2 (object_id,config_type,varname),
+ KEY varname (varname)
+) ENGINE=InnoDB COMMENT='Custom variables';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_customvariablestatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_customvariablestatus (
+ customvariablestatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ object_id bigint unsigned default 0,
+ status_update_time timestamp NULL,
+ has_been_modified smallint default 0,
+ varname varchar(255) character set latin1 collate latin1_general_cs default NULL,
+ varvalue TEXT character set latin1,
+ is_json smallint default 0,
+ PRIMARY KEY (customvariablestatus_id),
+ UNIQUE KEY object_id_2 (object_id,varname),
+ KEY varname (varname)
+) ENGINE=InnoDB COMMENT='Custom variable status information';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_dbversion
+--
+
+CREATE TABLE IF NOT EXISTS icinga_dbversion (
+ dbversion_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ name varchar(10) character set latin1 default '',
+ version varchar(10) character set latin1 default '',
+ create_time timestamp NULL,
+ modify_time timestamp NULL,
+ PRIMARY KEY (dbversion_id),
+ UNIQUE KEY dbversion (name)
+) ENGINE=InnoDB;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_downtimehistory
+--
+
+CREATE TABLE IF NOT EXISTS icinga_downtimehistory (
+ downtimehistory_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ downtime_type smallint default 0,
+ object_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ author_name varchar(64) character set latin1 default '',
+ comment_data TEXT character set latin1,
+ internal_downtime_id bigint unsigned default 0,
+ triggered_by_id bigint unsigned default 0,
+ is_fixed smallint default 0,
+ duration bigint(20) default 0,
+ scheduled_start_time timestamp NULL,
+ scheduled_end_time timestamp NULL,
+ was_started smallint default 0,
+ actual_start_time timestamp NULL,
+ actual_start_time_usec int default 0,
+ actual_end_time timestamp NULL,
+ actual_end_time_usec int default 0,
+ was_cancelled smallint default 0,
+ is_in_effect smallint default 0,
+ trigger_time timestamp NULL,
+ name TEXT character set latin1 default NULL,
+ PRIMARY KEY (downtimehistory_id),
+ UNIQUE KEY instance_id (instance_id,object_id,entry_time,internal_downtime_id)
+) ENGINE=InnoDB COMMENT='Historical scheduled host and service downtime';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_eventhandlers
+--
+
+CREATE TABLE IF NOT EXISTS icinga_eventhandlers (
+ eventhandler_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ eventhandler_type smallint default 0,
+ object_id bigint unsigned default 0,
+ state smallint default 0,
+ state_type smallint default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ command_object_id bigint unsigned default 0,
+ command_args TEXT character set latin1,
+ command_line TEXT character set latin1,
+ timeout smallint default 0,
+ early_timeout smallint default 0,
+ execution_time double default '0',
+ return_code smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ PRIMARY KEY (eventhandler_id),
+ UNIQUE KEY instance_id (instance_id,object_id,start_time,start_time_usec)
+) ENGINE=InnoDB COMMENT='Historical host and service event handlers';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_externalcommands
+--
+
+CREATE TABLE IF NOT EXISTS icinga_externalcommands (
+ externalcommand_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ command_type smallint default 0,
+ command_name varchar(128) character set latin1 default '',
+ command_args TEXT character set latin1,
+ PRIMARY KEY (externalcommand_id)
+) ENGINE=InnoDB COMMENT='Historical record of processed external commands';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_flappinghistory
+--
+
+CREATE TABLE IF NOT EXISTS icinga_flappinghistory (
+ flappinghistory_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ event_time timestamp NULL,
+ event_time_usec int default 0,
+ event_type smallint default 0,
+ reason_type smallint default 0,
+ flapping_type smallint default 0,
+ object_id bigint unsigned default 0,
+ percent_state_change double default '0',
+ low_threshold double default '0',
+ high_threshold double default '0',
+ comment_time timestamp NULL,
+ internal_comment_id bigint unsigned default 0,
+ PRIMARY KEY (flappinghistory_id)
+) ENGINE=InnoDB COMMENT='Current and historical record of host and service flapping';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostchecks
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostchecks (
+ hostcheck_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ host_object_id bigint unsigned default 0,
+ check_type smallint default 0,
+ is_raw_check smallint default 0,
+ current_check_attempt smallint default 0,
+ max_check_attempts smallint default 0,
+ state smallint default 0,
+ state_type smallint default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ command_object_id bigint unsigned default 0,
+ command_args TEXT character set latin1,
+ command_line TEXT character set latin1,
+ timeout smallint default 0,
+ early_timeout smallint default 0,
+ execution_time double default '0',
+ latency double default '0',
+ return_code smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ perfdata TEXT character set latin1,
+ PRIMARY KEY (hostcheck_id)
+) ENGINE=InnoDB COMMENT='Historical host checks';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostdependencies
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostdependencies (
+ hostdependency_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ host_object_id bigint unsigned default 0,
+ dependent_host_object_id bigint unsigned default 0,
+ dependency_type smallint default 0,
+ inherits_parent smallint default 0,
+ timeperiod_object_id bigint unsigned default 0,
+ fail_on_up smallint default 0,
+ fail_on_down smallint default 0,
+ fail_on_unreachable smallint default 0,
+ PRIMARY KEY (hostdependency_id),
+ KEY instance_id (instance_id,config_type,host_object_id,dependent_host_object_id,dependency_type,inherits_parent,fail_on_up,fail_on_down,fail_on_unreachable)
+) ENGINE=InnoDB COMMENT='Host dependency definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostescalations
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostescalations (
+ hostescalation_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ host_object_id bigint unsigned default 0,
+ timeperiod_object_id bigint unsigned default 0,
+ first_notification smallint default 0,
+ last_notification smallint default 0,
+ notification_interval double default '0',
+ escalate_on_recovery smallint default 0,
+ escalate_on_down smallint default 0,
+ escalate_on_unreachable smallint default 0,
+ PRIMARY KEY (hostescalation_id),
+ UNIQUE KEY instance_id (instance_id,config_type,host_object_id,timeperiod_object_id,first_notification,last_notification)
+) ENGINE=InnoDB COMMENT='Host escalation definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostescalation_contactgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostescalation_contactgroups (
+ hostescalation_contactgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ hostescalation_id bigint unsigned default 0,
+ contactgroup_object_id bigint unsigned default 0,
+ PRIMARY KEY (hostescalation_contactgroup_id),
+ UNIQUE KEY instance_id (hostescalation_id,contactgroup_object_id)
+) ENGINE=InnoDB COMMENT='Host escalation contact groups';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostescalation_contacts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostescalation_contacts (
+ hostescalation_contact_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ hostescalation_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ PRIMARY KEY (hostescalation_contact_id),
+ UNIQUE KEY instance_id (instance_id,hostescalation_id,contact_object_id)
+) ENGINE=InnoDB COMMENT='Host escalation contacts';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostgroups (
+ hostgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ hostgroup_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ notes TEXT character set latin1 default NULL,
+ notes_url TEXT character set latin1 default NULL,
+ action_url TEXT character set latin1 default NULL,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (hostgroup_id),
+ UNIQUE KEY instance_id (instance_id,hostgroup_object_id)
+) ENGINE=InnoDB COMMENT='Hostgroup definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hostgroup_members
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hostgroup_members (
+ hostgroup_member_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ hostgroup_id bigint unsigned default 0,
+ host_object_id bigint unsigned default 0,
+ PRIMARY KEY (hostgroup_member_id)
+) ENGINE=InnoDB COMMENT='Hostgroup members';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hosts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hosts (
+ host_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ host_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ display_name varchar(255) character set latin1 collate latin1_general_cs default '',
+ address varchar(128) character set latin1 default '',
+ address6 varchar(128) character set latin1 default '',
+ check_command_object_id bigint unsigned default 0,
+ check_command_args TEXT character set latin1,
+ eventhandler_command_object_id bigint unsigned default 0,
+ eventhandler_command_args TEXT character set latin1,
+ notification_timeperiod_object_id bigint unsigned default 0,
+ check_timeperiod_object_id bigint unsigned default 0,
+ failure_prediction_options varchar(128) character set latin1 default '',
+ check_interval double default '0',
+ retry_interval double default '0',
+ max_check_attempts smallint default 0,
+ first_notification_delay double default '0',
+ notification_interval double default '0',
+ notify_on_down smallint default 0,
+ notify_on_unreachable smallint default 0,
+ notify_on_recovery smallint default 0,
+ notify_on_flapping smallint default 0,
+ notify_on_downtime smallint default 0,
+ stalk_on_up smallint default 0,
+ stalk_on_down smallint default 0,
+ stalk_on_unreachable smallint default 0,
+ flap_detection_enabled smallint default 0,
+ flap_detection_on_up smallint default 0,
+ flap_detection_on_down smallint default 0,
+ flap_detection_on_unreachable smallint default 0,
+ low_flap_threshold double default '0',
+ high_flap_threshold double default '0',
+ process_performance_data smallint default 0,
+ freshness_checks_enabled smallint default 0,
+ freshness_threshold int default 0,
+ passive_checks_enabled smallint default 0,
+ event_handler_enabled smallint default 0,
+ active_checks_enabled smallint default 0,
+ retain_status_information smallint default 0,
+ retain_nonstatus_information smallint default 0,
+ notifications_enabled smallint default 0,
+ obsess_over_host smallint default 0,
+ failure_prediction_enabled smallint default 0,
+ notes TEXT character set latin1,
+ notes_url TEXT character set latin1,
+ action_url TEXT character set latin1,
+ icon_image TEXT character set latin1,
+ icon_image_alt TEXT character set latin1,
+ vrml_image TEXT character set latin1,
+ statusmap_image TEXT character set latin1,
+ have_2d_coords smallint default 0,
+ x_2d smallint default 0,
+ y_2d smallint default 0,
+ have_3d_coords smallint default 0,
+ x_3d double default '0',
+ y_3d double default '0',
+ z_3d double default '0',
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (host_id),
+ UNIQUE KEY instance_id (instance_id,config_type,host_object_id),
+ KEY host_object_id (host_object_id)
+) ENGINE=InnoDB COMMENT='Host definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_hoststatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_hoststatus (
+ hoststatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ host_object_id bigint unsigned default 0,
+ status_update_time timestamp NULL,
+ output TEXT character set latin1,
+ long_output TEXT,
+ perfdata TEXT character set latin1,
+ check_source varchar(255) character set latin1 default '',
+ current_state smallint default 0,
+ has_been_checked smallint default 0,
+ should_be_scheduled smallint default 0,
+ current_check_attempt smallint default 0,
+ max_check_attempts smallint default 0,
+ last_check timestamp NULL,
+ next_check timestamp NULL,
+ check_type smallint default 0,
+ last_state_change timestamp NULL,
+ last_hard_state_change timestamp NULL,
+ last_hard_state smallint default 0,
+ last_time_up timestamp NULL,
+ last_time_down timestamp NULL,
+ last_time_unreachable timestamp NULL,
+ state_type smallint default 0,
+ last_notification timestamp NULL,
+ next_notification timestamp NULL,
+ no_more_notifications smallint default 0,
+ notifications_enabled smallint default 0,
+ problem_has_been_acknowledged smallint default 0,
+ acknowledgement_type smallint default 0,
+ current_notification_number int unsigned default 0,
+ passive_checks_enabled smallint default 0,
+ active_checks_enabled smallint default 0,
+ event_handler_enabled smallint default 0,
+ flap_detection_enabled smallint default 0,
+ is_flapping smallint default 0,
+ percent_state_change double default '0',
+ latency double default '0',
+ execution_time double default '0',
+ scheduled_downtime_depth smallint default 0,
+ failure_prediction_enabled smallint default 0,
+ process_performance_data smallint default 0,
+ obsess_over_host smallint default 0,
+ modified_host_attributes int default 0,
+ original_attributes TEXT character set latin1 default NULL,
+ event_handler TEXT character set latin1,
+ check_command TEXT character set latin1,
+ normal_check_interval double default '0',
+ retry_check_interval double default '0',
+ check_timeperiod_object_id bigint unsigned default 0,
+ is_reachable smallint default 0,
+ PRIMARY KEY (hoststatus_id),
+ UNIQUE KEY object_id (host_object_id)
+) ENGINE=InnoDB COMMENT='Current host status information';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_host_contactgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_host_contactgroups (
+ host_contactgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ host_id bigint unsigned default 0,
+ contactgroup_object_id bigint unsigned default 0,
+ PRIMARY KEY (host_contactgroup_id)
+) ENGINE=InnoDB COMMENT='Host contact groups';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_host_contacts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_host_contacts (
+ host_contact_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ host_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ PRIMARY KEY (host_contact_id)
+) ENGINE=InnoDB COMMENT='Host contacts';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_host_parenthosts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_host_parenthosts (
+ host_parenthost_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ host_id bigint unsigned default 0,
+ parent_host_object_id bigint unsigned default 0,
+ PRIMARY KEY (host_parenthost_id)
+) ENGINE=InnoDB COMMENT='Parent hosts';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_instances
+--
+
+CREATE TABLE IF NOT EXISTS icinga_instances (
+ instance_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_name varchar(64) character set latin1 default '',
+ instance_description varchar(128) character set latin1 default '',
+ PRIMARY KEY (instance_id)
+) ENGINE=InnoDB COMMENT='Location names of various Icinga installations';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_logentries
+--
+
+CREATE TABLE IF NOT EXISTS icinga_logentries (
+ logentry_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ logentry_time timestamp NULL,
+ entry_time timestamp NULL,
+ entry_time_usec int default 0,
+ logentry_type int default 0,
+ logentry_data TEXT character set latin1,
+ realtime_data smallint default 0,
+ inferred_data_extracted smallint default 0,
+ object_id bigint unsigned default NULL,
+ PRIMARY KEY (logentry_id)
+) ENGINE=InnoDB COMMENT='Historical record of log entries';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_notifications
+--
+
+CREATE TABLE IF NOT EXISTS icinga_notifications (
+ notification_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ notification_type smallint default 0,
+ notification_reason smallint default 0,
+ object_id bigint unsigned default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ state smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ escalated smallint default 0,
+ contacts_notified smallint default 0,
+ PRIMARY KEY (notification_id),
+ UNIQUE KEY instance_id (instance_id,object_id,start_time,start_time_usec)
+) ENGINE=InnoDB COMMENT='Historical record of host and service notifications';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_objects
+--
+
+CREATE TABLE IF NOT EXISTS icinga_objects (
+ object_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ objecttype_id bigint unsigned default 0,
+ name1 varchar(128) character set latin1 collate latin1_general_cs default '',
+ name2 varchar(128) character set latin1 collate latin1_general_cs default NULL,
+ is_active smallint default 0,
+ PRIMARY KEY (object_id),
+ KEY objecttype_id (objecttype_id,name1,name2)
+) ENGINE=InnoDB COMMENT='Current and historical objects of all kinds';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_processevents
+--
+
+CREATE TABLE IF NOT EXISTS icinga_processevents (
+ processevent_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ event_type smallint default 0,
+ event_time timestamp NULL,
+ event_time_usec int default 0,
+ process_id bigint unsigned default 0,
+ program_name varchar(16) character set latin1 default '',
+ program_version varchar(20) character set latin1 default '',
+ program_date varchar(10) character set latin1 default '',
+ PRIMARY KEY (processevent_id)
+) ENGINE=InnoDB COMMENT='Historical Icinga process events';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_programstatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_programstatus (
+ programstatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ program_version varchar(64) character set latin1 collate latin1_general_cs default NULL,
+ status_update_time timestamp NULL,
+ program_start_time timestamp NULL,
+ program_end_time timestamp NULL,
+ endpoint_name varchar(255) character set latin1 collate latin1_general_cs default NULL,
+ is_currently_running smallint default 0,
+ process_id bigint unsigned default 0,
+ daemon_mode smallint default 0,
+ last_command_check timestamp NULL,
+ last_log_rotation timestamp NULL,
+ notifications_enabled smallint default 0,
+ disable_notif_expire_time timestamp NULL,
+ active_service_checks_enabled smallint default 0,
+ passive_service_checks_enabled smallint default 0,
+ active_host_checks_enabled smallint default 0,
+ passive_host_checks_enabled smallint default 0,
+ event_handlers_enabled smallint default 0,
+ flap_detection_enabled smallint default 0,
+ failure_prediction_enabled smallint default 0,
+ process_performance_data smallint default 0,
+ obsess_over_hosts smallint default 0,
+ obsess_over_services smallint default 0,
+ modified_host_attributes int default 0,
+ modified_service_attributes int default 0,
+ global_host_event_handler TEXT character set latin1,
+ global_service_event_handler TEXT character set latin1,
+ config_dump_in_progress smallint default 0,
+ PRIMARY KEY (programstatus_id),
+ UNIQUE KEY instance_id (instance_id)
+) ENGINE=InnoDB COMMENT='Current program status information';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_runtimevariables
+--
+
+CREATE TABLE IF NOT EXISTS icinga_runtimevariables (
+ runtimevariable_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ varname varchar(64) character set latin1 default '',
+ varvalue TEXT character set latin1,
+ PRIMARY KEY (runtimevariable_id)
+) ENGINE=InnoDB COMMENT='Runtime variables from the Icinga daemon';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_scheduleddowntime
+--
+
+CREATE TABLE IF NOT EXISTS icinga_scheduleddowntime (
+ scheduleddowntime_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ downtime_type smallint default 0,
+ object_id bigint unsigned default 0,
+ entry_time timestamp NULL,
+ author_name varchar(64) character set latin1 default '',
+ comment_data TEXT character set latin1,
+ internal_downtime_id bigint unsigned default 0,
+ triggered_by_id bigint unsigned default 0,
+ is_fixed smallint default 0,
+ duration bigint(20) default 0,
+ scheduled_start_time timestamp NULL,
+ scheduled_end_time timestamp NULL,
+ was_started smallint default 0,
+ actual_start_time timestamp NULL,
+ actual_start_time_usec int default 0,
+ is_in_effect smallint default 0,
+ trigger_time timestamp NULL,
+ name TEXT character set latin1 default NULL,
+ session_token int default NULL,
+ PRIMARY KEY (scheduleddowntime_id),
+ UNIQUE KEY instance_id (instance_id,object_id,entry_time,internal_downtime_id)
+) ENGINE=InnoDB COMMENT='Current scheduled host and service downtime';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_servicechecks
+--
+
+CREATE TABLE IF NOT EXISTS icinga_servicechecks (
+ servicecheck_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ service_object_id bigint unsigned default 0,
+ check_type smallint default 0,
+ current_check_attempt smallint default 0,
+ max_check_attempts smallint default 0,
+ state smallint default 0,
+ state_type smallint default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ command_object_id bigint unsigned default 0,
+ command_args TEXT character set latin1,
+ command_line TEXT character set latin1,
+ timeout smallint default 0,
+ early_timeout smallint default 0,
+ execution_time double default '0',
+ latency double default '0',
+ return_code smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ perfdata TEXT character set latin1,
+ PRIMARY KEY (servicecheck_id)
+) ENGINE=InnoDB COMMENT='Historical service checks';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_servicedependencies
+--
+
+CREATE TABLE IF NOT EXISTS icinga_servicedependencies (
+ servicedependency_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ service_object_id bigint unsigned default 0,
+ dependent_service_object_id bigint unsigned default 0,
+ dependency_type smallint default 0,
+ inherits_parent smallint default 0,
+ timeperiod_object_id bigint unsigned default 0,
+ fail_on_ok smallint default 0,
+ fail_on_warning smallint default 0,
+ fail_on_unknown smallint default 0,
+ fail_on_critical smallint default 0,
+ PRIMARY KEY (servicedependency_id),
+ KEY instance_id (instance_id,config_type,service_object_id,dependent_service_object_id,dependency_type,inherits_parent,fail_on_ok,fail_on_warning,fail_on_unknown,fail_on_critical)
+) ENGINE=InnoDB COMMENT='Service dependency definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_serviceescalations
+--
+
+CREATE TABLE IF NOT EXISTS icinga_serviceescalations (
+ serviceescalation_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ service_object_id bigint unsigned default 0,
+ timeperiod_object_id bigint unsigned default 0,
+ first_notification smallint default 0,
+ last_notification smallint default 0,
+ notification_interval double default '0',
+ escalate_on_recovery smallint default 0,
+ escalate_on_warning smallint default 0,
+ escalate_on_unknown smallint default 0,
+ escalate_on_critical smallint default 0,
+ PRIMARY KEY (serviceescalation_id),
+ UNIQUE KEY instance_id (instance_id,config_type,service_object_id,timeperiod_object_id,first_notification,last_notification)
+) ENGINE=InnoDB COMMENT='Service escalation definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_serviceescalation_contactgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_serviceescalation_contactgroups (
+ serviceescalation_contactgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ serviceescalation_id bigint unsigned default 0,
+ contactgroup_object_id bigint unsigned default 0,
+ PRIMARY KEY (serviceescalation_contactgroup_id),
+ UNIQUE KEY instance_id (serviceescalation_id,contactgroup_object_id)
+) ENGINE=InnoDB COMMENT='Service escalation contact groups';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_serviceescalation_contacts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_serviceescalation_contacts (
+ serviceescalation_contact_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ serviceescalation_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ PRIMARY KEY (serviceescalation_contact_id),
+ UNIQUE KEY instance_id (instance_id,serviceescalation_id,contact_object_id)
+) ENGINE=InnoDB COMMENT='Service escalation contacts';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_servicegroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_servicegroups (
+ servicegroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ servicegroup_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ notes TEXT character set latin1 default NULL,
+ notes_url TEXT character set latin1 default NULL,
+ action_url TEXT character set latin1 default NULL,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (servicegroup_id),
+ UNIQUE KEY instance_id (instance_id,config_type,servicegroup_object_id)
+) ENGINE=InnoDB COMMENT='Servicegroup definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_servicegroup_members
+--
+
+CREATE TABLE IF NOT EXISTS icinga_servicegroup_members (
+ servicegroup_member_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ servicegroup_id bigint unsigned default 0,
+ service_object_id bigint unsigned default 0,
+ PRIMARY KEY (servicegroup_member_id)
+) ENGINE=InnoDB COMMENT='Servicegroup members';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_services
+--
+
+CREATE TABLE IF NOT EXISTS icinga_services (
+ service_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ host_object_id bigint unsigned default 0,
+ service_object_id bigint unsigned default 0,
+ display_name varchar(255) character set latin1 collate latin1_general_cs default '',
+ check_command_object_id bigint unsigned default 0,
+ check_command_args TEXT character set latin1,
+ eventhandler_command_object_id bigint unsigned default 0,
+ eventhandler_command_args TEXT character set latin1,
+ notification_timeperiod_object_id bigint unsigned default 0,
+ check_timeperiod_object_id bigint unsigned default 0,
+ failure_prediction_options varchar(64) character set latin1 default '',
+ check_interval double default '0',
+ retry_interval double default '0',
+ max_check_attempts smallint default 0,
+ first_notification_delay double default '0',
+ notification_interval double default '0',
+ notify_on_warning smallint default 0,
+ notify_on_unknown smallint default 0,
+ notify_on_critical smallint default 0,
+ notify_on_recovery smallint default 0,
+ notify_on_flapping smallint default 0,
+ notify_on_downtime smallint default 0,
+ stalk_on_ok smallint default 0,
+ stalk_on_warning smallint default 0,
+ stalk_on_unknown smallint default 0,
+ stalk_on_critical smallint default 0,
+ is_volatile smallint default 0,
+ flap_detection_enabled smallint default 0,
+ flap_detection_on_ok smallint default 0,
+ flap_detection_on_warning smallint default 0,
+ flap_detection_on_unknown smallint default 0,
+ flap_detection_on_critical smallint default 0,
+ low_flap_threshold double default '0',
+ high_flap_threshold double default '0',
+ process_performance_data smallint default 0,
+ freshness_checks_enabled smallint default 0,
+ freshness_threshold int default 0,
+ passive_checks_enabled smallint default 0,
+ event_handler_enabled smallint default 0,
+ active_checks_enabled smallint default 0,
+ retain_status_information smallint default 0,
+ retain_nonstatus_information smallint default 0,
+ notifications_enabled smallint default 0,
+ obsess_over_service smallint default 0,
+ failure_prediction_enabled smallint default 0,
+ notes TEXT character set latin1,
+ notes_url TEXT character set latin1,
+ action_url TEXT character set latin1,
+ icon_image TEXT character set latin1,
+ icon_image_alt TEXT character set latin1,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (service_id),
+ UNIQUE KEY instance_id (instance_id,config_type,service_object_id),
+ KEY service_object_id (service_object_id)
+) ENGINE=InnoDB COMMENT='Service definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_servicestatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_servicestatus (
+ servicestatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ service_object_id bigint unsigned default 0,
+ status_update_time timestamp NULL,
+ output TEXT character set latin1,
+ long_output TEXT,
+ perfdata TEXT character set latin1,
+ check_source varchar(255) character set latin1 default '',
+ current_state smallint default 0,
+ has_been_checked smallint default 0,
+ should_be_scheduled smallint default 0,
+ current_check_attempt smallint default 0,
+ max_check_attempts smallint default 0,
+ last_check timestamp NULL,
+ next_check timestamp NULL,
+ check_type smallint default 0,
+ last_state_change timestamp NULL,
+ last_hard_state_change timestamp NULL,
+ last_hard_state smallint default 0,
+ last_time_ok timestamp NULL,
+ last_time_warning timestamp NULL,
+ last_time_unknown timestamp NULL,
+ last_time_critical timestamp NULL,
+ state_type smallint default 0,
+ last_notification timestamp NULL,
+ next_notification timestamp NULL,
+ no_more_notifications smallint default 0,
+ notifications_enabled smallint default 0,
+ problem_has_been_acknowledged smallint default 0,
+ acknowledgement_type smallint default 0,
+ current_notification_number int unsigned default 0,
+ passive_checks_enabled smallint default 0,
+ active_checks_enabled smallint default 0,
+ event_handler_enabled smallint default 0,
+ flap_detection_enabled smallint default 0,
+ is_flapping smallint default 0,
+ percent_state_change double default '0',
+ latency double default '0',
+ execution_time double default '0',
+ scheduled_downtime_depth smallint default 0,
+ failure_prediction_enabled smallint default 0,
+ process_performance_data smallint default 0,
+ obsess_over_service smallint default 0,
+ modified_service_attributes int default 0,
+ original_attributes TEXT character set latin1 default NULL,
+ event_handler TEXT character set latin1,
+ check_command TEXT character set latin1,
+ normal_check_interval double default '0',
+ retry_check_interval double default '0',
+ check_timeperiod_object_id bigint unsigned default 0,
+ is_reachable smallint default 0,
+ PRIMARY KEY (servicestatus_id),
+ UNIQUE KEY object_id (service_object_id)
+) ENGINE=InnoDB COMMENT='Current service status information';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_service_contactgroups
+--
+
+CREATE TABLE IF NOT EXISTS icinga_service_contactgroups (
+ service_contactgroup_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ service_id bigint unsigned default 0,
+ contactgroup_object_id bigint unsigned default 0,
+ PRIMARY KEY (service_contactgroup_id)
+) ENGINE=InnoDB COMMENT='Service contact groups';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_service_contacts
+--
+
+CREATE TABLE IF NOT EXISTS icinga_service_contacts (
+ service_contact_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ service_id bigint unsigned default 0,
+ contact_object_id bigint unsigned default 0,
+ PRIMARY KEY (service_contact_id)
+) ENGINE=InnoDB COMMENT='Service contacts';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_statehistory
+--
+
+CREATE TABLE IF NOT EXISTS icinga_statehistory (
+ statehistory_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ state_time timestamp NULL,
+ state_time_usec int default 0,
+ object_id bigint unsigned default 0,
+ state_change smallint default 0,
+ state smallint default 0,
+ state_type smallint default 0,
+ current_check_attempt smallint default 0,
+ max_check_attempts smallint default 0,
+ last_state smallint default 0,
+ last_hard_state smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ check_source varchar(255) character set latin1 default NULL,
+ PRIMARY KEY (statehistory_id)
+) ENGINE=InnoDB COMMENT='Historical host and service state changes';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_systemcommands
+--
+
+CREATE TABLE IF NOT EXISTS icinga_systemcommands (
+ systemcommand_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ start_time timestamp NULL,
+ start_time_usec int default 0,
+ end_time timestamp NULL,
+ end_time_usec int default 0,
+ command_line TEXT character set latin1,
+ timeout smallint default 0,
+ early_timeout smallint default 0,
+ execution_time double default '0',
+ return_code smallint default 0,
+ output TEXT character set latin1,
+ long_output TEXT,
+ PRIMARY KEY (systemcommand_id),
+ UNIQUE KEY instance_id (instance_id,start_time,start_time_usec)
+) ENGINE=InnoDB COMMENT='Historical system commands that are executed';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_timeperiods
+--
+
+CREATE TABLE IF NOT EXISTS icinga_timeperiods (
+ timeperiod_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ config_type smallint default 0,
+ timeperiod_object_id bigint unsigned default 0,
+ alias varchar(255) character set latin1 default '',
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (timeperiod_id),
+ UNIQUE KEY instance_id (instance_id,config_type,timeperiod_object_id)
+) ENGINE=InnoDB COMMENT='Timeperiod definitions';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_timeperiod_timeranges
+--
+
+CREATE TABLE IF NOT EXISTS icinga_timeperiod_timeranges (
+ timeperiod_timerange_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ timeperiod_id bigint unsigned default 0,
+ day smallint default 0,
+ start_sec int default 0,
+ end_sec int default 0,
+ PRIMARY KEY (timeperiod_timerange_id)
+) ENGINE=InnoDB COMMENT='Timeperiod definitions';
+
+
+-- --------------------------------------------------------
+-- Icinga 2 specific schema extensions
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_endpoints
+--
+
+CREATE TABLE IF NOT EXISTS icinga_endpoints (
+ endpoint_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ endpoint_object_id bigint(20) unsigned DEFAULT '0',
+ zone_object_id bigint(20) unsigned DEFAULT '0',
+ config_type smallint(6) DEFAULT '0',
+ identity varchar(255) DEFAULT NULL,
+ node varchar(255) DEFAULT NULL,
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (endpoint_id)
+) ENGINE=InnoDB COMMENT='Endpoint configuration';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_endpointstatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_endpointstatus (
+ endpointstatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ endpoint_object_id bigint(20) unsigned DEFAULT '0',
+ zone_object_id bigint(20) unsigned DEFAULT '0',
+ status_update_time timestamp NULL,
+ identity varchar(255) DEFAULT NULL,
+ node varchar(255) DEFAULT NULL,
+ is_connected smallint(6),
+ PRIMARY KEY (endpointstatus_id)
+) ENGINE=InnoDB COMMENT='Endpoint status';
+
+--
+-- Table structure for table icinga_zones
+--
+
+CREATE TABLE IF NOT EXISTS icinga_zones (
+ zone_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ zone_object_id bigint(20) unsigned DEFAULT '0',
+ config_type smallint(6) DEFAULT '0',
+ parent_zone_object_id bigint(20) unsigned DEFAULT '0',
+ is_global smallint(6),
+ config_hash varchar(64) DEFAULT NULL,
+ PRIMARY KEY (zone_id)
+) ENGINE=InnoDB COMMENT='Zone configuration';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table icinga_zonestatus
+--
+
+CREATE TABLE IF NOT EXISTS icinga_zonestatus (
+ zonestatus_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ instance_id bigint unsigned default 0,
+ zone_object_id bigint(20) unsigned DEFAULT '0',
+ status_update_time timestamp NULL,
+ parent_zone_object_id bigint(20) unsigned DEFAULT '0',
+ PRIMARY KEY (zonestatus_id)
+) ENGINE=InnoDB COMMENT='Zone status';
+
+
+
+
+ALTER TABLE icinga_servicestatus ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_hoststatus ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_contactstatus ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_programstatus ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_comments ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_scheduleddowntime ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_runtimevariables ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_customvariablestatus ADD COLUMN endpoint_object_id bigint default NULL;
+
+ALTER TABLE icinga_acknowledgements ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_commenthistory ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_contactnotifications ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_downtimehistory ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_eventhandlers ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_externalcommands ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_flappinghistory ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_hostchecks ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_logentries ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_notifications ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_processevents ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_servicechecks ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_statehistory ADD COLUMN endpoint_object_id bigint default NULL;
+ALTER TABLE icinga_systemcommands ADD COLUMN endpoint_object_id bigint default NULL;
+
+-- -----------------------------------------
+-- add index (delete)
+-- -----------------------------------------
+
+-- for periodic delete
+-- instance_id and
+-- SYSTEMCOMMANDS, SERVICECHECKS, HOSTCHECKS, EVENTHANDLERS => start_time
+-- EXTERNALCOMMANDS => entry_time
+
+-- instance_id
+CREATE INDEX systemcommands_i_id_idx on icinga_systemcommands(instance_id);
+CREATE INDEX servicechecks_i_id_idx on icinga_servicechecks(instance_id);
+CREATE INDEX hostchecks_i_id_idx on icinga_hostchecks(instance_id);
+CREATE INDEX eventhandlers_i_id_idx on icinga_eventhandlers(instance_id);
+CREATE INDEX externalcommands_i_id_idx on icinga_externalcommands(instance_id);
+
+-- time
+CREATE INDEX systemcommands_time_id_idx on icinga_systemcommands(start_time);
+CREATE INDEX servicechecks_time_id_idx on icinga_servicechecks(start_time);
+CREATE INDEX hostchecks_time_id_idx on icinga_hostchecks(start_time);
+CREATE INDEX eventhandlers_time_id_idx on icinga_eventhandlers(start_time);
+CREATE INDEX externalcommands_time_id_idx on icinga_externalcommands(entry_time);
+
+
+-- for starting cleanup - referenced in dbhandler.c:882
+-- instance_id only
+
+-- realtime data
+CREATE INDEX programstatus_i_id_idx on icinga_programstatus(instance_id);
+CREATE INDEX hoststatus_i_id_idx on icinga_hoststatus(instance_id);
+CREATE INDEX servicestatus_i_id_idx on icinga_servicestatus(instance_id);
+CREATE INDEX contactstatus_i_id_idx on icinga_contactstatus(instance_id);
+CREATE INDEX comments_i_id_idx on icinga_comments(instance_id);
+CREATE INDEX scheduleddowntime_i_id_idx on icinga_scheduleddowntime(instance_id);
+CREATE INDEX runtimevariables_i_id_idx on icinga_runtimevariables(instance_id);
+CREATE INDEX customvariablestatus_i_id_idx on icinga_customvariablestatus(instance_id);
+
+-- config data
+CREATE INDEX configfiles_i_id_idx on icinga_configfiles(instance_id);
+CREATE INDEX configfilevariables_i_id_idx on icinga_configfilevariables(instance_id);
+CREATE INDEX customvariables_i_id_idx on icinga_customvariables(instance_id);
+CREATE INDEX commands_i_id_idx on icinga_commands(instance_id);
+CREATE INDEX timeperiods_i_id_idx on icinga_timeperiods(instance_id);
+CREATE INDEX timeperiod_timeranges_i_id_idx on icinga_timeperiod_timeranges(instance_id);
+CREATE INDEX contactgroups_i_id_idx on icinga_contactgroups(instance_id);
+CREATE INDEX contactgroup_members_i_id_idx on icinga_contactgroup_members(instance_id);
+CREATE INDEX hostgroups_i_id_idx on icinga_hostgroups(instance_id);
+CREATE INDEX hostgroup_members_i_id_idx on icinga_hostgroup_members(instance_id);
+CREATE INDEX servicegroups_i_id_idx on icinga_servicegroups(instance_id);
+CREATE INDEX servicegroup_members_i_id_idx on icinga_servicegroup_members(instance_id);
+CREATE INDEX hostesc_i_id_idx on icinga_hostescalations(instance_id);
+CREATE INDEX hostesc_contacts_i_id_idx on icinga_hostescalation_contacts(instance_id);
+CREATE INDEX serviceesc_i_id_idx on icinga_serviceescalations(instance_id);
+CREATE INDEX serviceesc_contacts_i_id_idx on icinga_serviceescalation_contacts(instance_id);
+CREATE INDEX hostdependencies_i_id_idx on icinga_hostdependencies(instance_id);
+CREATE INDEX contacts_i_id_idx on icinga_contacts(instance_id);
+CREATE INDEX contact_addresses_i_id_idx on icinga_contact_addresses(instance_id);
+CREATE INDEX contact_notifcommands_i_id_idx on icinga_contact_notificationcommands(instance_id);
+CREATE INDEX hosts_i_id_idx on icinga_hosts(instance_id);
+CREATE INDEX host_parenthosts_i_id_idx on icinga_host_parenthosts(instance_id);
+CREATE INDEX host_contacts_i_id_idx on icinga_host_contacts(instance_id);
+CREATE INDEX services_i_id_idx on icinga_services(instance_id);
+CREATE INDEX service_contacts_i_id_idx on icinga_service_contacts(instance_id);
+CREATE INDEX service_contactgroups_i_id_idx on icinga_service_contactgroups(instance_id);
+CREATE INDEX host_contactgroups_i_id_idx on icinga_host_contactgroups(instance_id);
+CREATE INDEX hostesc_cgroups_i_id_idx on icinga_hostescalation_contactgroups(instance_id);
+CREATE INDEX serviceesc_cgroups_i_id_idx on icinga_serviceescalation_contactgroups(instance_id);
+
+-- -----------------------------------------
+-- more index stuff (WHERE clauses)
+-- -----------------------------------------
+
+-- hosts
+CREATE INDEX hosts_host_object_id_idx on icinga_hosts(host_object_id);
+
+-- hoststatus
+CREATE INDEX hoststatus_stat_upd_time_idx on icinga_hoststatus(status_update_time);
+CREATE INDEX hoststatus_current_state_idx on icinga_hoststatus(current_state);
+CREATE INDEX hoststatus_check_type_idx on icinga_hoststatus(check_type);
+CREATE INDEX hoststatus_state_type_idx on icinga_hoststatus(state_type);
+CREATE INDEX hoststatus_last_state_chg_idx on icinga_hoststatus(last_state_change);
+CREATE INDEX hoststatus_notif_enabled_idx on icinga_hoststatus(notifications_enabled);
+CREATE INDEX hoststatus_problem_ack_idx on icinga_hoststatus(problem_has_been_acknowledged);
+CREATE INDEX hoststatus_act_chks_en_idx on icinga_hoststatus(active_checks_enabled);
+CREATE INDEX hoststatus_pas_chks_en_idx on icinga_hoststatus(passive_checks_enabled);
+CREATE INDEX hoststatus_event_hdl_en_idx on icinga_hoststatus(event_handler_enabled);
+CREATE INDEX hoststatus_flap_det_en_idx on icinga_hoststatus(flap_detection_enabled);
+CREATE INDEX hoststatus_is_flapping_idx on icinga_hoststatus(is_flapping);
+CREATE INDEX hoststatus_p_state_chg_idx on icinga_hoststatus(percent_state_change);
+CREATE INDEX hoststatus_latency_idx on icinga_hoststatus(latency);
+CREATE INDEX hoststatus_ex_time_idx on icinga_hoststatus(execution_time);
+CREATE INDEX hoststatus_sch_downt_d_idx on icinga_hoststatus(scheduled_downtime_depth);
+
+-- services
+CREATE INDEX services_host_object_id_idx on icinga_services(host_object_id);
+
+-- servicestatus
+CREATE INDEX srvcstatus_stat_upd_time_idx on icinga_servicestatus(status_update_time);
+CREATE INDEX srvcstatus_current_state_idx on icinga_servicestatus(current_state);
+CREATE INDEX srvcstatus_check_type_idx on icinga_servicestatus(check_type);
+CREATE INDEX srvcstatus_state_type_idx on icinga_servicestatus(state_type);
+CREATE INDEX srvcstatus_last_state_chg_idx on icinga_servicestatus(last_state_change);
+CREATE INDEX srvcstatus_notif_enabled_idx on icinga_servicestatus(notifications_enabled);
+CREATE INDEX srvcstatus_problem_ack_idx on icinga_servicestatus(problem_has_been_acknowledged);
+CREATE INDEX srvcstatus_act_chks_en_idx on icinga_servicestatus(active_checks_enabled);
+CREATE INDEX srvcstatus_pas_chks_en_idx on icinga_servicestatus(passive_checks_enabled);
+CREATE INDEX srvcstatus_event_hdl_en_idx on icinga_servicestatus(event_handler_enabled);
+CREATE INDEX srvcstatus_flap_det_en_idx on icinga_servicestatus(flap_detection_enabled);
+CREATE INDEX srvcstatus_is_flapping_idx on icinga_servicestatus(is_flapping);
+CREATE INDEX srvcstatus_p_state_chg_idx on icinga_servicestatus(percent_state_change);
+CREATE INDEX srvcstatus_latency_idx on icinga_servicestatus(latency);
+CREATE INDEX srvcstatus_ex_time_idx on icinga_servicestatus(execution_time);
+CREATE INDEX srvcstatus_sch_downt_d_idx on icinga_servicestatus(scheduled_downtime_depth);
+
+-- hostchecks
+CREATE INDEX hostchks_h_obj_id_idx on icinga_hostchecks(host_object_id);
+
+-- servicechecks
+CREATE INDEX servicechks_s_obj_id_idx on icinga_servicechecks(service_object_id);
+
+-- objects
+CREATE INDEX objects_objtype_id_idx ON icinga_objects(objecttype_id);
+CREATE INDEX objects_name1_idx ON icinga_objects(name1);
+CREATE INDEX objects_name2_idx ON icinga_objects(name2);
+CREATE INDEX objects_inst_id_idx ON icinga_objects(instance_id);
+
+-- instances
+-- CREATE INDEX instances_name_idx on icinga_instances(instance_name);
+
+-- logentries
+-- CREATE INDEX loge_instance_id_idx on icinga_logentries(instance_id);
+-- #236
+CREATE INDEX loge_time_idx on icinga_logentries(logentry_time);
+-- CREATE INDEX loge_data_idx on icinga_logentries(logentry_data);
+CREATE INDEX loge_inst_id_time_idx on icinga_logentries (instance_id ASC, logentry_time DESC);
+
+-- commenthistory
+-- CREATE INDEX c_hist_instance_id_idx on icinga_logentries(instance_id);
+-- CREATE INDEX c_hist_c_time_idx on icinga_logentries(comment_time);
+-- CREATE INDEX c_hist_i_c_id_idx on icinga_logentries(internal_comment_id);
+
+-- downtimehistory
+-- CREATE INDEX d_t_hist_nstance_id_idx on icinga_downtimehistory(instance_id);
+-- CREATE INDEX d_t_hist_type_idx on icinga_downtimehistory(downtime_type);
+-- CREATE INDEX d_t_hist_object_id_idx on icinga_downtimehistory(object_id);
+-- CREATE INDEX d_t_hist_entry_time_idx on icinga_downtimehistory(entry_time);
+-- CREATE INDEX d_t_hist_sched_start_idx on icinga_downtimehistory(scheduled_start_time);
+-- CREATE INDEX d_t_hist_sched_end_idx on icinga_downtimehistory(scheduled_end_time);
+
+-- scheduleddowntime
+-- CREATE INDEX sched_d_t_downtime_type_idx on icinga_scheduleddowntime(downtime_type);
+-- CREATE INDEX sched_d_t_object_id_idx on icinga_scheduleddowntime(object_id);
+-- CREATE INDEX sched_d_t_entry_time_idx on icinga_scheduleddowntime(entry_time);
+-- CREATE INDEX sched_d_t_start_time_idx on icinga_scheduleddowntime(scheduled_start_time);
+-- CREATE INDEX sched_d_t_end_time_idx on icinga_scheduleddowntime(scheduled_end_time);
+
+-- statehistory
+CREATE INDEX statehist_i_id_o_id_s_ty_s_ti on icinga_statehistory(instance_id, object_id, state_type, state_time);
+-- #2274
+create index statehist_state_idx on icinga_statehistory(object_id,state);
+
+
+-- Icinga Web Notifications
+CREATE INDEX notification_idx ON icinga_notifications(notification_type, object_id, start_time);
+CREATE INDEX notification_object_id_idx ON icinga_notifications(object_id);
+CREATE INDEX contact_notification_idx ON icinga_contactnotifications(notification_id, contact_object_id);
+CREATE INDEX contacts_object_id_idx ON icinga_contacts(contact_object_id);
+CREATE INDEX contact_notif_meth_notif_idx ON icinga_contactnotificationmethods(contactnotification_id, command_object_id);
+CREATE INDEX command_object_idx ON icinga_commands(object_id);
+CREATE INDEX services_combined_object_idx ON icinga_services(service_object_id, host_object_id);
+
+
+-- #2618
+CREATE INDEX cntgrpmbrs_cgid_coid ON icinga_contactgroup_members (contactgroup_id,contact_object_id);
+CREATE INDEX hstgrpmbrs_hgid_hoid ON icinga_hostgroup_members (hostgroup_id,host_object_id);
+CREATE INDEX hstcntgrps_hid_cgoid ON icinga_host_contactgroups (host_id,contactgroup_object_id);
+CREATE INDEX hstprnthsts_hid_phoid ON icinga_host_parenthosts (host_id,parent_host_object_id);
+CREATE INDEX runtimevars_iid_varn ON icinga_runtimevariables (instance_id,varname);
+CREATE INDEX sgmbrs_sgid_soid ON icinga_servicegroup_members (servicegroup_id,service_object_id);
+CREATE INDEX scgrps_sid_cgoid ON icinga_service_contactgroups (service_id,contactgroup_object_id);
+CREATE INDEX tperiod_tid_d_ss_es ON icinga_timeperiod_timeranges (timeperiod_id,day,start_sec,end_sec);
+
+-- #3649
+CREATE INDEX sla_idx_sthist ON icinga_statehistory (object_id, state_time DESC);
+CREATE INDEX sla_idx_dohist ON icinga_downtimehistory (object_id, actual_start_time, actual_end_time);
+CREATE INDEX sla_idx_obj ON icinga_objects (objecttype_id, is_active, name1);
+
+-- #4985
+CREATE INDEX commenthistory_delete_idx ON icinga_commenthistory (instance_id, comment_time, internal_comment_id);
+
+-- #10070
+CREATE INDEX idx_comments_object_id on icinga_comments(object_id);
+CREATE INDEX idx_scheduleddowntime_object_id on icinga_scheduleddowntime(object_id);
+
+-- #10066
+CREATE INDEX idx_endpoints_object_id on icinga_endpoints(endpoint_object_id);
+CREATE INDEX idx_endpointstatus_object_id on icinga_endpointstatus(endpoint_object_id);
+
+CREATE INDEX idx_endpoints_zone_object_id on icinga_endpoints(zone_object_id);
+CREATE INDEX idx_endpointstatus_zone_object_id on icinga_endpointstatus(zone_object_id);
+
+CREATE INDEX idx_zones_object_id on icinga_zones(zone_object_id);
+CREATE INDEX idx_zonestatus_object_id on icinga_zonestatus(zone_object_id);
+
+CREATE INDEX idx_zones_parent_object_id on icinga_zones(parent_zone_object_id);
+CREATE INDEX idx_zonestatus_parent_object_id on icinga_zonestatus(parent_zone_object_id);
+
+-- #12210
+CREATE INDEX idx_comments_session_del ON icinga_comments (instance_id, session_token);
+CREATE INDEX idx_downtimes_session_del ON icinga_scheduleddowntime (instance_id, session_token);
+
+-- #12107
+CREATE INDEX idx_statehistory_cleanup on icinga_statehistory(instance_id, state_time);
+
+-- #12435
+CREATE INDEX idx_customvariables_object_id on icinga_customvariables(object_id);
+CREATE INDEX idx_contactgroup_members_object_id on icinga_contactgroup_members(contact_object_id);
+CREATE INDEX idx_hostgroup_members_object_id on icinga_hostgroup_members(host_object_id);
+CREATE INDEX idx_servicegroup_members_object_id on icinga_servicegroup_members(service_object_id);
+CREATE INDEX idx_servicedependencies_dependent_service_object_id on icinga_servicedependencies(dependent_service_object_id);
+CREATE INDEX idx_hostdependencies_dependent_host_object_id on icinga_hostdependencies(dependent_host_object_id);
+CREATE INDEX idx_service_contacts_service_id on icinga_service_contacts(service_id);
+CREATE INDEX idx_host_contacts_host_id on icinga_host_contacts(host_id);
+
+-- -----------------------------------------
+-- set dbversion
+-- -----------------------------------------
+INSERT INTO icinga_dbversion (name, version, create_time, modify_time) VALUES ('idoutils', '1.14.2', NOW(), NOW())
+ON DUPLICATE KEY UPDATE version='1.14.2', modify_time=NOW();
+
+
diff --git a/test/docker/docker-entrypoint-initdb.d/icingaweb2.sql b/test/docker/docker-entrypoint-initdb.d/icingaweb2.sql
new file mode 100644
index 0000000..8bd8f3f
--- /dev/null
+++ b/test/docker/docker-entrypoint-initdb.d/icingaweb2.sql
@@ -0,0 +1,138 @@
+-- MySQL dump 10.16 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64)
+--
+-- Host: 127.0.0.1 Database: icingaweb2
+-- ------------------------------------------------------
+-- Server version 10.1.18-MariaDB-1~jessie
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `icingaweb_group`
+--
+
+DROP TABLE IF EXISTS `icingaweb_group`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `icingaweb_group` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `parent` int(10) unsigned DEFAULT NULL,
+ `ctime` timestamp NULL DEFAULT NULL,
+ `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `idx_name` (`name`),
+ KEY `fk_icingaweb_group_parent_id` (`parent`),
+ CONSTRAINT `fk_icingaweb_group_parent_id` FOREIGN KEY (`parent`) REFERENCES `icingaweb_group` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `icingaweb_group`
+--
+
+LOCK TABLES `icingaweb_group` WRITE;
+/*!40000 ALTER TABLE `icingaweb_group` DISABLE KEYS */;
+INSERT INTO `icingaweb_group` VALUES (1,'Administratoren',NULL,'2017-10-10 10:28:43',NULL);
+/*!40000 ALTER TABLE `icingaweb_group` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `icingaweb_group_membership`
+--
+
+DROP TABLE IF EXISTS `icingaweb_group_membership`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `icingaweb_group_membership` (
+ `group_id` int(10) unsigned NOT NULL,
+ `username` varchar(254) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `ctime` timestamp NULL DEFAULT NULL,
+ `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`group_id`,`username`),
+ CONSTRAINT `fk_icingaweb_group_membership_icingaweb_group` FOREIGN KEY (`group_id`) REFERENCES `icingaweb_group` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `icingaweb_group_membership`
+--
+
+LOCK TABLES `icingaweb_group_membership` WRITE;
+/*!40000 ALTER TABLE `icingaweb_group_membership` DISABLE KEYS */;
+INSERT INTO `icingaweb_group_membership` VALUES (1,'icingaadmin','2017-10-10 10:28:43',NULL);
+/*!40000 ALTER TABLE `icingaweb_group_membership` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `icingaweb_user`
+--
+
+DROP TABLE IF EXISTS `icingaweb_user`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `icingaweb_user` (
+ `name` varchar(254) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `active` tinyint(1) NOT NULL,
+ `password_hash` varbinary(255) NOT NULL,
+ `ctime` timestamp NULL DEFAULT NULL,
+ `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `icingaweb_user`
+--
+
+LOCK TABLES `icingaweb_user` WRITE;
+/*!40000 ALTER TABLE `icingaweb_user` DISABLE KEYS */;
+INSERT INTO `icingaweb_user` VALUES ('icingaadmin',1,'$1$Žk}sÔ$Wtk67yqRK61IkZMpritMv.','2017-10-10 10:28:43',NULL);
+/*!40000 ALTER TABLE `icingaweb_user` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `icingaweb_user_preference`
+--
+
+DROP TABLE IF EXISTS `icingaweb_user_preference`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `icingaweb_user_preference` (
+ `username` varchar(254) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `section` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+ `value` varchar(255) NOT NULL,
+ `ctime` timestamp NULL DEFAULT NULL,
+ `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`username`,`section`,`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `icingaweb_user_preference`
+--
+
+LOCK TABLES `icingaweb_user_preference` WRITE;
+/*!40000 ALTER TABLE `icingaweb_user_preference` DISABLE KEYS */;
+/*!40000 ALTER TABLE `icingaweb_user_preference` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2017-10-10 10:29:24
diff --git a/test/fixtures/sqlite-legacy.sql b/test/fixtures/sqlite-legacy.sql
new file mode 100644
index 0000000..7f19439
--- /dev/null
+++ b/test/fixtures/sqlite-legacy.sql
@@ -0,0 +1,44 @@
+-- sqlite3 -bail /tmp/toplevelview.db </usr/share/icingaweb2/modules/toplevelview/test/fixtures/sqlite-legacy.sql
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+
+CREATE TABLE toplevelview_adminroles (hierarchy_id INTEGER, role_id INTEGER, PRIMARY KEY(hierarchy_id));
+CREATE TABLE toplevelview_cache (hierarchy_id INTEGER, updated datetime, json TEXT, PRIMARY KEY(hierarchy_id));
+CREATE TABLE toplevelview_options (name TEXT, value TEXT, PRIMARY KEY(name));
+
+CREATE TABLE toplevelview_host (id INTEGER PRIMARY KEY AUTOINCREMENT, host_object_id INTEGER, view_id INTEGER);
+INSERT INTO "toplevelview_host" VALUES(1,991,5);
+INSERT INTO "toplevelview_host" VALUES(2,991,6);
+
+CREATE TABLE toplevelview_hostgroup (id INTEGER PRIMARY KEY AUTOINCREMENT, hostgroup_object_id INTEGER, view_id INTEGER);
+INSERT INTO "toplevelview_hostgroup" VALUES(1,9911,2);
+INSERT INTO "toplevelview_hostgroup" VALUES(2,9911,3);
+INSERT INTO "toplevelview_hostgroup" VALUES(3,9911,4);
+INSERT INTO "toplevelview_hostgroup" VALUES(4,9911,5);
+INSERT INTO "toplevelview_hostgroup" VALUES(5,9911,6);
+
+CREATE TABLE toplevelview_service (id INTEGER PRIMARY KEY AUTOINCREMENT, service_object_id INTEGER, view_id INTEGER);
+INSERT INTO "toplevelview_service" VALUES(1,994,5);
+INSERT INTO "toplevelview_service" VALUES(2,994,6);
+
+CREATE TABLE toplevelview_view (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255) NOT NULL, display_name VARCHAR(255) NOT NULL);
+INSERT INTO "toplevelview_view" VALUES(1,'TLV','TLV');
+INSERT INTO "toplevelview_view" VALUES(6,'Icinga','Icinga');
+
+CREATE TABLE toplevelview_view_hierarchy (id INTEGER PRIMARY KEY AUTOINCREMENT, view_id INTEGER, root_id INTEGER, lft INTEGER, rgt INTEGER, level INTEGER);
+INSERT INTO "toplevelview_view_hierarchy" VALUES(1,1,1,1,12,0);
+INSERT INTO "toplevelview_view_hierarchy" VALUES(3,6,1,10,11,1);
+
+DELETE FROM sqlite_sequence;
+INSERT INTO "sqlite_sequence" VALUES('toplevelview_view',6);
+INSERT INTO "sqlite_sequence" VALUES('toplevelview_view_hierarchy',3);
+INSERT INTO "sqlite_sequence" VALUES('toplevelview_hostgroup',5);
+INSERT INTO "sqlite_sequence" VALUES('toplevelview_service',2);
+INSERT INTO "sqlite_sequence" VALUES('toplevelview_host',2);
+
+CREATE UNIQUE INDEX host_in_view_unique_index_idx ON toplevelview_host (view_id, host_object_id);
+CREATE UNIQUE INDEX hostgroup_in_view_unique_index_idx ON toplevelview_hostgroup (view_id, hostgroup_object_id);
+CREATE UNIQUE INDEX service_in_view_unique_index_idx ON toplevelview_service (view_id, service_object_id);
+CREATE INDEX root_id_idx ON toplevelview_view_hierarchy (root_id);
+
+COMMIT;
diff --git a/test/setup_vendor.sh b/test/setup_vendor.sh
new file mode 100755
index 0000000..1dd7e8f
--- /dev/null
+++ b/test/setup_vendor.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+set -ex
+
+MODULE_HOME=${MODULE_HOME:="$(dirname "$(readlink -f $(dirname "$0"))")"}
+PHP_VERSION="$(php -r 'echo phpversion();')"
+
+ICINGAWEB_VERSION=${ICINGAWEB_VERSION:=2.6.2}
+ICINGAWEB_GITREF=${ICINGAWEB_GITREF:=}
+PHPCS_VERSION=${PHPCS_VERSION:=3.3.1}
+
+if [ "$PHP_VERSION" '<' 7.0.0 ]; then
+ PHPUNIT_VERSION=${PHPUNIT_VERSION:=5.7.9}
+elif [ "$PHP_VERSION" '<' 5.6.0 ]; then
+ PHPUNIT_VERSION=${PHPUNIT_VERSION:=4.8.36}
+else
+ PHPUNIT_VERSION=${PHPUNIT_VERSION:=6.5.9}
+fi
+
+cd ${MODULE_HOME}
+
+test -d vendor || mkdir vendor
+cd vendor/
+
+# icingaweb2
+if [ -n "$ICINGAWEB_GITREF" ]; then
+ icingaweb_path="icingaweb2"
+ test ! -L "$icingaweb_path" || rm "$icingaweb_path"
+
+ if [ ! -d "$icingaweb_path" ]; then
+ git clone https://github.com/Icinga/icingaweb2.git "$icingaweb_path"
+ fi
+
+ (
+ set -e
+ cd "$icingaweb_path"
+ git fetch -p
+ git checkout -f "$ICINGAWEB_GITREF"
+ )
+else
+ icingaweb_path="icingaweb2-${ICINGAWEB_VERSION}"
+ if [ ! -e "${icingaweb_path}".tar.gz ]; then
+ wget -O "${icingaweb_path}".tar.gz https://github.com/Icinga/icingaweb2/archive/v"${ICINGAWEB_VERSION}".tar.gz
+ fi
+ if [ ! -d "${icingaweb_path}" ]; then
+ tar xf "${icingaweb_path}".tar.gz
+ fi
+
+ ln -svf "${icingaweb_path}" icingaweb2
+fi
+ln -svf "${icingaweb_path}"/library/Icinga
+ln -svf "${icingaweb_path}"/library/vendor/Zend
+
+# phpunit
+phpunit_path="phpunit-${PHPUNIT_VERSION}"
+if [ ! -e "${phpunit_path}".phar ]; then
+ wget -O "${phpunit_path}".phar https://phar.phpunit.de/phpunit-${PHPUNIT_VERSION}.phar
+fi
+ln -svf "${phpunit_path}".phar phpunit.phar
+
+# phpcs
+phpcs_path="phpcs-${PHPCS_VERSION}"
+if [ ! -e "${phpcs_path}".phar ]; then
+ wget -O "${phpcs_path}".phar \
+ https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${PHPCS_VERSION}/phpcs.phar
+fi
+ln -svf "${phpcs_path}".phar phpcs.phar
+
+phpcbf_path="phpcbf-${PHPCS_VERSION}"
+if [ ! -e "${phpcbf_path}".phar ]; then
+ wget -O "${phpcbf_path}".phar \
+ https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${PHPCS_VERSION}/phpcbf.phar
+fi
+ln -svf "${phpcbf_path}".phar phpcbf.phar