protected function SensorDisappearedSensors::checkForMissingSensors in Monitoring 7
Checks for missing sensors.
Parameters
SensorResultInterface $result: The current sensor result object.
array $available_sensors: The available sensors list.
\Drupal\monitoring\Sensor\SensorInfo[] $sensor_info: The current sensor info.
1 call to SensorDisappearedSensors::checkForMissingSensors()
- SensorDisappearedSensors::runSensor in lib/
Drupal/ monitoring/ Sensor/ Sensors/ SensorDisappearedSensors.php - Runs the sensor, updating $sensor_result.
File
- lib/
Drupal/ monitoring/ Sensor/ Sensors/ SensorDisappearedSensors.php, line 112 - Contains \Drupal\monitoring\Sensor\Sensors\SensorDisappearedSensors.
Class
- SensorDisappearedSensors
- Monitors if sensors disappeared without prior being disabled.
Namespace
Drupal\monitoring\Sensor\SensorsCode
protected function checkForMissingSensors(SensorResultInterface $result, $available_sensors, $sensor_info) {
$result
->setStatus(SensorResultInterface::STATUS_OK);
$sensors_to_remove = array();
// Check for missing sensors.
foreach ($available_sensors as $available_sensor) {
if (!in_array($available_sensor['name'], array_keys($sensor_info))) {
// If sensor is missing and was not disabled prior to go missing do
// escalate to critical status.
if (!empty($available_sensor['enabled'])) {
$result
->setStatus(SensorResultInterface::STATUS_CRITICAL);
$result
->addStatusMessage('Missing sensor @name', array(
'@name' => $available_sensor['name'],
));
}
else {
$sensors_to_remove[] = $available_sensor['name'];
}
}
}
// If having sensor to remove, reset the available sensors variable.
if (!empty($sensors_to_remove)) {
foreach ($sensors_to_remove as $sensor_to_remove) {
unset($available_sensors[$sensor_to_remove]);
}
variable_set('monitoring_available_sensors', $available_sensors);
watchdog('monitoring', '@count new sensor/s removed: @names', array(
'@count' => count($sensors_to_remove),
'@names' => implode(', ', $sensors_to_remove),
));
}
}