From 351dd17c6a60b7d4bc61c212fad5609236a39893 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Jaro=C5=A1?= <jaros@ics.muni.cz>
Date: Fri, 17 Jun 2022 16:30:40 +0200
Subject: [PATCH] Resolve "Director update 1.9.1"

---
 Dockerfile                               |  5 +++--
 README.cs_CZ.md                          |  4 +---
 README.md                                |  8 +++-----
 content/opt/setup/61-icingaweb2-director | 12 +-----------
 content/opt/supervisor/director          |  2 +-
 5 files changed, 9 insertions(+), 22 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index cc11e8e..bfcf116 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -50,6 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive \
 		php-pgsql \
 		php-mysql \
 		php-mbstring \
+		php-json \
 		php-gmp \
 		php-soap \
 		php-intl \
@@ -86,8 +87,8 @@ RUN export DEBIAN_FRONTEND=noninteractive \
 COPY content/ /
 
 # Which module version to install
-ARG GITREF_INCUBATOR=v0.6.0
-ARG GITREF_DIRECTOR=v1.8.1
+ARG GITREF_INCUBATOR=v0.16.1
+ARG GITREF_DIRECTOR=v1.9.1
 ARG GITREF_MODGRAPHITE=v1.1.0
 ARG GITREF_MODAWS=v1.1.0
 ARG GITREF_BUSSINESS=v2.3.1
diff --git a/README.cs_CZ.md b/README.cs_CZ.md
index 7660e31..e1061b9 100644
--- a/README.cs_CZ.md
+++ b/README.cs_CZ.md
@@ -157,8 +157,6 @@ docker run -t \
 
 Director se připojuje přes API a ještě přes Icinga endpoint, který je většinou specifikován jako FQDN. Aby Docker správně poslal síťový provoz na korektní kontejner je nutné vyhnout se několika stejným jménům hosta na jedno FQDN (parametr *--hostname*). Celé doménové jméno by mělo být tedy přiřazeno Icinga jádru, případně musí být použito více FQDN (pro Icinga a Icingaweb).
 
-Je možné vypnout automatický kickstart při startu kontejneru nastavením proměnné `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` na `false`.
-
 Pro vypnutí directora stačí nastavit proměnnou `ICINGAWEB2_FEATURE_DIRECTOR` na `false`.
 
 
