mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-30 17:24:18 +02:00
run: require PHP 5.6, move/modernize hooks
This commit is contained in:
parent
1fa52e5c14
commit
6aed0a2097
112
register-hooks.php
Normal file
112
register-hooks.php
Normal file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
use Icinga\Application\Modules\Module;
|
||||
use Icinga\Module\Director\DataType\DataTypeArray;
|
||||
use Icinga\Module\Director\DataType\DataTypeBoolean;
|
||||
use Icinga\Module\Director\DataType\DataTypeDatalist;
|
||||
use Icinga\Module\Director\DataType\DataTypeDirectorObject;
|
||||
use Icinga\Module\Director\DataType\DataTypeNumber;
|
||||
use Icinga\Module\Director\DataType\DataTypeSqlQuery;
|
||||
use Icinga\Module\Director\DataType\DataTypeString;
|
||||
use Icinga\Module\Director\Import\ImportSourceCoreApi;
|
||||
use Icinga\Module\Director\Import\ImportSourceLdap;
|
||||
use Icinga\Module\Director\Import\ImportSourceRestApi;
|
||||
use Icinga\Module\Director\Import\ImportSourceSql;
|
||||
use Icinga\Module\Director\Job\ConfigJob;
|
||||
use Icinga\Module\Director\Job\HousekeepingJob;
|
||||
use Icinga\Module\Director\Job\ImportJob;
|
||||
use Icinga\Module\Director\Job\SyncJob;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierArrayElementByPosition;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierArrayFilter;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierBitmask;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierCombine;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierDnsRecords;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierExtractFromDN;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierFromAdSid;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierFromLatin1;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierGetHostByName;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierJoin;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierJsonDecode;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierLConfCustomVar;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierLowercase;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierMakeBoolean;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierMap;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierParseURL;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierRegexReplace;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierRegexSplit;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierRejectOrSelect;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierReplace;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierSplit;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierStripDomain;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierSubstring;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierToInt;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierUppercase;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierUpperCaseFirst;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierURLEncode;
|
||||
use Icinga\Module\Director\PropertyModifier\PropertyModifierXlsNumericIp;
|
||||
use Icinga\Module\Director\ProvidedHook\CubeLinks;
|
||||
|
||||
/** @var Module $this */
|
||||
$this->provideHook('monitoring/HostActions');
|
||||
$this->provideHook('monitoring/ServiceActions');
|
||||
$this->provideHook('cube/Actions', CubeLinks::class);
|
||||
|
||||
$directorHooks = [
|
||||
'director/DataType' => [
|
||||
DataTypeArray::class,
|
||||
DataTypeBoolean::class,
|
||||
DataTypeDatalist::class,
|
||||
DataTypeNumber::class,
|
||||
DataTypeDirectorObject::class,
|
||||
DataTypeSqlQuery::class,
|
||||
DataTypeString::class
|
||||
],
|
||||
'director/ImportSource' => [
|
||||
ImportSourceSql::class,
|
||||
ImportSourceLdap::class,
|
||||
ImportSourceCoreApi::class,
|
||||
ImportSourceRestApi::class
|
||||
],
|
||||
'director/Job' => [
|
||||
ConfigJob::class,
|
||||
HousekeepingJob::class,
|
||||
ImportJob::class,
|
||||
SyncJob::class,
|
||||
],
|
||||
'director/PropertyModifier' => [
|
||||
PropertyModifierArrayElementByPosition::class,
|
||||
PropertyModifierArrayFilter::class,
|
||||
PropertyModifierBitmask::class,
|
||||
PropertyModifierCombine::class,
|
||||
PropertyModifierDnsRecords::class,
|
||||
PropertyModifierExtractFromDN::class,
|
||||
PropertyModifierFromAdSid::class,
|
||||
PropertyModifierFromLatin1::class,
|
||||
PropertyModifierGetHostByName::class,
|
||||
PropertyModifierJoin::class,
|
||||
PropertyModifierJsonDecode::class,
|
||||
PropertyModifierLConfCustomVar::class,
|
||||
PropertyModifierLowercase::class,
|
||||
PropertyModifierMakeBoolean::class,
|
||||
PropertyModifierMap::class,
|
||||
PropertyModifierParseURL::class,
|
||||
PropertyModifierRegexReplace::class,
|
||||
PropertyModifierRegexSplit::class,
|
||||
PropertyModifierRejectOrSelect::class,
|
||||
PropertyModifierReplace::class,
|
||||
PropertyModifierSplit::class,
|
||||
PropertyModifierStripDomain::class,
|
||||
PropertyModifierSubstring::class,
|
||||
PropertyModifierToInt::class,
|
||||
PropertyModifierUppercase::class,
|
||||
PropertyModifierUpperCaseFirst::class,
|
||||
PropertyModifierURLEncode::class,
|
||||
PropertyModifierXlsNumericIp::class,
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($directorHooks as $type => $classNames) {
|
||||
foreach ($classNames as $className) {
|
||||
$this->provideHook($type, $className);
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@ use Icinga\Web\Url;
|
||||
|
||||
if (Icinga::app()->isCli()) {
|
||||
throw new IcingaException(
|
||||
"PHP version 5.4.x is required for Director >= 1.4.0, you're running %s."
|
||||
"PHP version 5.6.x is required for Director >= 1.7.0, you're running %s."
|
||||
. ' Please either upgrade PHP or downgrade Icinga Director',
|
||||
PHP_VERSION
|
||||
);
|
||||
|
65
run.php
65
run.php
@ -3,78 +3,25 @@
|
||||
use Icinga\Application\Modules\Module;
|
||||
use dipl\Loader\CompatLoader;
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.4.0') < 0) {
|
||||
if (version_compare(PHP_VERSION, '5.6.0') < 0) {
|
||||
include __DIR__ . '/run-php5.3.php';
|
||||
return;
|
||||
}
|
||||
|
||||
$prefix = '\\Icinga\\Module\\Director\\';
|
||||
|
||||
/** @var Module $this */
|
||||
$this->provideHook('monitoring/HostActions');
|
||||
$this->provideHook('monitoring/ServiceActions');
|
||||
|
||||
$this->provideHook('director/ImportSource', $prefix . 'Import\\ImportSourceSql');
|
||||
$this->provideHook('director/ImportSource', $prefix . 'Import\\ImportSourceLdap');
|
||||
$this->provideHook('director/ImportSource', $prefix . 'Import\\ImportSourceCoreApi');
|
||||
$this->provideHook('director/ImportSource', $prefix . 'Import\\ImportSourceRestApi');
|
||||
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeArray');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeBoolean');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeDatalist');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeNumber');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeDirectorObject');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeSqlQuery');
|
||||
$this->provideHook('director/DataType', $prefix . 'DataType\\DataTypeString');
|
||||
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierLowercase');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierRegexReplace');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierRegexSplit');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierReplace');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierStripDomain');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierSubstring');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierUppercase');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierMap');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierSplit');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierJoin');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierGetHostByName');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierDnsRecords');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierExtractFromDN');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierFromAdSid');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierFromLatin1');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierBitmask');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierMakeBoolean');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierJsonDecode');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierToInt');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierLConfCustomVar');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierArrayFilter');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierCombine');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierXlsNumericIp');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierURLEncode');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierUpperCaseFirst');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierRejectOrSelect');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierArrayElementByPosition');
|
||||
$this->provideHook('director/PropertyModifier', $prefix . 'PropertyModifier\\PropertyModifierParseURL');
|
||||
|
||||
$this->provideHook('director/Job', $prefix . 'Job\\HousekeepingJob');
|
||||
$this->provideHook('director/Job', $prefix . 'Job\\ConfigJob');
|
||||
$this->provideHook('director/Job', $prefix . 'Job\\ImportJob');
|
||||
$this->provideHook('director/Job', $prefix . 'Job\\SyncJob');
|
||||
|
||||
$this->provideHook('cube/Actions', 'CubeLinks');
|
||||
|
||||
// TODO: this is going to be removed in v1.8.0
|
||||
require_once __DIR__ . '/library/vendor/ipl/Loader/CompatLoader.php';
|
||||
CompatLoader::delegateLoadingToIcingaWeb($this->app);
|
||||
|
||||
/** @var Module $this */
|
||||
$modules = $this->app->getModuleManager();
|
||||
foreach ($this->getDependencies() as $module => $required) {
|
||||
if ($modules->hasEnabled($module)) {
|
||||
$installed = $modules->getModule($module, false)->getVersion();
|
||||
$installed = \ltrim($installed, 'v'); // v0.6.0 VS 0.6.0
|
||||
$installed = ltrim($installed, 'v'); // v0.6.0 VS 0.6.0
|
||||
if (preg_match('/^([<>=]+)\s*v?(\d+\.\d+\.\d+)$/', $required, $match)) {
|
||||
$operator = $match[1];
|
||||
$vRequired = $match[2];
|
||||
if (\version_compare($installed, $vRequired, $operator)) {
|
||||
if (version_compare($installed, $vRequired, $operator)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -83,3 +30,5 @@ foreach ($this->getDependencies() as $module => $required) {
|
||||
include __DIR__ . '/run-missingdeps.php';
|
||||
return;
|
||||
}
|
||||
|
||||
include __DIR__ . '/register-hooks.php';
|
||||
|
Loading…
x
Reference in New Issue
Block a user