sensu-plugins-postfix 0.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +49 -3
- data/README.md +2 -2
- data/bin/check-mail-delay.rb +174 -0
- data/bin/check-mailq.rb +86 -19
- data/bin/metrics-mailq.rb +9 -8
- data/lib/sensu-plugins-postfix.rb +2 -0
- data/lib/sensu-plugins-postfix/version.rb +4 -2
- metadata +84 -58
- checksums.yaml.gz.sig +0 -3
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 0a8d27ce3bf67f47c0df7def5e47ab42934eac724aaab98080a155473b6afbcf
         | 
| 4 | 
            +
              data.tar.gz: 5059c5f6ae331b27a5ad2a3680d539279f7678dabd3ebf800e9c2d2c20fcd09d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a07f629db60a1fb9d5d5f43e0fc88247ada5c5dba85955c847dcedd6f08b85f15871aea52bf7961e11822453975ccb89fceb68ba7109a29c7ee16de84c821cf8
         | 
| 7 | 
            +
              data.tar.gz: df530861ebbb506cd9230f1258711748fad4bb32fe953f010b705429fc46cb256b15c754c092a3b18008ff8dbc146668e9f8a77ec5bfecb6bef36a6782ed2d7f
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,11 +1,57 @@ | |
| 1 | 
            -
            #Change Log
         | 
| 1 | 
            +
            # Change Log
         | 
