monitoring-8.x-1.x-dev/src/Controller/ForceRunController.php

src/Controller/ForceRunController.php
<?php

namespace Drupal\monitoring\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\monitoring\Entity\SensorConfig;
use Drupal\monitoring\Sensor\SensorManager;
use Drupal\monitoring\SensorRunner;
use Symfony\Component\DependencyInjection\ContainerInterface;

class ForceRunController extends ControllerBase {

  /**
   * The sensor manager.
   *
   * @var \Drupal\monitoring\Sensor\SensorManager
   */
  protected $sensorManager;

  /**
   * The sensor runner.
   *
   * @var \Drupal\monitoring\SensorRunner
   */
  protected $sensorRunner;

  /**
   * Constructs a \Drupal\monitoring\Form\SensorSettingsForm object.
   *
   * @param \Drupal\monitoring\SensorRunner $sensor_runner
   *   The sensor runner service.
   * @param \Drupal\monitoring\Sensor\SensorManager $sensor_manager
   *   The sensor manager service.
   */
  public function __construct(SensorRunner $sensor_runner, SensorManager $sensor_manager) {
    $this->sensorManager = $sensor_manager;
    $this->sensorRunner = $sensor_runner;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('monitoring.sensor_runner'),
      $container->get('monitoring.sensor_manager')
    );
  }

  /**
   * Force runs all sensors.
   *
   * @return \Symfony\Component\HttpFoundation\RedirectResponse
   */
  public function forceRunAll() {
    $this->sensorRunner->resetCache();
    $this->messenger()->addMessage($this->t('Force run of all cached sensors executed.'));
    return $this->redirect('monitoring.sensor_list');
  }

  /**
   * Force runs a single sensor.
   *
   * @param \Drupal\monitoring\Entity\SensorConfig $monitoring_sensor_config
   *
   * @return \Symfony\Component\HttpFoundation\RedirectResponse
   */
  public function forceRunSensor(SensorConfig $monitoring_sensor_config) {

    $this->sensorRunner->resetCache(array($monitoring_sensor_config->id()));
    $this->messenger()->addMessage($this->t('Force run of the sensor @name executed.', array('@name' => $monitoring_sensor_config->getLabel())));
    return $this->redirect('monitoring.sensor_list');
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc