You are here

protected function CoreRequirementsSensorPlugin::processRequirements in Monitoring 8

Sets sensor result status and status messages for the given requirements.

Parameters

\Drupal\monitoring\Result\SensorResultInterface $result: The result object to update.

array $requirements: Array of requirements to process.

1 call to CoreRequirementsSensorPlugin::processRequirements()
CoreRequirementsSensorPlugin::runSensor in src/Plugin/monitoring/SensorPlugin/CoreRequirementsSensorPlugin.php
Runs the sensor, updating $sensor_result.

File

src/Plugin/monitoring/SensorPlugin/CoreRequirementsSensorPlugin.php, line 258
Contains \Drupal\monitoring\Plugin\monitoring\SensorPlugin\CoreRequirementsSensorPlugin.

Class

CoreRequirementsSensorPlugin
Monitors a specific module hook_requirements.

Namespace

Drupal\monitoring\Plugin\monitoring\SensorPlugin

Code

protected function processRequirements(SensorResultInterface $result, $requirements) {
  $severity = $this
    ->getHighestSeverity($requirements);
  if ($severity == REQUIREMENT_ERROR) {
    $result
      ->setStatus(SensorResultInterface::STATUS_CRITICAL);
  }
  elseif ($severity == REQUIREMENT_WARNING) {
    $result
      ->setStatus(SensorResultInterface::STATUS_WARNING);
  }
  else {
    $result
      ->setStatus(SensorResultInterface::STATUS_OK);
  }
  if (!empty($requirements)) {
    foreach ($requirements as $requirement) {

      // Skip if we do not have the highest requirements severity.
      if (!isset($requirement['severity']) || $requirement['severity'] != $severity) {
        continue;
      }
      if (!empty($requirement['title'])) {
        $result
          ->addStatusMessage($requirement['title']);
      }
      if (!empty($requirement['description'])) {
        $result
          ->addStatusMessage($requirement['description']);
      }
      if (!empty($requirement['value'])) {
        $result
          ->addStatusMessage($requirement['value']);
      }
    }
  }
  else {
    $result
      ->addStatusMessage('Requirements check OK');
  }
}