| 2 2 | 
             
            This project adheres to [Semantic Versioning](http://semver.org/).
         | 
| 3 3 |  | 
| 4 4 | 
             
            This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
         | 
| 5 5 |  | 
| 6 | 
            -
            ## Unreleased] | 
| 6 | 
            +
            ## [Unreleased]
         | 
| 7 7 |  | 
| 8 | 
            -
            ## 0.0 | 
| 8 | 
            +
            ## [2.0.0] - 2020-08-24
         | 
| 9 | 
            +
            ### Breaking Changes
         | 
| 10 | 
            +
            - Remove support for old Ruby (< 2.3)
         | 
| 11 | 
            +
            - Remove kitchen test reliant on Sensu Core
         | 
| 12 | 
            +
            - Bump sensu-plugin dependency from ~> 1.2 to ~> 4.0
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            ### Changed
         | 
| 15 | 
            +
            - Updated bundler dependancy to '~> 2.1'
         | 
| 16 | 
            +
            - Updated rubocop dependency to '~> 0.81.0'
         | 
| 17 | 
            +
            - Remediated rubocop issues
         | 
| 18 | 
            +
            - Updated codeclimate-test-reporter to '~> 1.0'
         | 
| 19 | 
            +
            - Updated rake dependency to '~> 13.0'
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ## [1.0.0] - 2017-07-26
         | 
| 22 | 
            +
            ### Breaking Change
         | 
| 23 | 
            +
            - Remove support for Ruby 1.9.3 (@eheydrick)
         | 
| 9 24 |  | 
| 25 | 
            +
            ### Added
         | 
| 26 | 
            +
            - Testing on Ruby 2.4.1 (@Evesy)
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            ### Fixed
         | 
| 29 | 
            +
            - Fix the integration tests (@RoboticCheese)
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            ## [0.1.0] - 2016-01-29
         | 
| 32 | 
            +
            ### Added
         | 
| 33 | 
            +
            - Add support to `check-mailq` for inspecting each Postfix queue individually
         | 
| 34 | 
            +
            - Add a `check-mail-delay` script to support alerting by age of queue items
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            ### Fixed
         | 
| 37 | 
            +
            - metrics-mailq.rb: don't output stderr when the mail queue is empty
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            ## [0.0.3] - 2015-07-14
         | 
| 40 | 
            +
            ### Changed
         | 
| 41 | 
            +
            - executable tag in gemspec
         | 
| 42 | 
            +
            - updated sensu-plugin gem to 1.2.0
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            ## [0.0.2] - 2015-05-30
         | 
| 45 | 
            +
            ### Fixed
         | 
| 46 | 
            +
            - executable tag in gemspec
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            ## 0.0.1 - 2015-04-30
         | 
| 10 49 | 
             
            ### Added
         | 
| 11 50 | 
             
            - initial release
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/2.0.0...HEAD
         | 
| 53 | 
            +
            [2.0.0]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/1.0.0...2.0.0
         | 
| 54 | 
            +
            [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/0.1.0...1.0.0
         | 
| 55 | 
            +
            [0.1.0]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/0.0.3...0.1.0
         | 
| 56 | 
            +
            [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/0.0.2...0.0.3
         | 
| 57 | 
            +
            [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-postfix/compare/0.0.1...0.0.2
         | 
    
        data/README.md
    CHANGED
    
    | @@ -5,18 +5,18 @@ | |
| 5 5 | 
             
            [](https://codeclimate.com/github/sensu-plugins/sensu-plugins-postfix)
         | 
| 6 6 | 
             
            [](https://codeclimate.com/github/sensu-plugins/sensu-plugins-postfix)
         | 
| 7 7 | 
             
            [](https://gemnasium.com/sensu-plugins/sensu-plugins-postfix)
         | 
| 8 | 
            -
            [](https://codeship.com/projects/82844)
         | 
| 9 8 |  | 
| 10 9 | 
             
            ## Functionality
         | 
| 11 10 |  | 
| 12 11 | 
             
            ## Files
         | 
| 13 12 | 
             
             * bin/check-mailq.rb
         | 
| 13 | 
            +
             * bin/check-mail-delay.rb
         | 
| 14 14 | 
             
             * bin/metrics-mailq.rb
         | 
| 15 15 |  | 
| 16 16 | 
             
            ## Usage
         | 
| 17 17 |  | 
| 18 18 | 
             
            ## Installation
         | 
| 19 19 |  | 
| 20 | 
            -
            [Installation and Setup]( | 
| 20 | 
            +
            [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
         | 
| 21 21 |  | 
| 22 22 | 
             
            ## Notes
         | 
| @@ -0,0 +1,174 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # frozen_string_literal: false
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            #   check-mail-delay
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            # DESCRIPTION:
         | 
| 7 | 
            +
            #   Check for mail delays in the Postfix mail queue
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # OUTPUT:
         | 
| 10 | 
            +
            #   Plain text
         | 
| 11 | 
            +
            #
         | 
| 12 | 
            +
            # PLATFORMS:
         | 
| 13 | 
            +
            #   Linux; any platform with Postfix, egrep, and awk
         | 
| 14 | 
            +
            #
         | 
| 15 | 
            +
            # DEPENDENCIES:
         | 
| 16 | 
            +
            #   gem: sensu-plugin
         | 
| 17 | 
            +
            #
         | 
| 18 | 
            +
            # USAGE:
         | 
| 19 | 
            +
            #   ./check-mail-delay.rb [-p path_to_mailq] [-q queue] [-d delay] -w warn -c crit
         | 
| 20 | 
            +
            #   ./check-mail-delay.rb -w 100 -c 200
         | 
| 21 | 
            +
            #   ./check-mail-delay.rb -q hold -w 50 -c 100
         | 
| 22 | 
            +
            #   ./check-mail-delay.rb -q deferred -d 7200 -w 10 -c 20
         | 
| 23 | 
            +
            #   ./check-mail-delay.rb -p /usr/local/bin/mailq -q active -d 300 -w 100 -c 200
         | 
| 24 | 
            +
            #
         | 
| 25 | 
            +
            # NOTES:
         | 
| 26 | 
            +
            #   This is split out into its own check because, unlike `check-mailq`, it
         | 
| 27 | 
            +
            #   requires storing details about every message in the queue in memory, which
         | 
| 28 | 
            +
            #   may not be desirable on heavily-trafficked systems.
         | 
| 29 | 
            +
            #
         | 
| 30 | 
            +
            # LICENSE:
         | 
| 31 | 
            +
            #   Jonathan Hartman <j@hartman.io>
         | 
| 32 | 
            +
            #   Released under the same terms as Sensu (the MIT license); see LICENSE
         | 
| 33 | 
            +
            #   for details.
         | 
| 34 | 
            +
            #
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            require 'date'
         | 
| 37 | 
            +
            require 'sensu-plugin/check/cli'
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            class PostfixMailDelay < Sensu::Plugin::Check::CLI
         | 
| 40 | 
            +
              option :path,
         | 
| 41 | 
            +
                     short: '-p MAILQ_PATH',
         | 
| 42 | 
            +
                     long: '--path MAILQ_PATH',
         | 
| 43 | 
            +
                     description: 'Path to the postfix mailq binary.  Defaults to /usr/bin/mailq',
         | 
| 44 | 
            +
                     default: '/usr/bin/mailq'
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              option :queue,
         | 
| 47 | 
            +
                     short: '-q QUEUE_NAME',
         | 
| 48 | 
            +
                     long: '--queue QUEUE_NAME',
         | 
| 49 | 
            +
                     description: 'The queue to check (active, deferred, hold, ' \
         | 
| 50 | 
            +
                                  "incoming, or all). Defaults to 'all'",
         | 
| 51 | 
            +
                     default: 'all'
         | 
| 52 | 
            +
             | 
| 53 | 
            +
              option :delay,
         | 
| 54 | 
            +
                     short: '-d DELAY_IN_SECONDS',
         | 
| 55 | 
            +
                     long: '--delay DELAY_IN_SECONDS',
         | 
| 56 | 
            +
                     description: 'Age in seconds of messages to look for',
         | 
| 57 | 
            +
                     default: 3600
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              option :warning,
         | 
| 60 | 
            +
                     short: '-w WARN_NUM',
         | 
| 61 | 
            +
                     long: '--warnnum WARN_NUM',
         | 
| 62 | 
            +
                     description: 'Number of delayed messages considered a worth a warning',
         | 
| 63 | 
            +
                     required: true
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              option :critical,
         | 
| 66 | 
            +
                     short: '-c CRIT_NUM',
         | 
| 67 | 
            +
                     long: '--critnum CRIT_NUM',
         | 
| 68 | 
            +
                     description: 'Number of delayed messages considered to be critical',
         | 
| 69 | 
            +
                     required: true
         | 
| 70 | 
            +
             | 
| 71 | 
            +
              def run
         | 
| 72 | 
            +
                count = 0
         | 
| 73 | 
            +
                timestamps = send("queue_data_#{config[:queue]}")
         | 
| 74 | 
            +
                timestamps.each do |t|
         | 
| 75 | 
            +
                  count += 1 if check_age_of(t) > config[:delay].to_i
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                msg = "#{count} messages in the postfix " \
         | 
| 79 | 
            +
                      "#{config[:queue] == 'all' ? 'mail' : config[:queue]} queue older " \
         | 
| 80 | 
            +
                      "than #{config[:delay]} seconds"
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                if count >= config[:critical].to_i
         | 
| 83 | 
            +
                  critical msg
         | 
| 84 | 
            +
                elsif count >= config[:warning].to_i
         | 
| 85 | 
            +
                  warning msg
         | 
| 86 | 
            +
                else
         | 
| 87 | 
            +
                  ok msg
         | 
| 88 | 
            +
                end
         | 
| 89 | 
            +
              end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
              #
         | 
| 92 | 
            +
              # Parse a timestamp from the output of `mailq` and return that message's
         | 
| 93 | 
            +
              # age in seconds. The `mailq` command does not insert years in its output,
         | 
| 94 | 
            +
              # so we're going to make the (hopefully valid) assumption that there won't
         | 
| 95 | 
            +
              # be any queue items older than a year and just subtract one year if a queue
         | 
| 96 | 
            +
              # item appears to be from the future.
         | 
| 97 | 
            +
              #
         | 
| 98 | 
            +
              def check_age_of(timestamp)
         | 
| 99 | 
            +
                d = DateTime.parse("#{timestamp} #{DateTime.now.zone}")
         | 
| 100 | 
            +
                now = DateTime.now
         | 
| 101 | 
            +
                d = d.prev_year if d > now
         | 
| 102 | 
            +
                (now.to_time - d.to_time).to_i
         | 
| 103 | 
            +
              end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
              #
         | 
| 106 | 
            +
              # Return an array of timestamps for every message in the queue.
         | 
| 107 | 
            +
              #
         | 
| 108 | 
            +
              # `mailq` will either end with a summary line (-- 11 Kbytes in 31 Requests.)
         | 
| 109 | 
            +
              # or 'Mail queue is empty'.  Using grep rather than returning the entire
         | 
| 110 | 
            +
              # list since that could consume a significant amount of memory.
         | 
| 111 | 
            +
              #
         | 
| 112 | 
            +
              def queue_data_all
         | 
| 113 | 
            +
                queue = `#{config[:path]} | /bin/egrep '^[0-9A-F]+' | awk '{print $3, $4, $5, $6}'`
         | 
| 114 | 
            +
                queue.split("\n")
         | 
| 115 | 
            +
              end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
              #
         | 
| 118 | 
            +
              # Return an array of timestamps for messages in the active queue.
         | 
| 119 | 
            +
              #
         | 
| 120 | 
            +
              # Items in the active queue appear with a '*' next to the QID in `mailq`
         | 
| 121 | 
            +
              #
         | 
| 122 | 
            +
              def queue_data_active
         | 
| 123 | 
            +
                queue = `#{config[:path]} | /bin/egrep '^[0-9A-F]+\\*' | awk '{print $3, $4, $5, $6}'`
         | 
| 124 | 
            +
                queue.split("\n")
         | 
| 125 | 
            +
              end
         | 
| 126 | 
            +
             | 
| 127 | 
            +
              #
         | 
| 128 | 
            +
              # Return an array of timestamps for messages in the deferred queue.
         | 
| 129 | 
            +
              #
         | 
| 130 | 
            +
              # Items in the deferred queue do not have a special indicator in `mailq`,
         | 
| 131 | 
            +
              # but are followed by lines with deferral reasons in ()s.
         | 
| 132 | 
            +
              #
         | 
| 133 | 
            +
              def queue_data_deferred
         | 
| 134 | 
            +
                output = `#{config[:path]} | /bin/egrep -A 1 '^[0-9A-F]+ +'`.split("\n--\n")
         | 
| 135 | 
            +
                queue = []
         | 
| 136 | 
            +
                output.each do |o|
         | 
| 137 | 
            +
                  if o.lines[1].strip =~ /^\(.*\)$/
         | 
| 138 | 
            +
                    fields = o.lines[0].split
         | 
| 139 | 
            +
                    queue << "#{fields[2]} #{fields[3]} #{fields[4]} #{fields[5]}"
         | 
| 140 | 
            +
                  end
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
                queue
         | 
| 143 | 
            +
              end
         | 
| 144 | 
            +
             | 
| 145 | 
            +
              #
         | 
| 146 | 
            +
              # Return an array of timestamps for messages in the hold queue.
         | 
| 147 | 
            +
              #
         | 
| 148 | 
            +
              # Items in the hold queue appear with a '!' next to the QID in `mailq`.
         | 
| 149 | 
            +
              #
         | 
| 150 | 
            +
              def queue_data_hold
         | 
| 151 | 
            +
                queue = `#{config[:path]} | /bin/egrep '^[0-9A-F]+!' | awk '{print $3, $4, $5, $6}'`
         | 
| 152 | 
            +
                queue.split("\n")
         | 
| 153 | 
            +
              end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
              #
         | 
| 156 | 
            +
              # Return an array of timestamps for messages in the incoming queue.
         | 
| 157 | 
            +
              #
         | 
| 158 | 
            +
              # Items in the incoming queue have no special character indicating as much in
         | 
| 159 | 
            +
              # `mailq`. Inspecting `/var/spool/postfix` directly requires root or postfix
         | 
| 160 | 
            +
              # user permissions, so we have to get a little tricky here and find any queue
         | 
| 161 | 
            +
              # item with no special character and that's not followed by a deferal line.
         | 
| 162 | 
            +
              #
         | 
| 163 | 
            +
              def queue_data_incoming
         | 
| 164 | 
            +
                output = `#{config[:path]} | /bin/egrep -A 1 '^[0-9A-F]+ +'`.split("\n--\n")
         | 
| 165 | 
            +
                queue = []
         | 
| 166 | 
            +
                output.each do |o|
         | 
| 167 | 
            +
                  unless o.lines[1].strip =~ /^\(.*\)$/
         | 
| 168 | 
            +
                    fields = o.lines[0].split
         | 
| 169 | 
            +
                    queue << "#{fields[2]} #{fields[3]} #{fields[4]} #{fields[5]}"
         | 
| 170 | 
            +
                  end
         | 
| 171 | 
            +
                end
         | 
| 172 | 
            +
                queue
         | 
| 173 | 
            +
              end
         | 
| 174 | 
            +
            end
         | 
    
        data/bin/check-mailq.rb
    CHANGED
    
    | @@ -1,12 +1,36 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # frozen_string_literal: false
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            #   check-mailq
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            # DESCRIPTION:
         | 
| 7 | 
            +
            #   Check the size of the Postfix mail queue
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # OUTPUT:
         | 
| 10 | 
            +
            #   Plain text
         | 
| 11 | 
            +
            #
         | 
| 12 | 
            +
            # PLATFORMS:
         | 
| 13 | 
            +
            #   Linux; any platform with Postfix and egrep
         | 
| 14 | 
            +
            #
         | 
| 15 | 
            +
            # DEPENDENCIES:
         | 
| 16 | 
            +
            #   gem: sensu-plugin
         | 
| 17 | 
            +
            #
         | 
| 18 | 
            +
            # USAGE:
         | 
| 19 | 
            +
            #   ./check-mailq.rb [-p path_to_mailq] [-q queue] -w warn -c crit
         | 
| 20 | 
            +
            #   ./check-mailq.rb -w 200 -c 400
         | 
| 21 | 
            +
            #   ./check-mailq.rb -q deferred -w 100 -c 200
         | 
| 22 | 
            +
            #   ./check-mailq.rb -p /usr/local/bin/mailq -q active -w 50 -c 100
         | 
| 2 23 | 
             
            #
         | 
| 3 | 
            -
            #  | 
| 4 | 
            -
            #  | 
| 24 | 
            +
            # NOTES:
         | 
| 25 | 
            +
            #   This is split out into its own check because, unlike `check-mailq`, it
         | 
| 26 | 
            +
            #   requires storing details about every message in the queue in memory, which
         | 
| 27 | 
            +
            #   may not be desirable on heavily-trafficked systems.
         | 
| 5 28 | 
             
            #
         | 
| 6 | 
            -
            #  | 
| 29 | 
            +
            # LICENSE:
         | 
| 30 | 
            +
            #   Justin Lambert <jlambert@letsevenup.com>
         | 
| 31 | 
            +
            #   Released under the same terms as Sensu (the MIT license); see LICENSE
         | 
| 32 | 
            +
            #   for details.
         | 
| 7 33 | 
             
            #
         | 
| 8 | 
            -
            # Released under the same terms as Sensu (the MIT license); see LICENSE
         | 
| 9 | 
            -
            # for details.
         | 
| 10 34 |  | 
| 11 35 | 
             
            require 'sensu-plugin/check/cli'
         | 
| 12 36 |  | 
| @@ -17,6 +41,13 @@ class PostfixMailq < Sensu::Plugin::Check::CLI | |
| 17 41 | 
             
                     description: 'Path to the postfix mailq binary.  Defaults to /usr/bin/mailq',
         | 
| 18 42 | 
             
                     default: '/usr/bin/mailq'
         | 
| 19 43 |  | 
| 44 | 
            +
              option :queue,
         | 
| 45 | 
            +
                     short: '-q QUEUE_NAME',
         | 
| 46 | 
            +
                     long: '--queue QUEUE_NAME',
         | 
| 47 | 
            +
                     description: 'The queue to check (active, deferred, hold, ' \
         | 
| 48 | 
            +
                                  "incoming, or all). Defaults to 'all'",
         | 
| 49 | 
            +
                     default: 'all'
         | 
| 50 | 
            +
             | 
| 20 51 | 
             
              option :warning,
         | 
| 21 52 | 
             
                     short: '-w WARN_NUM',
         | 
| 22 53 | 
             
                     long: '--warnnum WARN_NUM',
         | 
| @@ -30,24 +61,60 @@ class PostfixMailq < Sensu::Plugin::Check::CLI | |
| 30 61 | 
             
                     required: true
         | 
| 31 62 |  | 
| 32 63 | 
             
              def run
         | 
| 33 | 
            -
                 | 
| 34 | 
            -
                #  | 
| 35 | 
            -
                # list since that could consume a significant amount of memory.
         | 
| 36 | 
            -
                queue = `#{config[:path]} | /bin/egrep '[0-9]+ Kbytes in [0-9]+ Request\|Mail queue is empty'`
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                # Set the number of messages in the queue
         | 
| 39 | 
            -
                if queue == 'Mail queue is empty'
         | 
| 40 | 
            -
                  num_messages = 0
         | 
| 41 | 
            -
                else
         | 
| 42 | 
            -
                  num_messages = queue.split(' ')[4].to_i
         | 
| 43 | 
            -
                end
         | 
| 64 | 
            +
                num_messages = send("check_queue_size_#{config[:queue]}")
         | 
| 65 | 
            +
                msg = "#{num_messages} messages in the postfix #{config[:queue] == 'all' ? 'mail' : config[:queue]} queue"
         | 
| 44 66 |  | 
| 45 67 | 
             
                if num_messages >= config[:critical].to_i
         | 
| 46 | 
            -
                  critical  | 
| 68 | 
            +
                  critical msg
         | 
| 47 69 | 
             
                elsif num_messages >= config[:warning].to_i
         | 
| 48 | 
            -
                  warning  | 
| 70 | 
            +
                  warning msg
         | 
| 49 71 | 
             
                else
         | 
| 50 | 
            -
                  ok  | 
| 72 | 
            +
                  ok msg
         | 
| 51 73 | 
             
                end
         | 
| 52 74 | 
             
              end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
              #
         | 
| 77 | 
            +
              # Return the number of messages in all the queues.
         | 
| 78 | 
            +
              #
         | 
| 79 | 
            +
              # `mailq` will either end with a summary line (-- 11 Kbytes in 31 Requests.)
         | 
| 80 | 
            +
              # or 'Mail queue is empty'.  Using grep rather than returning the entire
         | 
| 81 | 
            +
              # list since that could consume a significant amount of memory.
         | 
| 82 | 
            +
              #
         | 
| 83 | 
            +
              def check_queue_size_all
         | 
| 84 | 
            +
                queue = `#{config[:path]} | /bin/egrep '[0-9]+ Kbytes in [0-9]+ Request\|Mail queue is empty'`
         | 
| 85 | 
            +
                queue == 'Mail queue is empty' ? 0 : queue.split(' ')[4].to_i
         | 
| 86 | 
            +
              end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
              #
         | 
| 89 | 
            +
              # Items in the active queue appear with a '*' next to the QID in `mailq`
         | 
| 90 | 
            +
              #
         | 
| 91 | 
            +
              def check_queue_size_active
         | 
| 92 | 
            +
                `#{config[:path]} | /bin/egrep -c '^[0-9A-F]+\\*'`.to_i
         | 
| 93 | 
            +
              end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
              #
         | 
| 96 | 
            +
              # Items in the deferred queue do not have a special indicator in `mailq`,
         | 
| 97 | 
            +
              # but are followed by lines with deferral reasons in ()s.
         | 
| 98 | 
            +
              #
         | 
| 99 | 
            +
              def check_queue_size_deferred
         | 
| 100 | 
            +
                `#{config[:path]} | /bin/grep -c '^ *(.*)$'`.to_i
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              #
         | 
| 104 | 
            +
              # Items in the hold queue appear with a '!' next to the QID in `mailq`.
         | 
| 105 | 
            +
              #
         | 
| 106 | 
            +
              def check_queue_size_hold
         | 
| 107 | 
            +
                `#{config[:path]} | /bin/egrep -c '^[0-9A-F]+!'`.to_i
         | 
| 108 | 
            +
              end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
              #
         | 
| 111 | 
            +
              # Items in the incoming queue have no special character indicating as much in
         | 
| 112 | 
            +
              # `mailq`. Inspecting `/var/spool/postfix` directly requires root or postfix
         | 
| 113 | 
            +
              # user permissions, so let's try to be crafty and subtract the number of
         | 
| 114 | 
            +
              # deferred messages from the total number of messages with no special
         | 
| 115 | 
            +
              # character appended to their QID.
         | 
| 116 | 
            +
              #
         | 
| 117 | 
            +
              def check_queue_size_incoming
         | 
| 118 | 
            +
                `#{config[:path]} | /bin/egrep -c '^[0-9A-F]+ +'`.to_i - check_queue_size_deferred
         | 
| 119 | 
            +
              end
         | 
| 53 120 | 
             
            end
         | 
    
        data/bin/metrics-mailq.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 | 
            -
            #
         | 
| 2 | 
            +
            # frozen_string_literal: false
         | 
| 3 | 
            +
             | 
| 3 4 | 
             
            # Postfix Mailq metrics
         | 
| 4 5 | 
             
            # ===
         | 
| 5 6 | 
             
            #
         | 
| @@ -38,15 +39,15 @@ class PostfixMailqMetrics < Sensu::Plugin::Metric::CLI::Graphite | |
| 38 39 |  | 
| 39 40 | 
             
              def run
         | 
| 40 41 | 
             
                timestamp = Time.now.to_i
         | 
| 41 | 
            -
                queue = `#{config[:path]} | /bin/egrep '[0-9]+ Kbytes in [0-9]+ Request\|Mail queue is empty'`
         | 
| 42 | 
            +
                queue = `#{config[:path]} 2>&1 | /bin/egrep '[0-9]+ Kbytes in [0-9]+ Request\|Mail queue is empty'`
         | 
| 42 43 | 
             
                # Set the number of messages in the queue
         | 
| 43 | 
            -
                if queue == 'Mail queue is empty'
         | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 44 | 
            +
                num_messages = if queue == 'Mail queue is empty'
         | 
| 45 | 
            +
                                 0
         | 
| 46 | 
            +
                               else
         | 
| 47 | 
            +
                                 queue.split(' ')[4].to_i
         | 
| 48 | 
            +
                               end
         | 
| 48 49 | 
             
                graphite_name = config[:scheme] + '.postfixMailqCount'
         | 
| 49 | 
            -
                output  | 
| 50 | 
            +
                output graphite_name.to_s, num_messages, timestamp
         | 
| 50 51 | 
             
                ok
         | 
| 51 52 | 
             
              end
         | 
| 52 53 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,135 +1,127 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sensu-plugins-postfix
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sensu-Plugins and contributors
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 | 
            -
            cert_chain:
         | 
| 11 | 
            -
            -  | 
| 12 | 
            -
              -----BEGIN CERTIFICATE-----
         | 
| 13 | 
            -
              MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
         | 
| 14 | 
            -
              am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
         | 
| 15 | 
            -
              A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
         | 
| 16 | 
            -
              CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
         | 
| 17 | 
            -
              LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
         | 
| 18 | 
            -
              CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
         | 
| 19 | 
            -
              zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
         | 
| 20 | 
            -
              qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
         | 
| 21 | 
            -
              k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
         | 
| 22 | 
            -
              oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
         | 
| 23 | 
            -
              0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
         | 
| 24 | 
            -
              HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
         | 
| 25 | 
            -
              QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
         | 
| 26 | 
            -
              MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
         | 
| 27 | 
            -
              rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
         | 
| 28 | 
            -
              UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
         | 
| 29 | 
            -
              JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
         | 
| 30 | 
            -
              8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
         | 
| 31 | 
            -
              HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
         | 
| 32 | 
            -
              -----END CERTIFICATE-----
         | 
| 33 | 
            -
            date: 2015-06-04 00:00:00.000000000 Z
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2020-08-24 00:00:00.000000000 Z
         | 
| 34 12 | 
             
            dependencies:
         | 
| 35 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 36 14 | 
             
              name: sensu-plugin
         | 
| 37 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 38 16 | 
             
                requirements:
         | 
| 39 | 
            -
                - -  | 
| 17 | 
            +
                - - "~>"
         | 
| 40 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 41 | 
            -
                    version:  | 
| 19 | 
            +
                    version: '4.0'
         | 
| 42 20 | 
             
              type: :runtime
         | 
| 43 21 | 
             
              prerelease: false
         | 
| 44 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 45 23 | 
             
                requirements:
         | 
| 46 | 
            -
                - -  | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '4.0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: bundler
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '2.1'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 47 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 48 | 
            -
                    version:  | 
| 40 | 
            +
                    version: '2.1'
         | 
| 49 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 50 42 | 
             
              name: codeclimate-test-reporter
         | 
| 51 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 52 44 | 
             
                requirements:
         | 
| 53 45 | 
             
                - - "~>"
         | 
| 54 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 55 | 
            -
                    version: '0 | 
| 47 | 
            +
                    version: '1.0'
         | 
| 56 48 | 
             
              type: :development
         | 
| 57 49 | 
             
              prerelease: false
         | 
| 58 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 59 51 | 
             
                requirements:
         | 
| 60 52 | 
             
                - - "~>"
         | 
| 61 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            -
                    version: '0 | 
| 54 | 
            +
                    version: '1.0'
         | 
| 63 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 64 | 
            -
              name:  | 
| 56 | 
            +
              name: github-markup
         | 
| 65 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 66 58 | 
             
                requirements:
         | 
| 67 59 | 
             
                - - "~>"
         | 
| 68 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 69 | 
            -
                    version: '0 | 
| 61 | 
            +
                    version: '3.0'
         | 
| 70 62 | 
             
              type: :development
         | 
| 71 63 | 
             
              prerelease: false
         | 
| 72 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 65 | 
             
                requirements:
         | 
| 74 66 | 
             
                - - "~>"
         | 
| 75 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            -
                    version: '0 | 
| 68 | 
            +
                    version: '3.0'
         | 
| 77 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 78 | 
            -
              name:  | 
| 70 | 
            +
              name: kitchen-localhost
         | 
| 79 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 80 72 | 
             
                requirements:
         | 
| 81 73 | 
             
                - - "~>"
         | 
| 82 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 83 | 
            -
                    version: '3 | 
| 75 | 
            +
                    version: '0.3'
         | 
| 84 76 | 
             
              type: :development
         | 
| 85 77 | 
             
              prerelease: false
         | 
| 86 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 87 79 | 
             
                requirements:
         | 
| 88 80 | 
             
                - - "~>"
         | 
| 89 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 90 | 
            -
                    version: '3 | 
| 82 | 
            +
                    version: '0.3'
         | 
| 91 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 92 | 
            -
              name:  | 
| 84 | 
            +
              name: kitchen-vagrant
         | 
| 93 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 94 86 | 
             
                requirements:
         | 
| 95 87 | 
             
                - - "~>"
         | 
| 96 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 97 | 
            -
                    version:  | 
| 89 | 
            +
                    version: 1.5.2
         | 
| 98 90 | 
             
              type: :development
         | 
| 99 91 | 
             
              prerelease: false
         | 
| 100 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 101 93 | 
             
                requirements:
         | 
| 102 94 | 
             
                - - "~>"
         | 
| 103 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                    version:  | 
| 96 | 
            +
                    version: 1.5.2
         | 
| 105 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 106 | 
            -
              name:  | 
| 98 | 
            +
              name: pry
         | 
| 107 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 108 100 | 
             
                requirements:
         | 
| 109 101 | 
             
                - - "~>"
         | 
| 110 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 111 | 
            -
                    version: '10 | 
| 103 | 
            +
                    version: '0.10'
         | 
| 112 104 | 
             
              type: :development
         | 
| 113 105 | 
             
              prerelease: false
         | 
| 114 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 115 107 | 
             
                requirements:
         | 
| 116 108 | 
             
                - - "~>"
         | 
| 117 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 118 | 
            -
                    version: '10 | 
| 110 | 
            +
                    version: '0.10'
         | 
| 119 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 120 | 
            -
              name:  | 
| 112 | 
            +
              name: rake
         | 
| 121 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 122 114 | 
             
                requirements:
         | 
| 123 115 | 
             
                - - "~>"
         | 
| 124 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version: ' | 
| 117 | 
            +
                    version: '13.0'
         | 
| 126 118 | 
             
              type: :development
         | 
| 127 119 | 
             
              prerelease: false
         | 
| 128 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 129 121 | 
             
                requirements:
         | 
| 130 122 | 
             
                - - "~>"
         | 
| 131 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 132 | 
            -
                    version: ' | 
| 124 | 
            +
                    version: '13.0'
         | 
| 133 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 134 126 | 
             
              name: redcarpet
         | 
| 135 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -145,42 +137,77 @@ dependencies: | |
| 145 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 146 138 | 
             
                    version: '3.2'
         | 
| 147 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 148 | 
            -
              name:  | 
| 140 | 
            +
              name: rspec
         | 
| 149 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 150 142 | 
             
                requirements:
         | 
| 151 143 | 
             
                - - "~>"
         | 
| 152 144 | 
             
                  - !ruby/object:Gem::Version
         | 
| 153 | 
            -
                    version: ' | 
| 145 | 
            +
                    version: '3.1'
         | 
| 154 146 | 
             
              type: :development
         | 
| 155 147 | 
             
              prerelease: false
         | 
| 156 148 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 157 149 | 
             
                requirements:
         | 
| 158 150 | 
             
                - - "~>"
         | 
| 159 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 160 | 
            -
                    version: ' | 
| 152 | 
            +
                    version: '3.1'
         | 
| 161 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 162 | 
            -
              name:  | 
| 154 | 
            +
              name: rubocop
         | 
| 163 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 164 156 | 
             
                requirements:
         | 
| 165 157 | 
             
                - - "~>"
         | 
| 166 158 | 
             
                  - !ruby/object:Gem::Version
         | 
| 167 | 
            -
                    version:  | 
| 159 | 
            +
                    version: 0.81.0
         | 
| 168 160 | 
             
              type: :development
         | 
| 169 161 | 
             
              prerelease: false
         | 
| 170 162 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 171 163 | 
             
                requirements:
         | 
| 172 164 | 
             
                - - "~>"
         | 
| 173 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 174 | 
            -
                    version:  | 
| 175 | 
            -
             | 
| 166 | 
            +
                    version: 0.81.0
         | 
| 167 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 168 | 
            +
              name: test-kitchen
         | 
| 169 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 170 | 
            +
                requirements:
         | 
| 171 | 
            +
                - - "~>"
         | 
| 172 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 173 | 
            +
                    version: '1.5'
         | 
| 174 | 
            +
              type: :development
         | 
| 175 | 
            +
              prerelease: false
         | 
| 176 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 | 
            +
                requirements:
         | 
| 178 | 
            +
                - - "~>"
         | 
| 179 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 180 | 
            +
                    version: '1.5'
         | 
| 181 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 182 | 
            +
              name: yard
         | 
| 183 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 184 | 
            +
                requirements:
         | 
| 185 | 
            +
                - - "~>"
         | 
| 186 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 187 | 
            +
                    version: '0.8'
         | 
| 188 | 
            +
              type: :development
         | 
| 189 | 
            +
              prerelease: false
         | 
| 190 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 191 | 
            +
                requirements:
         | 
| 192 | 
            +
                - - "~>"
         | 
| 193 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 194 | 
            +
                    version: '0.8'
         | 
| 195 | 
            +
            description: |-
         | 
| 196 | 
            +
              This plugin provides native Postfix instrumentation
         | 
| 197 | 
            +
                                            for monitoring and metrics collection of the mail
         | 
| 198 | 
            +
                                            queue via `mailq`
         | 
| 176 199 | 
             
            email: "<sensu-users@googlegroups.com>"
         | 
| 177 | 
            -
            executables: | 
| 200 | 
            +
            executables:
         | 
| 201 | 
            +
            - check-mailq.rb
         | 
| 202 | 
            +
            - metrics-mailq.rb
         | 
| 203 | 
            +
            - check-mail-delay.rb
         | 
| 178 204 | 
             
            extensions: []
         | 
| 179 205 | 
             
            extra_rdoc_files: []
         | 
| 180 206 | 
             
            files:
         | 
| 181 207 | 
             
            - CHANGELOG.md
         | 
| 182 208 | 
             
            - LICENSE
         | 
| 183 209 | 
             
            - README.md
         | 
| 210 | 
            +
            - bin/check-mail-delay.rb
         | 
| 184 211 | 
             
            - bin/check-mailq.rb
         | 
| 185 212 | 
             
            - bin/metrics-mailq.rb
         | 
| 186 213 | 
             
            - lib/sensu-plugins-postfix.rb
         | 
| @@ -189,7 +216,7 @@ homepage: https://github.com/sensu-plugins/sensu-plugins-postfix | |
| 189 216 | 
             
            licenses:
         | 
| 190 217 | 
             
            - MIT
         | 
| 191 218 | 
             
            metadata:
         | 
| 192 | 
            -
              maintainer:  | 
| 219 | 
            +
              maintainer: sensu-plugin
         | 
| 193 220 | 
             
              development_status: active
         | 
| 194 221 | 
             
              production_status: unstable - testing recommended
         | 
| 195 222 | 
             
              release_draft: 'false'
         | 
| @@ -203,15 +230,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 203 230 | 
             
              requirements:
         | 
| 204 231 | 
             
              - - ">="
         | 
| 205 232 | 
             
                - !ruby/object:Gem::Version
         | 
| 206 | 
            -
                  version:  | 
| 233 | 
            +
                  version: '2.3'
         | 
| 207 234 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 208 235 | 
             
              requirements:
         | 
| 209 236 | 
             
              - - ">="
         | 
| 210 237 | 
             
                - !ruby/object:Gem::Version
         | 
| 211 238 | 
             
                  version: '0'
         | 
| 212 239 | 
             
            requirements: []
         | 
| 213 | 
            -
             | 
| 214 | 
            -
            rubygems_version: 2.4.6
         | 
| 240 | 
            +
            rubygems_version: 3.0.8
         | 
| 215 241 | 
             
            signing_key: 
         | 
| 216 242 | 
             
            specification_version: 4
         | 
| 217 243 | 
             
            summary: Sensu plugins for postfix
         | 
    
        checksums.yaml.gz.sig
    DELETED
    
    
    
        data.tar.gz.sig
    DELETED
    
    | Binary file | 
    
        metadata.gz.sig
    DELETED
    
    | Binary file |