checkson 0.2 → 0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2222386bd03c3421453df6fc47a6d91343a68a4e10f2eb33a5ca3108c9f39147
4
- data.tar.gz: d234523870e13a2bdd163b101a0f82e270205e80929c013adda59d4d9a51b388
3
+ metadata.gz: 0d96211a8a64dbfbc3d84af7825432105a02c024fe2309b6dc09993ad6d402df
4
+ data.tar.gz: e133df83fcdfdb21c3f2c48ac941edbf17e21d3ddd3a9b6415f25df979fd0d87
5
5
  SHA512:
6
- metadata.gz: 1255ff0bc3a4e7393c82a0a404b17090397fe5956a7e389d0069d66790bfe262418baf197871f667e69e47843d10fc3c1fae0b514d49a7f91547b8688ce074b5
7
- data.tar.gz: b52e63e8fc994b9d5310c12c315830ec58e0bf2537d8fbd0d3f45a2881ce41a35f9284e1e7b46baeb25257cf6fb581c13d59f991ac12c914c88f67cc4193c15e
6
+ metadata.gz: 9df0c30156b15cbb707d7ef889f731b835058a7d5516907d2c164c452cd34d79ce95417c931431d8f2365133fe30e280ef4be9851c7cd99ab8036359673b5229
7
+ data.tar.gz: e59a8be148940843a85c7d21f572a6796231bfd5df8b653d57c886a91d36337984f8bf6a27fe7b0877f22566673549811072199b0436f183abba22425a427bab
@@ -2,3 +2,4 @@
2
2
 
3
3
  require_relative 'checks/base'
4
4
  require_relative 'checks/shell'
5
+ require_relative 'checks/dns'
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Base
4
- attr_reader :status
4
+ attr_reader :status, :messages
5
5
 
6
6
  def initialize(_opts = {})
7
+ @messages = []
7
8
  @status = :ok
8
9
  end
9
10
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ class DNS < Base
4
+ def initialize(opts = {})
5
+ @opts = { domain: 'heise.de',
6
+ timeout: 1,
7
+ host: 'localhost' }.merge(opts)
8
+ super()
9
+ end
10
+
11
+ def check
12
+ require 'resolv'
13
+ resolver = Resolv::DNS.new(nameserver: [@opts[:host]])
14
+ resolver.timeouts = @opts[:timeout]
15
+ begin
16
+ resolver.getaddress(@opts[:domain])
17
+ rescue Resolv::ResolvTimeout
18
+ failed!
19
+ log("Resolving #{@opts[:domain]} timed out")
20
+ rescue Resolv::ResolvError
21
+ failed!
22
+ log("Could not resolve #{@opts[:domain]}")
23
+ end
24
+ end
25
+ end
@@ -20,11 +20,17 @@ module Checkson
20
20
 
21
21
  def start_checks
22
22
  @config = Checkson::Config.new(@opts[:config])
23
+
24
+ @num_checks = @config.checks.length
25
+ @num_ok = 0
23
26
  @config.checks.each do |check|
24
27
  c = check.klass.new(check.params)
25
28
  c.check
29
+ @num_ok += 1 if c.status.eql? :ok
26
30
  output c, check
27
31
  end
32
+ @num_failed = (@num_checks - @num_ok)
33
+ puts "\n#{@num_checks} checks performed: #{@num_ok} ok, #{@num_failed} failed"
28
34
  end
29
35
 
30
36
  def set_default_options
@@ -54,11 +60,8 @@ module Checkson
54
60
  puts "\033[#{status_column}G\033[1;32mOK\033[0m"
55
61
  when :failed
56
62
  puts "\033[#{status_column}G\033[1;31mFAILED\033[0m"
57
- unless check.help.empty?
58
- check.help.each do |message|
59
- puts "--> #{message}"
60
- end
61
- end
63
+ check.help.each { |message| puts "--> #{message}" } unless check.help.empty?
64
+ sym.messages.each { |message| puts " * #{message}" }
62
65
  end
63
66
  end
64
67
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: checkson
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Bauer
@@ -22,6 +22,7 @@ files:
22
22
  - lib/checkson.rb
23
23
  - lib/checkson/check.rb
24
24
  - lib/checkson/checks/base.rb
25
+ - lib/checkson/checks/dns.rb
25
26
  - lib/checkson/checks/shell.rb
26
27
  - lib/checkson/config.rb
27
28
  - lib/checkson/context.rb