diff --git a/config/schema/inmail.schema.yml b/config/schema/inmail.schema.yml index 187f676..f2d0a70 100644 --- a/config/schema/inmail.schema.yml +++ b/config/schema/inmail.schema.yml @@ -110,3 +110,12 @@ inmail.plugin.deliverer.imap: batch_size: label: 'Batch size' type: integer + +# Schema for IMAP quota sensor. +monitoring.settings.inmail_monitoring_imap_quota: + type: monitoring.settings_base + label: 'IMAP quota sensor settings' + mapping: + imap_fetcher: + label: Inmail IMAP fetcher to track its quota + type: string diff --git a/inmail.info.yml b/inmail.info.yml index 273f9c5..3e0733f 100644 --- a/inmail.info.yml +++ b/inmail.info.yml @@ -4,5 +4,9 @@ description: Incoming mail message handler. Fetches and processes incoming mail package: Mail version: 8.x-1.x core: 8.x + +dependencies: + - monitoring + test_dependencies: - past diff --git a/inmail_monitoring/config/schema/inmail_monitoring.schema.yml b/inmail_monitoring/config/schema/inmail_monitoring.schema.yml deleted file mode 100644 index e7e3eac..0000000 --- a/inmail_monitoring/config/schema/inmail_monitoring.schema.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Schema for IMAP quota sensor. -monitoring.settings.inmail_monitoring_imap_quota: - type: monitoring.settings_base - label: 'IMAP quota sensor settings' - mapping: - imap_fetcher: - label: Inmail IMAP fetcher to track its quota - type: string diff --git a/inmail_monitoring/inmail_monitoring.info.yml b/inmail_monitoring/inmail_monitoring.info.yml deleted file mode 100644 index a988931..0000000 --- a/inmail_monitoring/inmail_monitoring.info.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: Inmail Monitoring -type: module -description: Monitors the state of Inmail module. -package: Mail -version: 8.x-1.x -core: 8.x - -dependencies: - - inmail - - monitoring diff --git a/inmail_monitoring/src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php b/src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php similarity index 80% rename from inmail_monitoring/src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php rename to src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php index 1b3260e..efa8aec 100644 --- a/inmail_monitoring/src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php +++ b/src/Plugin/monitoring/SensorPlugin/IMAPQuotaSensorPlugin.php @@ -1,6 +1,6 @@ 'radios', + '#type' => 'select', '#options' => $imap_fetchers, '#title' => t('IMAP Fetchers'), '#description' => t('Select a fetcher to track its IMAP quota.'), '#default_value' => $this->sensorConfig->getSetting('imap_fetcher'), + '#access' => $has_fetchers, ); + if (!$has_fetchers) { + $form['imap_fetcher_add'] = array( + '#type' => 'item', + '#title' => t('There are no IMAP fetchers. Please add one.', array(':url' => '/admin/config/system/inmail/deliverers/add')), + ); + } return $form; } @@ -78,18 +86,19 @@ class IMAPQuotaSensorPlugin extends SensorPluginBase { if ($quota = $plugin->getQuota()) { $usage = $quota['STORAGE']['usage']; $limit = $quota['STORAGE']['limit']; + $percentage = round($usage/$limit * 100); if ($usage >= $limit) { $result->setStatus(SensorResultInterface::STATUS_CRITICAL); } else { $result->setStatus(SensorResultInterface::STATUS_OK); } - $result->setValue($usage); - $result->setMessage('The usage quota for @imap_fetcher is @usage KB and the limit is @limit KB', ['@imap_fetcher' => $imap_fetcher->id(), '@usage' => $usage, '@limit' => $limit]); + $result->setValue($percentage); + $result->addStatusMessage('@fetcher usage quota: @usage/@limit KB.', ['@fetcher' => $imap_fetcher->id(), '@usage' => $usage, '@limit' => $limit]); } else { $result->setStatus(SensorResultInterface::STATUS_UNKNOWN); - $result->setMessage('No quota information for @imap_fetcher fetcher.', ['@imap_fetcher' => $imap_fetcher->id()]); + $result->addStatusMessage('No quota information for @fetcher fetcher.', ['@fetcher' => $imap_fetcher->id()]); } } }