big_brother 0.6.4 → 0.6.5
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.
- data/lib/big_brother/cluster.rb +2 -3
- data/lib/big_brother/ipvs.rb +2 -2
- data/lib/big_brother/version.rb +1 -1
- data/spec/big_brother/app_spec.rb +1 -1
- data/spec/big_brother/cluster_spec.rb +1 -1
- data/spec/big_brother/configuration_spec.rb +0 -1
- data/spec/support/example_config.yml +0 -1
- metadata +31 -107
data/lib/big_brother/cluster.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
module BigBrother
|
2
2
|
class Cluster
|
3
|
-
attr_reader :fwmark, :scheduler, :check_interval, :nodes, :name, :
|
3
|
+
attr_reader :fwmark, :scheduler, :check_interval, :nodes, :name, :ramp_up_time, :nagios
|
4
4
|
|
5
5
|
def initialize(name, attributes = {})
|
6
6
|
@name = name
|
7
7
|
@fwmark = attributes[:fwmark]
|
8
8
|
@scheduler = attributes[:scheduler]
|
9
|
-
@persistent = attributes.fetch(:persistent, 300)
|
10
9
|
@check_interval = attributes.fetch(:check_interval, 1)
|
11
10
|
@monitored = false
|
12
11
|
@nodes = attributes.fetch(:nodes, []).map { |node_config| _coerce_node(node_config) }
|
@@ -44,7 +43,7 @@ module BigBrother
|
|
44
43
|
|
45
44
|
def start_monitoring!
|
46
45
|
BigBrother.logger.info "starting monitoring on cluster #{to_s}"
|
47
|
-
BigBrother.ipvs.start_cluster(@fwmark, @scheduler
|
46
|
+
BigBrother.ipvs.start_cluster(@fwmark, @scheduler)
|
48
47
|
@nodes.each do |node|
|
49
48
|
BigBrother.ipvs.start_node(@fwmark, node.address, 100)
|
50
49
|
end
|
data/lib/big_brother/ipvs.rb
CHANGED
@@ -4,8 +4,8 @@ module BigBrother
|
|
4
4
|
@executor = executor
|
5
5
|
end
|
6
6
|
|
7
|
-
def start_cluster(fwmark, scheduler
|
8
|
-
@executor.invoke("ipvsadm --add-service --fwmark-service #{fwmark} --scheduler #{scheduler}
|
7
|
+
def start_cluster(fwmark, scheduler)
|
8
|
+
@executor.invoke("ipvsadm --add-service --fwmark-service #{fwmark} --scheduler #{scheduler}")
|
9
9
|
end
|
10
10
|
|
11
11
|
def stop_cluster(fwmark)
|
data/lib/big_brother/version.rb
CHANGED
@@ -168,7 +168,7 @@ CombinedWeight: 60
|
|
168
168
|
last_response.status.should == 200
|
169
169
|
last_response.body.should == "OK"
|
170
170
|
BigBrother.clusters['test'].should be_monitored
|
171
|
-
@stub_executor.commands.should include("ipvsadm --add-service --fwmark-service 100 --scheduler wrr
|
171
|
+
@stub_executor.commands.should include("ipvsadm --add-service --fwmark-service 100 --scheduler wrr")
|
172
172
|
@stub_executor.commands.should include("ipvsadm --add-server --fwmark-service 100 --real-server 127.0.0.1 --ipip --weight 100")
|
173
173
|
@stub_executor.commands.should include("ipvsadm --add-server --fwmark-service 100 --real-server 127.0.0.2 --ipip --weight 100")
|
174
174
|
end
|
@@ -13,7 +13,7 @@ describe BigBrother::Cluster do
|
|
13
13
|
cluster = Factory.cluster(:fwmark => 100, :scheduler => 'wrr')
|
14
14
|
|
15
15
|
cluster.start_monitoring!
|
16
|
-
@stub_executor.commands.should include('ipvsadm --add-service --fwmark-service 100 --scheduler wrr
|
16
|
+
@stub_executor.commands.should include('ipvsadm --add-service --fwmark-service 100 --scheduler wrr')
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -8,7 +8,6 @@ describe BigBrother::Configuration do
|
|
8
8
|
clusters['test1'].check_interval.should == 1
|
9
9
|
clusters['test1'].scheduler.should == 'wrr'
|
10
10
|
clusters['test1'].fwmark.should == 1
|
11
|
-
clusters['test1'].persistent.should == 20
|
12
11
|
clusters['test1'].ramp_up_time.should == 120
|
13
12
|
clusters['test1'].has_downpage?.should == true
|
14
13
|
clusters['test1'].nagios[:check].should == 'test1_status'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: big_brother
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thin
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70140402245100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.3.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.3.1
|
24
|
+
version_requirements: *70140402245100
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: async-rack
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70140402244360 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ~>
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: 0.5.1
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 0.5.1
|
35
|
+
version_requirements: *70140402244360
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: sinatra
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70140402243120 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ~>
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '1.0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.0'
|
46
|
+
version_requirements: *70140402243120
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: rack-fiber_pool
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70140402242640 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: '0.9'
|
70
55
|
type: :runtime
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0.9'
|
57
|
+
version_requirements: *70140402242640
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: eventmachine
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70140402242100 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ~>
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: 1.0.0
|
86
66
|
type: :runtime
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 1.0.0
|
68
|
+
version_requirements: *70140402242100
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: em-http-request
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70140402257780 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ~>
|
@@ -101,15 +76,10 @@ dependencies:
|
|
101
76
|
version: '1.0'
|
102
77
|
type: :runtime
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1.0'
|
79
|
+
version_requirements: *70140402257780
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: em-synchrony
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &70140402256860 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
85
|
- - ~>
|
@@ -117,15 +87,10 @@ dependencies:
|
|
117
87
|
version: '1.0'
|
118
88
|
type: :runtime
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '1.0'
|
90
|
+
version_requirements: *70140402256860
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: em-resolv-replace
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &70140402255780 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
96
|
- - ~>
|
@@ -133,15 +98,10 @@ dependencies:
|
|
133
98
|
version: '1.1'
|
134
99
|
type: :runtime
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '1.1'
|
101
|
+
version_requirements: *70140402255780
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: em-syslog
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &70140402254800 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
107
|
- - ~>
|
@@ -149,15 +109,10 @@ dependencies:
|
|
149
109
|
version: 0.0.2
|
150
110
|
type: :runtime
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ~>
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 0.0.2
|
112
|
+
version_requirements: *70140402254800
|
158
113
|
- !ruby/object:Gem::Dependency
|
159
114
|
name: rspec
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &70140402254220 !ruby/object:Gem::Requirement
|
161
116
|
none: false
|
162
117
|
requirements:
|
163
118
|
- - ~>
|
@@ -165,15 +120,10 @@ dependencies:
|
|
165
120
|
version: 2.9.0
|
166
121
|
type: :development
|
167
122
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ~>
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 2.9.0
|
123
|
+
version_requirements: *70140402254220
|
174
124
|
- !ruby/object:Gem::Dependency
|
175
125
|
name: rack-test
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirement: &70140402253600 !ruby/object:Gem::Requirement
|
177
127
|
none: false
|
178
128
|
requirements:
|
179
129
|
- - ~>
|
@@ -181,15 +131,10 @@ dependencies:
|
|
181
131
|
version: 0.6.1
|
182
132
|
type: :development
|
183
133
|
prerelease: false
|
184
|
-
version_requirements:
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - ~>
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: 0.6.1
|
134
|
+
version_requirements: *70140402253600
|
190
135
|
- !ruby/object:Gem::Dependency
|
191
136
|
name: rake
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirement: &70140402253060 !ruby/object:Gem::Requirement
|
193
138
|
none: false
|
194
139
|
requirements:
|
195
140
|
- - ! '>='
|
@@ -197,15 +142,10 @@ dependencies:
|
|
197
142
|
version: '0'
|
198
143
|
type: :development
|
199
144
|
prerelease: false
|
200
|
-
version_requirements:
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ! '>='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: '0'
|
145
|
+
version_requirements: *70140402253060
|
206
146
|
- !ruby/object:Gem::Dependency
|
207
147
|
name: rake_commit
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirement: &70140402252280 !ruby/object:Gem::Requirement
|
209
149
|
none: false
|
210
150
|
requirements:
|
211
151
|
- - ~>
|
@@ -213,15 +153,10 @@ dependencies:
|
|
213
153
|
version: '0.13'
|
214
154
|
type: :development
|
215
155
|
prerelease: false
|
216
|
-
version_requirements:
|
217
|
-
none: false
|
218
|
-
requirements:
|
219
|
-
- - ~>
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '0.13'
|
156
|
+
version_requirements: *70140402252280
|
222
157
|
- !ruby/object:Gem::Dependency
|
223
158
|
name: vagrant
|
224
|
-
requirement: !ruby/object:Gem::Requirement
|
159
|
+
requirement: &70140402251660 !ruby/object:Gem::Requirement
|
225
160
|
none: false
|
226
161
|
requirements:
|
227
162
|
- - ! '>='
|
@@ -229,12 +164,7 @@ dependencies:
|
|
229
164
|
version: '0'
|
230
165
|
type: :development
|
231
166
|
prerelease: false
|
232
|
-
version_requirements:
|
233
|
-
none: false
|
234
|
-
requirements:
|
235
|
-
- - ! '>='
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: '0'
|
167
|
+
version_requirements: *70140402251660
|
238
168
|
description: IPVS backend supervisor
|
239
169
|
email:
|
240
170
|
- code@getbraintree.com
|
@@ -307,21 +237,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
307
237
|
- - ! '>='
|
308
238
|
- !ruby/object:Gem::Version
|
309
239
|
version: '0'
|
310
|
-
segments:
|
311
|
-
- 0
|
312
|
-
hash: -4040566039052582220
|
313
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
314
241
|
none: false
|
315
242
|
requirements:
|
316
243
|
- - ! '>='
|
317
244
|
- !ruby/object:Gem::Version
|
318
245
|
version: '0'
|
319
|
-
segments:
|
320
|
-
- 0
|
321
|
-
hash: -4040566039052582220
|
322
246
|
requirements: []
|
323
247
|
rubyforge_project:
|
324
|
-
rubygems_version: 1.8.
|
248
|
+
rubygems_version: 1.8.10
|
325
249
|
signing_key:
|
326
250
|
specification_version: 3
|
327
251
|
summary: Process to monitor and update weights for servers in an IPVS pool
|