public function RequirementsController::collectRequirements in Nagios Monitoring 8
File
- src/Controller/RequirementsController.php, line 33
Class
- RequirementsController
- Get the run-time requirements and status information.
module_invoke_all('requirements', 'runtime') returns an array that isn't
keyed by the module name, eg we might get a key 'ctools_css_cache'.
We have no way of…
Namespace
Drupal\nagios\Controller
Code
public function collectRequirements(array $enabled_modules, array $data, $project_data) {
$module_data = [];
$moduleHandler = Drupal::service('module_handler');
foreach ($enabled_modules as $module_name) {
$requirements_data = $moduleHandler
->invoke($module_name, 'requirements', [
'runtime',
]);
if ($requirements_data && is_array($requirements_data)) {
if ($module_name == 'update' && !empty($data)) {
unset($requirements_data['update_contrib']);
foreach ($enabled_modules as $inner_module_name) {
if (!array_key_exists($inner_module_name, $project_data['drupal']['includes']) && isset($data[$inner_module_name]['status']) && is_numeric($data[$inner_module_name]['status'])) {
$contrib_req = _update_requirement_check($data[$inner_module_name], 'contrib');
$contrib_req['name'] = $inner_module_name;
if (!isset($contrib_req['severity'])) {
$contrib_req['severity'] = -1;
}
if ($contrib_req) {
$module_data[] = $contrib_req;
}
}
}
if (!empty($module_data)) {
usort($module_data, '_nagios_updates_sort_by_severity');
$requirements_data['update_contrib'] = array_pop($module_data);
}
}
$this->reqs += $requirements_data;
}
}
}