Introduce app state for the monitoring module

refs #2835
This commit is contained in:
Eric Lippmann 2018-07-09 16:00:50 +02:00
parent 47405127d0
commit 45468b7a8e
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
<?php
/* Icinga Web 2 | (c) 2018 Icinga Development Team | GPLv2+ */
namespace Icinga\Module\Monitoring\ProvidedHook;
use Icinga\Application\Hook\ApplicationStateHook;
use Icinga\Module\Monitoring\Backend\MonitoringBackend;
class ApplicationState extends ApplicationStateHook
{
public function collectMessages()
{
$backend = MonitoringBackend::instance();
$programStatus = $backend
->select()
->from(
'programstatus',
['is_currently_running', 'status_update_time']
)
->fetchRow();
if ($programStatus === false || ! (bool) $programStatus->is_currently_running) {
$message = sprintf(
mt('monitoring', "Monitoring backend '%s' is not running."),
$backend->getName()
);
$this->addError('monitoring/backend-down', $programStatus->status_update_time, $message);
}
}
}