sensu-plugins-edgelab 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/check-apt-expired-keys.rb +93 -0
  3. metadata +3 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bad7c4a61eb380e72961d4b65286755233621f5
4
- data.tar.gz: 766ab2d239282b66a7d0ce1ccb5a2351ca2fc8c5
3
+ metadata.gz: 82239604e6dd622edcfb47f6f612dcb825700e41
4
+ data.tar.gz: 65f687f3ee8a645cb07d767e34f4446f94b02b0a
5
5
  SHA512:
6
- metadata.gz: 2b6bf8d1481ce10393f7d22c706d4f50a6065cf353a41c99dd7810e2f92f297619887b9287116259a85f7e5bfb57c323af260137591d6f5a6613915ac8e3dd8e
7
- data.tar.gz: 37c1588951fce243bd29d3c4d51b490adc47efa35824601406f824e00a59d3ac1c150da9e19082b723181c136e3d596dcfbc54607f1e3faeafdfa5bfaa0220b0
6
+ metadata.gz: d1f693e3d1a564698ee290cbec139fdb74e0ca46ecf1994c1fbc6e9720832eb8b9aa73e02bcd8d0c11d0cb24dda03cc9ad7cad34cae18877655e976c075bbecd
7
+ data.tar.gz: 3c486951f0a28fdc5dcf59abe8f1dd777a21d71b190c49f8098aa32510351a37d26cb2ce632d640ed2e2c50d37aaeed8355f4da8b0a37026cec8a013fcfb164b
@@ -0,0 +1,93 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-apt-expired-keys
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin reports expired GPG key used for APT signing.
7
+ #
8
+ # OUTPUT:
9
+ # plain text
10
+ #
11
+ # PLATFORMS:
12
+ # Debian
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-plugin
16
+ #
17
+ # USAGE:
18
+ # example commands
19
+ #
20
+ # NOTES:
21
+ # Does it behave differently on specific platforms, specific use cases, etc
22
+ #
23
+ # LICENSE:
24
+ # Copyright 2015 EdgeLaboratories.
25
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
26
+ # for details.
27
+ #
28
+
29
+ require 'rubygems' if RUBY_VERSION < '1.9.0'
30
+ require 'sensu-plugin/check/cli'
31
+
32
+ class APTKey < Sensu::Plugin::Check::CLI
33
+ def run
34
+ # Must be executed as root in order to access APT keys list
35
+ if Process.uid != 0
36
+ return unknown 'Must be executed as root user'
37
+ end
38
+
39
+ expired = expired_keys
40
+
41
+ if expired.count > 0
42
+ if expired.count == 1
43
+ verb = 'is'
44
+ noun = 'key'
45
+ else
46
+ verb = 'are'
47
+ noun = 'keys'
48
+ end
49
+ warning "There #{verb} #{expired.count} expired APT #{noun}: #{expired.join('; ')}"
50
+ else
51
+ ok 'No APT expired keys'
52
+ end
53
+ end
54
+
55
+ def expired_keys
56
+ expired = []
57
+ IO.popen('apt-key list') do |cmd|
58
+ current_key_id = nil
59
+ current_key_name = nil
60
+
61
+ # We try to parse output like this:
62
+ # pub 2048R/B999A372 2010-08-12 [expired: 2015-08-13]
63
+ # uid Riptano Package Repository <paul@riptano.com>
64
+
65
+ cmd.each do |line|
66
+ # Parse and extract the expired public key ID
67
+ match = /^pub[ ]+[^\/]+\/(.*) .* \[expired: /.match(line)
68
+ unless match.nil?
69
+ current_key_id = match.captures[0]
70
+ end
71
+
72
+ # Try to get the more user-friendly name. Sometimes, it doesn't
73
+ # contain enough information to be useful, but it still
74
+ # slightly better than the key ID.
75
+ match = /^uid[ ]+(.*)$/.match(line)
76
+ unless match.nil?
77
+ current_key_name = match.captures[0]
78
+ end
79
+
80
+ # If we reach an empty line and we parsed expired key, save
81
+ # them and reset everything for the next keys after.
82
+ if line =~ /^$/
83
+ if current_key_id
84
+ expired.push "#{current_key_name || 'unknown key uid'} (#{current_key_id})"
85
+ end
86
+ current_key_id = nil
87
+ current_key_name = nil
88
+ end
89
+ end
90
+ end
91
+ expired
92
+ end
93
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-edgelab
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgelab
@@ -83,10 +83,12 @@ dependencies:
83
83
  description: Sensu plugins developed by Edgelab
84
84
  email:
85
85
  executables:
86
+ - check-apt-expired-keys.rb
86
87
  - check-nomad-jobs.rb
87
88
  extensions: []
88
89
  extra_rdoc_files: []
89
90
  files:
91
+ - bin/check-apt-expired-keys.rb
90
92
  - bin/check-nomad-jobs.rb
91
93
  homepage:
92
94
  licenses: []