You are here

class ConfigValueSensorPlugin in Monitoring 8

Generic sensor that checks for a configuration value.

Plugin annotation


@SensorPlugin(
  id = "config_value",
  label = @Translation("Config Value"),
  description = @Translation("Checks for a specific configuration value."),
  addable = TRUE
)

Hierarchy

Expanded class hierarchy of ConfigValueSensorPlugin

File

src/Plugin/monitoring/SensorPlugin/ConfigValueSensorPlugin.php, line 24
Contains \Drupal\monitoring\Plugin\monitoring\SensorPlugin\ConfigValueSensorPlugin

Namespace

Drupal\monitoring\Plugin\monitoring\SensorPlugin
View source
class ConfigValueSensorPlugin extends ValueComparisonSensorPluginBase {
  use DependencyTrait;

  /**
   * {@inheritdoc}
   */
  protected function getValueDescription() {
    return t('The expected value of config %key, current value: %actVal', array(
      '%key' => $this->sensorConfig
        ->getSetting('config') . ':' . $this->sensorConfig
        ->getSetting('key'),
      '%actVal' => $this
        ->getValueText(),
    ));
  }

  /**
   * {@inheritdoc}
   */
  protected function getValue() {
    $config = $this
      ->getConfig($this->sensorConfig
      ->getSetting('config'));
    $key = $this->sensorConfig
      ->getSetting('key');
    if (empty($key)) {
      return NULL;
    }
    return $config
      ->get($key);
  }

  /**
   * Gets config.
   *
   * @param string $name
   *   Config name.
   *
   * @return \Drupal\Core\Config\Config
   *   The config.
   */
  protected function getConfig($name) {

    // @todo fix condition $name==''
    return $this
      ->getService('config.factory')
      ->get($name);
  }

  /**
   * Adds UI for variables config object and key.
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildConfigurationForm($form, $form_state);

    // Add weight to display config key before expected value.
    $form['config'] = array(
      '#type' => 'textfield',
      '#default_value' => $this->sensorConfig
        ->getSetting('config') ? $this->sensorConfig
        ->getSetting('config') : '',
      '#autocomplete_route_name' => 'monitoring.config_autocomplete',
      '#maxlength' => 255,
      '#title' => t('Config Object'),
      '#required' => TRUE,
      '#weight' => -1,
    );
    $form['key'] = array(
      '#type' => 'textfield',
      '#default_value' => $this->sensorConfig
        ->getSetting('key') ? $this->sensorConfig
        ->getSetting('key') : '',
      '#maxlength' => 255,
      '#title' => t('Key'),
      '#required' => TRUE,
      '#weight' => -1,
    );
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    $config_object = $this->sensorConfig
      ->getSetting('config');
    $config = \Drupal::config($config_object);
    if (isset($config) && isset($config
      ->getOriginal()['dependencies'])) {
      $this
        ->addDependency('config', $config_object);
    }
    $this
      ->addDependency('module', strtok($config_object, '.'));
    return $this->dependencies;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigValueSensorPlugin::buildConfigurationForm public function Adds UI for variables config object and key. Overrides ValueComparisonSensorPluginBase::buildConfigurationForm
ConfigValueSensorPlugin::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides SensorPluginBase::calculateDependencies
ConfigValueSensorPlugin::getConfig protected function Gets config.
ConfigValueSensorPlugin::getValue protected function Gets the current value. Overrides ValueComparisonSensorPluginBase::getValue
ConfigValueSensorPlugin::getValueDescription protected function Gets the value description that will be shown in the settings form. Overrides ValueComparisonSensorPluginBase::getValueDescription
DependencyTrait::$dependencies protected property The object's dependencies.
DependencyTrait::addDependencies protected function Adds multiple dependencies.
DependencyTrait::addDependency protected function Adds a dependency.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
SensorPluginBase::$configurableValueType protected property Allows plugins to control if the value type can be configured. 6
SensorPluginBase::$pluginDefinition protected property The plugin implementation definition.
SensorPluginBase::$pluginId protected property The plugin_id.
SensorPluginBase::$sensorConfig protected property Current sensor config object.
SensorPluginBase::$services protected property
SensorPluginBase::addService public function Service setter. Overrides SensorPluginInterface::addService
SensorPluginBase::create public static function Creates an instance of the sensor with config. Overrides SensorPluginInterface::create 7
SensorPluginBase::getConfigurableValueType public function Configurable value type. Overrides SensorPluginInterface::getConfigurableValueType
SensorPluginBase::getDefaultConfiguration public function Default configuration for a sensor. Overrides SensorPluginInterface::getDefaultConfiguration 8
SensorPluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition
SensorPluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
SensorPluginBase::getSensorId public function Gets sensor name (not the label). Overrides SensorPluginInterface::getSensorId
SensorPluginBase::getService public function @todo: Replace with injection Overrides SensorPluginInterface::getService
SensorPluginBase::isEnabled public function Determines if sensor is enabled. Overrides SensorPluginInterface::isEnabled
SensorPluginBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm 3
SensorPluginBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm 2
SensorPluginBase::__construct function Instantiates a sensor object. 8
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
ValueComparisonSensorPluginBase::getExpectedValue protected function Gets the expected value.
ValueComparisonSensorPluginBase::getValueText protected function Gets the current value as text.
ValueComparisonSensorPluginBase::runSensor public function Runs the sensor, updating $sensor_result. Overrides SensorPluginInterface::runSensor