@@ -335,7 +333,7 @@ Vypsat logy lze v defaultní konfiguraci například příkazem `docker logs ici
 | `ICINGAWEB2_FEATURE_GRAPHITE` | false | Nastav na `true` nebo `1` pro zapnutĂ­ graphite zapisovaÄŤe |
 | `ICINGAWEB2_FEATURE_GRAPHITE_URL` | http://${ICINGAWEB2_FEATURE_GRAPHITE_HOST} | Web-URL pro Graphite |
 | `ICINGAWEB2_FEATURE_DIRECTOR` | true | Nastav na `false` nebo `0` pro vypnutĂ­ directora |
-| `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` | true | Nastav `false` pro vypnutí automatického kickstartu directora při startu kontejneru. *Hodnota má význam pouze pokud je director zapnutý* |
+| `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` | true | Zapne automatickou detekci Kickstartu Directora. Vypnutí není doporučováno |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_FQDN` | Zdrojuje `ICINGAWEB2_API_TRANSPORT_HOST` | Doménové jméno endpointu na kterém beží Icinga2. Většinou FQDN. |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_HOST` | Zdrojuje `ICINGAWEB2_API_TRANSPORT_HOST` | Adresa hosta |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_PORT` | Zdrojuje `ICINGAWEB2_API_TRANSPORT_PORT` | Port API |
diff --git a/README.md b/README.md
index 2b4655e..605445c 100644
--- a/README.md
+++ b/README.md
@@ -156,9 +156,7 @@ docker run -t \
 
 [Icinga Director](https://github.com/Icinga/icingaweb2-module-director) module is by default enabled. Communicates with Icinga daemon via API transport. Configuration via environment variables (see [Reference](README.md#reference) section).
 
-Dicrector is using Icinga API and Icinga endpoint, which is most of the time specified via FQDN. To make sure Docker correctly sends the network traffic to the correct container you should avoid using identical hostnames (*--hostname* switch). FQDN should be assigned to Icinga core when running on the same machine or multiple FQDN should be used (for Icinga and Icingaweb).
-
-It is possible to turn off automatic kickstart during container start by setting `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` to `false`.
+Director is using Icinga API and Icinga endpoint, which is most of the time specified via FQDN. To make sure Docker correctly sends the network traffic to the correct container you should avoid using identical hostnames (*--hostname* switch). FQDN should be assigned to Icinga core when running on the same machine or multiple FQDN should be used (for Icinga and Icingaweb).
 
 To disable the director set `ICINGAWEB2_FEATURE_DIRECTOR` to `false`.
 
@@ -338,8 +336,8 @@ By default you can show logs with dommand `docker logs icingaweb`.
 | `ICINGAWEB2_FEATURE_GRAPHITE` | false | Enable Graphite |
 | `ICINGAWEB2_FEATURE_GRAPHITE_URL` | http://${ICINGAWEB2_FEATURE_GRAPHITE_HOST} | Web-URL for Graphite |
 | `ICINGAWEB2_FEATURE_DIRECTOR` | true | Enable Director |
-| `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` | true | Enable Director kickstart |
-| `ICINGAWEB2_DIRECTOR_ENDPOINT_FQDN` | Sources `ICINGAWEB2_API_TRANSPORT_HOST` | Icinga monitoring endpoint domain name. Most of the time FQDN. |
+| `ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART` | true | Enable automatic Director Kickstart when necessary. Disabling this is not recommended |
+| `ICINGAWEB2_DIRECTOR_ENDPOINT_FQDN` | Sources `ICINGAWEB2_API_TRANSPORT_HOST` | Icinga monitoring endpoint domain name. Most of the time FQDN |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_HOST` | Sources `ICINGAWEB2_API_TRANSPORT_HOST` | Icinga API host |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_PORT` | Sources `ICINGAWEB2_API_TRANSPORT_PORT` | Icinga API port |
 | `ICINGAWEB2_DIRECTOR_ENDPOINT_USER` | Sources `ICINGAWEB2_API_TRANSPORT_USER` | Icinga API user |
diff --git a/content/opt/setup/61-icingaweb2-director b/content/opt/setup/61-icingaweb2-director
index 028229d..c55e64b 100755
--- a/content/opt/setup/61-icingaweb2-director
+++ b/content/opt/setup/61-icingaweb2-director
@@ -66,16 +66,6 @@ if evaluate_boolean "${ICINGAWEB2_FEATURE_DIRECTOR}"; then
 		"${ICINGAWEB2_DIRECTOR_PGSQL_PASS}" \
 		"${ICINGAWEB2_DIRECTOR_PGSQL_DATA}"
 
-	echo "Director: Import database schema"
-	pgsql_conn "${ICINGAWEB2_DIRECTOR_PGSQL_HOST}" \
-		"${ICINGAWEB2_DIRECTOR_PGSQL_PORT}" \
-		"${ICINGAWEB2_DIRECTOR_PGSQL_USER}" \
-		"${ICINGAWEB2_DIRECTOR_PGSQL_PASS}" \
-		"${ICINGAWEB2_DIRECTOR_PGSQL_DATA}" \
-			< /usr/local/share/icingaweb2/modules/director/schema/pgsql.sql \
-			>> /tmp/pgsql-director-schema.log \
-			2>&1 || true
-
 	echo "Director: Configure"
 		ini_set ${ICINGAWEB2_RESOURCE_CONFIG} icingaweb2_director type       \"db\"
 		ini_set ${ICINGAWEB2_RESOURCE_CONFIG} icingaweb2_director db         \"pgsql\"
@@ -97,7 +87,7 @@ if evaluate_boolean "${ICINGAWEB2_FEATURE_DIRECTOR}"; then
 		ini_set $ICINGAWEB2_DIRECTOR_CONFIG config username \"${ICINGAWEB2_DIRECTOR_ENDPOINT_USER}\"
 		ini_set $ICINGAWEB2_DIRECTOR_CONFIG config password \"${ICINGAWEB2_DIRECTOR_ENDPOINT_PASS}\"
 
-		icingacli director migration run
+		icingacli director migration pending && icingacli director migration run
 
 	echo -e "Director: Finished configuration\n"
 	else
diff --git a/content/opt/supervisor/director b/content/opt/supervisor/director
index 4e04fa3..9c5b069 100755
--- a/content/opt/supervisor/director
+++ b/content/opt/supervisor/director
@@ -6,7 +6,7 @@
 if evaluate_boolean "${ICINGAWEB2_FEATURE_DIRECTOR}"; then
 	if evaluate_boolean "${ICINGAWEB2_FEATURE_DIRECTOR_KICKSTART}"; then
 		until pids=$(pidof -s apache2) ; do sleep 10 ; done
-		icingacli director kickstart run
+		icingacli director kickstart required && icingacli director kickstart run
 	fi
 		sleep 20 && exec /usr/bin/icingacli director daemon run
 else
-- 
GitLab