Introduce implementation for hook X509/Sni

This commit is contained in:
Johannes Meyer 2019-03-28 13:35:58 +01:00
parent 915c7b8fe5
commit b8c1934428
2 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,35 @@
<?php
/* Icinga Web 2 | (c) 2019 Icinga GmbH | GPLv2+ */
namespace Icinga\Module\Monitoring\ProvidedHook\X509;
use Icinga\Data\Filter\Filter;
use Icinga\Module\Monitoring\Backend\MonitoringBackend;
use Icinga\Module\X509\Hook\SniHook;
class Sni extends SniHook
{
public function getHosts(Filter $filter = null)
{
$hosts = MonitoringBackend::instance()
->select()
->from('hoststatus', [
'host_name',
'host_address',
'host_address6'
]);
if ($filter !== null) {
$hosts->applyFilter($filter);
}
foreach ($hosts as $host) {
if (! empty($host->host_address)) {
yield $host->host_address => $host->host_name;
}
if (! empty($host->host_address6)) {
yield $host->host_address6 => $host->host_name;
}
}
}
}

View File

@ -4,3 +4,4 @@
/** @var $this \Icinga\Application\Modules\Module */ /** @var $this \Icinga\Application\Modules\Module */
$this->provideHook('ApplicationState'); $this->provideHook('ApplicationState');
$this->provideHook('X509/Sni');