wary 0.0.1 → 0.0.2.pre.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/README.md +3 -0
- data/example/wary.yml +10 -0
- data/lib/wary/check/http_status.rb +35 -0
- data/lib/wary/check/load_average.rb +32 -0
- data/lib/wary/check.rb +25 -0
- data/lib/wary/check_suite.rb +22 -0
- data/lib/wary/load_meter.rb +30 -0
- data/lib/wary/status.rb +37 -0
- data/lib/wary/suite_builder.rb +30 -0
- data/lib/wary/utils/http_client.rb +9 -0
- data/lib/wary/utils/shell.rb +10 -0
- data/lib/wary/version.rb +1 -1
- data/lib/wary.rb +22 -2
- data/spec/check_suite_spec.rb +37 -0
- data/spec/http_status_check_spec.rb +39 -0
- data/spec/load_average_spec.rb +39 -0
- data/spec/load_meter.rb +6 -0
- data/spec/load_meter_spec.rb +26 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/status_alert_spec.rb +6 -0
- data/spec/status_failure_specc.rb +6 -0
- data/spec/status_ok_spec.rb +6 -0
- data/spec/suite_builder_spec.rb +25 -0
- data/spec/support/shared_examples/a_check.rb +14 -0
- data/spec/support/shared_examples/a_status.rb +12 -0
- data/wary.gemspec +3 -0
- metadata +69 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2bae8d44ad9538819dcffa48babd59376362ed1
|
4
|
+
data.tar.gz: 1d2e26a3e80ec3d694b0d1d59a469f89fb42d9fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1d692dd59085066fb17e8d2ade92e92d0d40ec570497aa3579fdd00531e73da1285f535fe6021c98659d10478f74294637b7f2ca01e5f4113b5d95f8dfb8b18
|
7
|
+
data.tar.gz: a71fc87563c582cfd8ed1de5ec558e0c75058f751fa4df48bf25c234c2b657e83f468f499b3c89f0ad0a05ebd350fe0def7de9e5aac83ad3fdeb2a4cbfee5048
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Wary
|
2
2
|
|
3
|
+
[![Code Climate](https://codeclimate.com/github/shostakovich/wary.png)](https://codeclimate.com/github/shostakovich/wary)
|
4
|
+
[![Build Status](https://travis-ci.org/shostakovich/wary.png?branch=master)](https://travis-ci.org/shostakovich/wary)
|
5
|
+
|
3
6
|
TODO: Write a gem description
|
4
7
|
|
5
8
|
## Installation
|
data/example/wary.yml
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../check'
|
2
|
+
require_relative '../utils/http_client'
|
3
|
+
|
4
|
+
module Wary
|
5
|
+
module Check
|
6
|
+
class HttpStatus
|
7
|
+
include Wary::Check
|
8
|
+
|
9
|
+
def initialize(options)
|
10
|
+
@url = options.fetch(:url)
|
11
|
+
@http_client = options.fetch(:http_client) { HTTPClient.new }
|
12
|
+
configure(options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def status
|
16
|
+
begin
|
17
|
+
response = @http_client.get_response(@url)
|
18
|
+
rescue => e
|
19
|
+
return failure("#{@url} down (#{e.message})")
|
20
|
+
end
|
21
|
+
|
22
|
+
if response.code == "200"
|
23
|
+
ok(message(response))
|
24
|
+
else
|
25
|
+
alert("#{@url} (#{response.code} #{response.message})")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def message(response)
|
31
|
+
"#{@url} (#{response.code} #{response.message})"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative '../status'
|
2
|
+
require_relative '../check'
|
3
|
+
require_relative '../load_meter'
|
4
|
+
|
5
|
+
module Wary
|
6
|
+
module Check
|
7
|
+
class LoadAverage
|
8
|
+
include Wary::Check
|
9
|
+
|
10
|
+
def initialize(options)
|
11
|
+
@load_meter = options.fetch(:load_meter) { Wary::LoadMeter.new }
|
12
|
+
@alert_threshold = options.fetch(:alert_threshold)
|
13
|
+
configure(options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def status
|
17
|
+
begin
|
18
|
+
load = @load_meter.load
|
19
|
+
rescue => e
|
20
|
+
return failure(e.message)
|
21
|
+
end
|
22
|
+
|
23
|
+
if load < @alert_threshold
|
24
|
+
ok("Load #{load}")
|
25
|
+
else
|
26
|
+
alert("Load #{load} exceeds threshold (#{@alert_threshold})")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
data/lib/wary/check.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'check/load_average'
|
2
|
+
require_relative 'check/http_status'
|
3
|
+
|
4
|
+
module Wary
|
5
|
+
module Check
|
6
|
+
attr_reader :name
|
7
|
+
|
8
|
+
def configure(options)
|
9
|
+
@name = options.fetch(:name) { self.class.to_s }
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def ok(message)
|
14
|
+
Status::OK.new(message)
|
15
|
+
end
|
16
|
+
|
17
|
+
def alert(message)
|
18
|
+
Status::Alert.new(message)
|
19
|
+
end
|
20
|
+
|
21
|
+
def failure(message)
|
22
|
+
Status::Failure.new(message)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Wary
|
2
|
+
class CheckSuite
|
3
|
+
attr_reader :checks
|
4
|
+
|
5
|
+
def initialize(checks)
|
6
|
+
@checks = checks
|
7
|
+
end
|
8
|
+
|
9
|
+
def empty?
|
10
|
+
checks.empty?
|
11
|
+
end
|
12
|
+
|
13
|
+
def status
|
14
|
+
if checks.any? { |c| c.status == :alert }
|
15
|
+
:alert
|
16
|
+
else
|
17
|
+
:ok
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative 'utils/shell'
|
2
|
+
|
3
|
+
module Wary
|
4
|
+
class LoadMeter
|
5
|
+
class MeasurementFailed < StandardError; end
|
6
|
+
|
7
|
+
def initialize(shell = nil)
|
8
|
+
@shell = shell || Utils::Shell.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def load
|
12
|
+
raw_load_avg_last_min.sub(',', '.').to_f
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def raw_load_avg_last_min
|
17
|
+
matches = raw_data.match(/load averages\: ([0-9,\.]+)/)
|
18
|
+
if matches
|
19
|
+
matches[1]
|
20
|
+
else
|
21
|
+
raise Wary::LoadMeter::MeasurementFailed, "Could no extract load average from '#{raw_data}'"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def raw_data
|
26
|
+
String(@shell.execute('w h'))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
data/lib/wary/status.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module Wary
|
2
|
+
module Status
|
3
|
+
class Base
|
4
|
+
attr_reader :message
|
5
|
+
|
6
|
+
def initialize(message)
|
7
|
+
@message = message
|
8
|
+
end
|
9
|
+
|
10
|
+
def ==(status_symbol)
|
11
|
+
status_symbol == to_sym
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_sym
|
15
|
+
NotImplementedError
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class OK < Base
|
20
|
+
def to_sym
|
21
|
+
:ok
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Alert < Base
|
26
|
+
def to_sym
|
27
|
+
:alert
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class Failure < Base
|
32
|
+
def to_sym
|
33
|
+
:failure
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative 'check'
|
2
|
+
require_relative 'check_suite'
|
3
|
+
|
4
|
+
class Wary::SuiteBuilder
|
5
|
+
def initialize(configuration)
|
6
|
+
@checks = configuration.fetch(:checks) || []
|
7
|
+
end
|
8
|
+
|
9
|
+
def build
|
10
|
+
initialized_checks = @checks.map do |name, config|
|
11
|
+
klass = config.fetch(:class)
|
12
|
+
config[:name] = name
|
13
|
+
constantize("Wary::Check::#{klass}").new(config)
|
14
|
+
end
|
15
|
+
|
16
|
+
Wary::CheckSuite.new(initialized_checks)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def constantize(camel_cased_word)
|
21
|
+
names = camel_cased_word.split('::')
|
22
|
+
names.shift if names.empty? || names.first.empty?
|
23
|
+
|
24
|
+
constant = Object
|
25
|
+
names.each do |name|
|
26
|
+
constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
|
27
|
+
end
|
28
|
+
constant
|
29
|
+
end
|
30
|
+
end
|
data/lib/wary/version.rb
CHANGED
data/lib/wary.rb
CHANGED
@@ -1,5 +1,25 @@
|
|
1
|
-
require
|
1
|
+
require 'yaml'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
require_relative'wary/version'
|
5
|
+
require_relative 'wary/suite_builder'
|
2
6
|
|
3
7
|
module Wary
|
4
|
-
|
8
|
+
def self.run
|
9
|
+
configuration = YAML.load_file(ENV['CONFIG'])
|
10
|
+
check_suite = SuiteBuilder.new(configuration).build
|
11
|
+
|
12
|
+
title = "Overall Check Suite Status (#{check_suite.status})"
|
13
|
+
|
14
|
+
headings = ['Name', 'Status', 'Message']
|
15
|
+
rows = check_suite.checks.map do |check|
|
16
|
+
[check.name, check.status.to_sym, check.status.message]
|
17
|
+
end
|
18
|
+
|
19
|
+
table = Terminal::Table.new(headings: headings, rows: rows, title: title)
|
20
|
+
table.align_column(1, :center)
|
21
|
+
puts table
|
22
|
+
end
|
5
23
|
end
|
24
|
+
|
25
|
+
Wary.run
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wary/check_suite'
|
3
|
+
|
4
|
+
describe Wary::CheckSuite do
|
5
|
+
let(:suite) { Wary::CheckSuite.new(checks) }
|
6
|
+
|
7
|
+
context 'for an empty list' do
|
8
|
+
let(:checks) { Array.new }
|
9
|
+
|
10
|
+
it 'is empty' do
|
11
|
+
expect(suite).to be_empty
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'has the status OK if no checks are set' do
|
15
|
+
expect(suite.status).to eq(:ok)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'for a filled list' do
|
20
|
+
let(:checks) { [make_check] }
|
21
|
+
|
22
|
+
it 'is not empty' do
|
23
|
+
checks << double('Check')
|
24
|
+
expect(suite).to_not be_empty
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'has the status ALERT if one ore more checks failed' do
|
28
|
+
checks << make_check(status: :alert)
|
29
|
+
expect(suite.status).to eq(:alert)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def make_check(stubs = {})
|
34
|
+
check = double('Check', stubs).as_null_object
|
35
|
+
check
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wary/check/http_status'
|
3
|
+
describe Wary::Check::HttpStatus do
|
4
|
+
it_behaves_like 'a check'
|
5
|
+
|
6
|
+
let(:url) { 'http://example.com' }
|
7
|
+
let(:http_response) { double('Response') }
|
8
|
+
let(:http_client) { double('Client', get_response: http_response)}
|
9
|
+
let(:options) {{ url: url, http_client: http_client}}
|
10
|
+
let(:check) { Wary::Check::HttpStatus.new(options) }
|
11
|
+
|
12
|
+
context 'for the expected HTTP-Code' do
|
13
|
+
it 'signals OK' do
|
14
|
+
http_response.stub(code: '200', message: 'OK')
|
15
|
+
expect(status).to eq(:ok)
|
16
|
+
expect(status.message).to eq "#{url} (200 OK)"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'for an unexpected HTTP-Code' do
|
21
|
+
it 'signals alert' do
|
22
|
+
http_response.stub(code: '302', message: 'Found')
|
23
|
+
expect(status).to eq(:alert)
|
24
|
+
expect(status.message).to eq "#{url} (302 Found)"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when something else is wrong' do
|
29
|
+
it 'signals failure' do
|
30
|
+
http_client.stub(:get_response).and_throw StandardError
|
31
|
+
expect(status).to eq(:failure)
|
32
|
+
expect(status.message).to match /#{url} down/
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def status
|
37
|
+
check.status
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wary/check/load_average'
|
3
|
+
|
4
|
+
describe Wary::Check::LoadAverage do
|
5
|
+
it_behaves_like 'a check'
|
6
|
+
|
7
|
+
let(:load_meter) { double('LoadMeter').as_null_object }
|
8
|
+
let(:threshold) { 2.00 }
|
9
|
+
let(:options) { {load_meter: load_meter, alert_threshold: threshold} }
|
10
|
+
let(:check) { Wary::Check::LoadAverage.new(options) }
|
11
|
+
|
12
|
+
context 'when the load is below the threshold' do
|
13
|
+
let(:load_meter) { double('LoadMeter', load: threshold - 0.01) }
|
14
|
+
|
15
|
+
it 'has the status :ok' do
|
16
|
+
expect(check.status).to eq(:ok)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'when the load is on or above the threshold' do
|
21
|
+
let(:load_meter) { double('LoadMeter', load: threshold) }
|
22
|
+
|
23
|
+
it 'has the status :alert' do
|
24
|
+
expect(check.status).to eq(:alert)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when measuring the load failed' do
|
29
|
+
let(:load_meter) do
|
30
|
+
loadmeter = double('LoadMeter')
|
31
|
+
loadmeter.stub(:load).and_throw(StandardError)
|
32
|
+
loadmeter
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'has the status :failure' do
|
36
|
+
expect(check.status).to eq(:failure)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/spec/load_meter.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wary/load_meter'
|
3
|
+
|
4
|
+
describe Wary::LoadMeter do
|
5
|
+
let(:shell) { double('Shell', execute: 'load averages: 1,25 1,22 1,19') }
|
6
|
+
|
7
|
+
it 'execute the load command' do
|
8
|
+
shell.should_receive(:execute).with('w h')
|
9
|
+
|
10
|
+
measure_load
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'extracts the 1 min load' do
|
14
|
+
shell.stub(execute: 'load averages: 1,25 1,22 1,19')
|
15
|
+
expect(measure_load).to eq(1.25)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'throws an error if load not measurable' do
|
19
|
+
shell.stub(execute: 'Take this..')
|
20
|
+
expect { measure_load }.to raise_error(Wary::LoadMeter::MeasurementFailed)
|
21
|
+
end
|
22
|
+
|
23
|
+
def measure_load
|
24
|
+
Wary::LoadMeter.new(shell).load
|
25
|
+
end
|
26
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
3
|
+
config.run_all_when_everything_filtered = true
|
4
|
+
config.filter_run :focus
|
5
|
+
|
6
|
+
config.order = 'random'
|
7
|
+
end
|
8
|
+
|
9
|
+
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each {|f| require f}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wary/suite_builder'
|
3
|
+
|
4
|
+
describe Wary::SuiteBuilder do
|
5
|
+
context 'for an empty list of checks' do
|
6
|
+
let(:configuration) { {:checks => nil} }
|
7
|
+
|
8
|
+
it 'builds an empty suite' do
|
9
|
+
expect(Wary::SuiteBuilder.new(configuration).build).to be_empty
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'for one configured check' do
|
14
|
+
let(:configuration) do
|
15
|
+
{ checks:
|
16
|
+
{'LoadAverage' =>
|
17
|
+
{ class: 'LoadAverage',
|
18
|
+
alert_threshold: 2.0 } } }
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'builds a suite with one check' do
|
22
|
+
expect(Wary::SuiteBuilder.new(configuration).build).to_not be_empty
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
shared_examples_for "a check" do
|
2
|
+
context 'with a custom name set' do
|
3
|
+
it 'has a custom name' do
|
4
|
+
options.merge!(name: 'foo')
|
5
|
+
expect(check.name).to eq 'foo'
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
context 'without a custom name' do
|
10
|
+
it 'has a default name' do
|
11
|
+
expect(check.name).to eq check.class.to_s
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
shared_examples_for "a status" do |status_symbol|
|
2
|
+
let(:message) { "Info" }
|
3
|
+
let(:status) { described_class.new(message) }
|
4
|
+
|
5
|
+
it 'has a message' do
|
6
|
+
expect(status.message).to eq message
|
7
|
+
end
|
8
|
+
|
9
|
+
it "is #{status_symbol}" do
|
10
|
+
expect(status).to eq(status_symbol)
|
11
|
+
end
|
12
|
+
end
|
data/wary.gemspec
CHANGED
@@ -18,6 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_dependency 'terminal-table'
|
22
|
+
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rspec"
|
23
26
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2.pre.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Curth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: terminal-table
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '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'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - '>='
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
description: Helps you keep track of your system's health
|
42
70
|
email:
|
43
71
|
- robert@rocu.de
|
@@ -46,12 +74,36 @@ extensions: []
|
|
46
74
|
extra_rdoc_files: []
|
47
75
|
files:
|
48
76
|
- .gitignore
|
77
|
+
- .rspec
|
78
|
+
- .travis.yml
|
49
79
|
- Gemfile
|
50
80
|
- LICENSE.txt
|
51
81
|
- README.md
|
52
82
|
- Rakefile
|
83
|
+
- example/wary.yml
|
53
84
|
- lib/wary.rb
|
85
|
+
- lib/wary/check.rb
|
86
|
+
- lib/wary/check/http_status.rb
|
87
|
+
- lib/wary/check/load_average.rb
|
88
|
+
- lib/wary/check_suite.rb
|
89
|
+
- lib/wary/load_meter.rb
|
90
|
+
- lib/wary/status.rb
|
91
|
+
- lib/wary/suite_builder.rb
|
92
|
+
- lib/wary/utils/http_client.rb
|
93
|
+
- lib/wary/utils/shell.rb
|
54
94
|
- lib/wary/version.rb
|
95
|
+
- spec/check_suite_spec.rb
|
96
|
+
- spec/http_status_check_spec.rb
|
97
|
+
- spec/load_average_spec.rb
|
98
|
+
- spec/load_meter.rb
|
99
|
+
- spec/load_meter_spec.rb
|
100
|
+
- spec/spec_helper.rb
|
101
|
+
- spec/status_alert_spec.rb
|
102
|
+
- spec/status_failure_specc.rb
|
103
|
+
- spec/status_ok_spec.rb
|
104
|
+
- spec/suite_builder_spec.rb
|
105
|
+
- spec/support/shared_examples/a_check.rb
|
106
|
+
- spec/support/shared_examples/a_status.rb
|
55
107
|
- wary.gemspec
|
56
108
|
homepage: ''
|
57
109
|
licenses:
|
@@ -68,13 +120,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
120
|
version: '0'
|
69
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
122
|
requirements:
|
71
|
-
- - '
|
123
|
+
- - '>'
|
72
124
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
125
|
+
version: 1.3.1
|
74
126
|
requirements: []
|
75
127
|
rubyforge_project:
|
76
128
|
rubygems_version: 2.1.10
|
77
129
|
signing_key:
|
78
130
|
specification_version: 4
|
79
131
|
summary: Wary
|
80
|
-
test_files:
|
132
|
+
test_files:
|
133
|
+
- spec/check_suite_spec.rb
|
134
|
+
- spec/http_status_check_spec.rb
|
135
|
+
- spec/load_average_spec.rb
|
136
|
+
- spec/load_meter.rb
|
137
|
+
- spec/load_meter_spec.rb
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
- spec/status_alert_spec.rb
|
140
|
+
- spec/status_failure_specc.rb
|
141
|
+
- spec/status_ok_spec.rb
|
142
|
+
- spec/suite_builder_spec.rb
|
143
|
+
- spec/support/shared_examples/a_check.rb
|
144
|
+
- spec/support/shared_examples/a_status.rb
|