hq-check-drill 0.0.1
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 +7 -0
- data/bin/hq-check-drill +8 -0
- data/features/bin-wrapper.feature +19 -0
- data/features/check-drill.feature +49 -0
- data/features/support/env.rb +2 -0
- data/features/support/steps.rb +54 -0
- data/lib/hq/check-drill/script.rb +74 -0
- metadata +180 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b858a5f2f3da01a9d22cdb35c658b98c1e9d6926
|
4
|
+
data.tar.gz: 3bc5e121a32adb93a23932c31914560f2b8cad99
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5f8aa6616c0dfdca977f70a11797c5acfa386a8fee5cf2ac521b9591313dbe3330c3e5ee3b57068091f4857b99882178116e3308b2b363823b15fff02727a5a7
|
7
|
+
data.tar.gz: 0b2b548b76b078cec0e9aa5d0971885ab94e0f08c59e100e2c431048d45ae2e061de82d90dcd114998d067cca9001a0b6962e5b1813435c8fb9ce75675124d3e
|
data/bin/hq-check-drill
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Feature: Bin wrapper
|
2
|
+
|
3
|
+
Scenario:
|
4
|
+
|
5
|
+
Given a file "default.config":
|
6
|
+
"""
|
7
|
+
<hq-check-drill-config/>
|
8
|
+
"""
|
9
|
+
|
10
|
+
When I execute
|
11
|
+
"""
|
12
|
+
hq-check-drill --config default.config
|
13
|
+
"""
|
14
|
+
|
15
|
+
Then the exit status should be 0
|
16
|
+
And the stdout should be:
|
17
|
+
"""
|
18
|
+
Drill OK: no drills just now
|
19
|
+
"""
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Feature: Check if drill active
|
2
|
+
|
3
|
+
Background:
|
4
|
+
|
5
|
+
Given a file "default.config":
|
6
|
+
"""
|
7
|
+
<hq-check-drill-config>
|
8
|
+
<drill level="critical" message="this is a drill">
|
9
|
+
<match template="%A" regex="Monday"/>
|
10
|
+
<match template="%H" regex="09"/>
|
11
|
+
</drill>
|
12
|
+
</hq-check-drill-config>
|
13
|
+
"""
|
14
|
+
|
15
|
+
Scenario: Critical drill active
|
16
|
+
|
17
|
+
Given the time is 2013-05-13 09:30:00
|
18
|
+
|
19
|
+
When I invoke check-drill --config default.config
|
20
|
+
|
21
|
+
Then the exit status should be 2
|
22
|
+
And the stdout should be:
|
23
|
+
"""
|
24
|
+
Drill CRITICAL: this is a drill
|
25
|
+
"""
|
26
|
+
|
27
|
+
Scenario: Wrong day
|
28
|
+
|
29
|
+
Given the time is 2013-05-14 09:30:00
|
30
|
+
|
31
|
+
When I invoke check-drill --config default.config
|
32
|
+
|
33
|
+
Then the exit status should be 0
|
34
|
+
And the stdout should be:
|
35
|
+
"""
|
36
|
+
Drill OK: no drills just now
|
37
|
+
"""
|
38
|
+
|
39
|
+
Scenario: Wrong time
|
40
|
+
|
41
|
+
Given the time is 2013-05-13 10:30:00
|
42
|
+
|
43
|
+
When I invoke check-drill --config default.config
|
44
|
+
|
45
|
+
Then the exit status should be 0
|
46
|
+
And the stdout should be:
|
47
|
+
"""
|
48
|
+
Drill OK: no drills just now
|
49
|
+
"""
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
3
|
+
require "hq/check-drill/script"
|
4
|
+
|
5
|
+
When /^I execute$/ do
|
6
|
+
|cmd_str|
|
7
|
+
|
8
|
+
stdout_temp = Tempfile.new "cuke-stdout-"
|
9
|
+
stderr_temp = Tempfile.new "cuke-stderr-"
|
10
|
+
|
11
|
+
system "(#{cmd_str}) >#{stdout_temp.path} 2>#{stderr_temp.path}"
|
12
|
+
|
13
|
+
@command_status = $?.exitstatus
|
14
|
+
|
15
|
+
@command_stdout = File.read(stdout_temp.path)
|
16
|
+
@command_stderr = File.read(stderr_temp.path)
|
17
|
+
|
18
|
+
stdout_temp.unlink
|
19
|
+
stderr_temp.unlink
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
When /^I invoke check\-drill (.*?)$/ do
|
24
|
+
|args_str|
|
25
|
+
|
26
|
+
@script = HQ::CheckDrill::Script.new
|
27
|
+
|
28
|
+
@script.args = Shellwords.split args_str
|
29
|
+
@script.stdout = StringIO.new
|
30
|
+
@script.stderr = StringIO.new
|
31
|
+
|
32
|
+
@script.main
|
33
|
+
|
34
|
+
@command_status = @script.status
|
35
|
+
@command_stdout = @script.stdout.string
|
36
|
+
@command_stderr = @script.stderr.string
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
Then /^the exit status should be (\d+)$/ do
|
41
|
+
|status_str|
|
42
|
+
|
43
|
+
status = status_str.to_i
|
44
|
+
|
45
|
+
@command_status.should == status
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
Then /^the stdout should be:$/ do
|
50
|
+
|message|
|
51
|
+
|
52
|
+
@command_stdout.strip.should == message.strip
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require "hq/tools/check-script"
|
2
|
+
require "hq/tools/getopt"
|
3
|
+
|
4
|
+
require "xml"
|
5
|
+
|
6
|
+
module HQ
|
7
|
+
module CheckDrill
|
8
|
+
|
9
|
+
class Script < Tools::CheckScript
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
super
|
13
|
+
@name = "Drill"
|
14
|
+
end
|
15
|
+
|
16
|
+
def process_args
|
17
|
+
|
18
|
+
@opts, @args =
|
19
|
+
Tools::Getopt.process args, [
|
20
|
+
|
21
|
+
{ :name => :config,
|
22
|
+
:required => true },
|
23
|
+
|
24
|
+
]
|
25
|
+
|
26
|
+
@args.empty? \
|
27
|
+
or raise "Extra args on command line"
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
def prepare
|
32
|
+
|
33
|
+
config_doc =
|
34
|
+
XML::Document.file @opts[:config]
|
35
|
+
|
36
|
+
@config_elem =
|
37
|
+
config_doc.root
|
38
|
+
|
39
|
+
@drill_elems =
|
40
|
+
config_doc.find("drill").to_a
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
def perform_checks
|
45
|
+
|
46
|
+
now = Time.now
|
47
|
+
|
48
|
+
@drill_elems.each do
|
49
|
+
|drill_elem|
|
50
|
+
|
51
|
+
next unless drill_elem.find("match").all? {
|
52
|
+
|match_elem|
|
53
|
+
|
54
|
+
current = now.strftime match_elem["template"]
|
55
|
+
regex = Regexp.new match_elem["regex"]
|
56
|
+
|
57
|
+
current =~ regex
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
critical drill_elem["message"]
|
62
|
+
|
63
|
+
return
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
message "no drills just now"
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
metadata
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hq-check-drill
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Pharaoh
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hq-tools
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.8.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.8.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: libxml-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.6.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.6.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cucumber
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.3.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.3.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hq-dev
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.8
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.8
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.7.7
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.7.7
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 10.0.4
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 10.0.4
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.13.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.13.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec_junit_formatter
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.1.6
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.1.6
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: simplecov
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.7.1
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.7.1
|
139
|
+
description: HQ icinga/nagios plugin to show a specific status based on the time
|
140
|
+
email:
|
141
|
+
- james@phsys.co.uk
|
142
|
+
executables:
|
143
|
+
- hq-check-drill
|
144
|
+
extensions: []
|
145
|
+
extra_rdoc_files: []
|
146
|
+
files:
|
147
|
+
- lib/hq/check-drill/script.rb
|
148
|
+
- features/check-drill.feature
|
149
|
+
- features/bin-wrapper.feature
|
150
|
+
- features/support/steps.rb
|
151
|
+
- features/support/env.rb
|
152
|
+
- bin/hq-check-drill
|
153
|
+
homepage: https://github.com/jamespharaoh/hq-check-drill
|
154
|
+
licenses: []
|
155
|
+
metadata: {}
|
156
|
+
post_install_message:
|
157
|
+
rdoc_options: []
|
158
|
+
require_paths:
|
159
|
+
- lib
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - '>='
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: 1.3.6
|
170
|
+
requirements: []
|
171
|
+
rubyforge_project: hq-check-drill
|
172
|
+
rubygems_version: 2.0.3
|
173
|
+
signing_key:
|
174
|
+
specification_version: 4
|
175
|
+
summary: HQ check drill
|
176
|
+
test_files:
|
177
|
+
- features/check-drill.feature
|
178
|
+
- features/bin-wrapper.feature
|
179
|
+
- features/support/steps.rb
|
180
|
+
- features/support/env.rb
|