falcore 0.1.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 +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +19 -0
- data/Gemfile +6 -0
- data/LICENSE +201 -0
- data/README.md +98 -0
- data/Rakefile +12 -0
- data/bin/falcore +78 -0
- data/falcore.gemspec +34 -0
- data/lib/falcore.rb +38 -0
- data/lib/falcore/aggregator.rb +41 -0
- data/lib/falcore/config.rb +125 -0
- data/lib/falcore/dumpers/base.rb +84 -0
- data/lib/falcore/dumpers/statsd.rb +76 -0
- data/lib/falcore/fetcher.rb +50 -0
- data/lib/falcore/nodes/base.rb +118 -0
- data/lib/falcore/nodes/master.rb +48 -0
- data/lib/falcore/nodes/slave.rb +48 -0
- data/lib/falcore/null_object.rb +56 -0
- data/lib/falcore/util.rb +39 -0
- data/lib/falcore/version.rb +21 -0
- data/spec/fixtures/computer.json +180 -0
- data/spec/functional/dumpers/statsd_spec.rb +44 -0
- data/spec/functional/fetcher_spec.rb +39 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/support/server.rb +14 -0
- data/spec/support/statsd.rb +129 -0
- data/spec/unit/aggregator_spec.rb +33 -0
- data/spec/unit/config_spec.rb +55 -0
- data/spec/unit/nodes/base_spec.rb +329 -0
- data/spec/unit/nodes/master_spec.rb +37 -0
- data/spec/unit/nodes/slave_spec.rb +25 -0
- data/spec/unit/util_spec.rb +29 -0
- metadata +176 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Falcore
|
|
4
|
+
describe Node::Master do
|
|
5
|
+
subject { Node::Master.new('displayName' => 'master') }
|
|
6
|
+
|
|
7
|
+
let(:slaves) { subject.instance_variable_get(:@slaves) }
|
|
8
|
+
|
|
9
|
+
describe '#initialize' do
|
|
10
|
+
it 'creates an empty hash of slaves' do
|
|
11
|
+
expect(slaves).to be_a(Hash)
|
|
12
|
+
expect(slaves).to be_empty
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe '#add_slave' do
|
|
17
|
+
it 'raises an exception when the object is not a slave' do
|
|
18
|
+
expect {
|
|
19
|
+
subject.add_slave('bacon')
|
|
20
|
+
}.to raise_error(ArgumentError)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'adds the slave to the hash' do
|
|
24
|
+
slave = Node::Slave.new(subject, 'displayName' => 'slave')
|
|
25
|
+
|
|
26
|
+
expect(slaves).to_not be_empty
|
|
27
|
+
expect(subject.slaves).to include(slave)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe '#slaves' do
|
|
32
|
+
it 'returns an array' do
|
|
33
|
+
expect(subject.slaves).to be_an(Array)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Falcore
|
|
4
|
+
describe Node::Slave do
|
|
5
|
+
let(:master) { Node::Master.new('displayName' => 'master') }
|
|
6
|
+
subject { Node::Slave.new(master, 'displayName' => 'slave') }
|
|
7
|
+
|
|
8
|
+
describe '#initialize' do
|
|
9
|
+
it 'requires a master as the first parameter' do
|
|
10
|
+
expect {
|
|
11
|
+
Node::Slave.new(foo: 'bar')
|
|
12
|
+
}.to raise_error(ArgumentError)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'saves the master to an instance variable' do
|
|
16
|
+
expect(subject.master).to be(master)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'adds the itself to the master slave collection' do
|
|
20
|
+
subject
|
|
21
|
+
expect(master.slaves).to include(subject)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Falcore
|
|
2
|
+
describe Util do
|
|
3
|
+
describe '#deep_fetch' do
|
|
4
|
+
context 'when the hash key exists' do
|
|
5
|
+
it 'returns the value' do
|
|
6
|
+
hash = { 'key' => 'value' }
|
|
7
|
+
expect(Util.deep_fetch(hash, 'key')).to eq('value')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 'returns the value for a deeply nested key' do
|
|
11
|
+
hash = { 'key' => { 'deep' => 'value' } }
|
|
12
|
+
expect(Util.deep_fetch(hash, 'key', 'deep')).to eq('value')
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
context 'when the hash key does not exist' do
|
|
17
|
+
it 'returns nil' do
|
|
18
|
+
hash = {}
|
|
19
|
+
expect(Util.deep_fetch(hash, 'hamlet')).to be_nil
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'returns nil for a deeply nested key' do
|
|
23
|
+
hash = {}
|
|
24
|
+
expect(Util.deep_fetch(hash, 'hamlet', 'bacon')).to be_nil
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: falcore
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Seth Vargo
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-04-07 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: statsd-ruby
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.2'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.2'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: bundler
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.5'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.5'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '2.14'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '2.14'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
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'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: sinatra
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.4'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.4'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: webmock
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '1.17'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '1.17'
|
|
97
|
+
description: Falcore is a Ruby library and CLI for collecting Jenkins slave information
|
|
98
|
+
from a Jenkins master and aggregating to multiple output formats and checks as StatsD
|
|
99
|
+
or Nagios.
|
|
100
|
+
email:
|
|
101
|
+
- sethvargo@gmail.com
|
|
102
|
+
executables:
|
|
103
|
+
- falcore
|
|
104
|
+
extensions: []
|
|
105
|
+
extra_rdoc_files: []
|
|
106
|
+
files:
|
|
107
|
+
- ".gitignore"
|
|
108
|
+
- ".travis.yml"
|
|
109
|
+
- Gemfile
|
|
110
|
+
- LICENSE
|
|
111
|
+
- README.md
|
|
112
|
+
- Rakefile
|
|
113
|
+
- bin/falcore
|
|
114
|
+
- falcore.gemspec
|
|
115
|
+
- lib/falcore.rb
|
|
116
|
+
- lib/falcore/aggregator.rb
|
|
117
|
+
- lib/falcore/config.rb
|
|
118
|
+
- lib/falcore/dumpers/base.rb
|
|
119
|
+
- lib/falcore/dumpers/statsd.rb
|
|
120
|
+
- lib/falcore/fetcher.rb
|
|
121
|
+
- lib/falcore/nodes/base.rb
|
|
122
|
+
- lib/falcore/nodes/master.rb
|
|
123
|
+
- lib/falcore/nodes/slave.rb
|
|
124
|
+
- lib/falcore/null_object.rb
|
|
125
|
+
- lib/falcore/util.rb
|
|
126
|
+
- lib/falcore/version.rb
|
|
127
|
+
- spec/fixtures/computer.json
|
|
128
|
+
- spec/functional/dumpers/statsd_spec.rb
|
|
129
|
+
- spec/functional/fetcher_spec.rb
|
|
130
|
+
- spec/spec_helper.rb
|
|
131
|
+
- spec/support/server.rb
|
|
132
|
+
- spec/support/statsd.rb
|
|
133
|
+
- spec/unit/aggregator_spec.rb
|
|
134
|
+
- spec/unit/config_spec.rb
|
|
135
|
+
- spec/unit/nodes/base_spec.rb
|
|
136
|
+
- spec/unit/nodes/master_spec.rb
|
|
137
|
+
- spec/unit/nodes/slave_spec.rb
|
|
138
|
+
- spec/unit/util_spec.rb
|
|
139
|
+
homepage: https://github.com/opscode/falcore
|
|
140
|
+
licenses:
|
|
141
|
+
- Apache 2.0
|
|
142
|
+
metadata: {}
|
|
143
|
+
post_install_message:
|
|
144
|
+
rdoc_options: []
|
|
145
|
+
require_paths:
|
|
146
|
+
- lib
|
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - ">="
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '2.0'
|
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
|
+
requirements:
|
|
154
|
+
- - ">="
|
|
155
|
+
- !ruby/object:Gem::Version
|
|
156
|
+
version: '0'
|
|
157
|
+
requirements: []
|
|
158
|
+
rubyforge_project:
|
|
159
|
+
rubygems_version: 2.2.2
|
|
160
|
+
signing_key:
|
|
161
|
+
specification_version: 4
|
|
162
|
+
summary: A Ruby application for collecting Jenkins node slave status and aggregating
|
|
163
|
+
to multiple output formats.
|
|
164
|
+
test_files:
|
|
165
|
+
- spec/fixtures/computer.json
|
|
166
|
+
- spec/functional/dumpers/statsd_spec.rb
|
|
167
|
+
- spec/functional/fetcher_spec.rb
|
|
168
|
+
- spec/spec_helper.rb
|
|
169
|
+
- spec/support/server.rb
|
|
170
|
+
- spec/support/statsd.rb
|
|
171
|
+
- spec/unit/aggregator_spec.rb
|
|
172
|
+
- spec/unit/config_spec.rb
|
|
173
|
+
- spec/unit/nodes/base_spec.rb
|
|
174
|
+
- spec/unit/nodes/master_spec.rb
|
|
175
|
+
- spec/unit/nodes/slave_spec.rb
|
|
176
|
+
- spec/unit/util_spec.rb
|