From 3134630f86cf0e6314f69eb22afb0e7feba5667f Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sat, 5 Mar 2016 17:23:40 +0100 Subject: [PATCH] ConfigHealthItemRenderer: use Migrations fixes #11263 --- .../Renderer/ConfigHealthItemRenderer.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/library/Director/Web/Navigation/Renderer/ConfigHealthItemRenderer.php b/library/Director/Web/Navigation/Renderer/ConfigHealthItemRenderer.php index 230ce7a2..c6b7399a 100644 --- a/library/Director/Web/Navigation/Renderer/ConfigHealthItemRenderer.php +++ b/library/Director/Web/Navigation/Renderer/ConfigHealthItemRenderer.php @@ -6,6 +6,7 @@ use Exception; use Icinga\Application\Config; use Icinga\Module\Director\ConfigHealthChecker; use Icinga\Module\Director\Db; +use Icinga\Module\Director\Db\Migrations; use Icinga\Module\Director\KickstartHelper; use Icinga\Web\Navigation\Renderer\BadgeNavigationItemRenderer; @@ -57,6 +58,26 @@ class ConfigHealthItemRenderer extends BadgeNavigationItemRenderer return; } + $migrations = new Migrations($db); + if (!$migrations->hasSchema()) { + $this->count = 1; + $this->directorState = self::STATE_CRITICAL; + $this->message = $this->translate( + 'Director database schema has not been created yet' + ); + return; + } + + if ($migrations->hasPendingMigrations()) { + $this->count = $migrations->countPendingMigrations(); + $this->directorState = self::STATE_PENDING; + $this->message = sprintf( + $this->translate('There are %d pending database migrations'), + $this->count + ); + return; + } + $kickstart = new KickstartHelper($db); if ($kickstart->isRequired()) { $this->directorState = self::STATE_PENDING;