big_brother 0.6.6 → 0.6.7
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/big_brother.gemspec +1 -1
- data/lib/big_brother/cluster_collection.rb +3 -0
- data/lib/big_brother/version.rb +1 -1
- data/spec/big_brother/cluster_collection_spec.rb +17 -0
- metadata +90 -50
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b856ab843e24f29e97dd06e8d21fa12117d7f900
|
4
|
+
data.tar.gz: b04aa100eb3e5d45bf6a909e8896aa9c52ed22bd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 633533430c239ce21904d1fffcf7cba12ba913b978dbad1fd56531dcef3b9fc4b576ff81e1d1b66e315be81a4b85d26b857d697c74a9f2d9e702a2f323eb539a
|
7
|
+
data.tar.gz: 3ba68bfb80913c9ca2df08e7eda22569575fc8f94c4cbdf0f163c2dbfaf8c710f0aa69867f5c37cee72db57a07ea61deb80e8e7c439ad661aa1cbec427f2cc4a
|
data/big_brother.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = BigBrother::VERSION
|
17
17
|
|
18
|
-
gem.add_dependency "thin", "~> 1.
|
18
|
+
gem.add_dependency "thin", "~> 1.6.1"
|
19
19
|
gem.add_dependency "async-rack", "~> 0.5.1"
|
20
20
|
gem.add_dependency "sinatra", "~> 1.0"
|
21
21
|
gem.add_dependency "rack-fiber_pool", "~> 0.9"
|
@@ -10,6 +10,9 @@ module BigBrother
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def config(new_clusters)
|
13
|
+
(@clusters.keys - new_clusters.keys).each do |removed_name|
|
14
|
+
@clusters.delete(removed_name).stop_monitoring!
|
15
|
+
end
|
13
16
|
new_clusters.each do |cluster_name, cluster|
|
14
17
|
if @clusters.key?(cluster_name)
|
15
18
|
@clusters[cluster_name] = cluster.incorporate_state(@clusters[cluster_name])
|
data/lib/big_brother/version.rb
CHANGED
@@ -27,6 +27,23 @@ describe BigBrother::ClusterCollection do
|
|
27
27
|
|
28
28
|
collection.config({'existing_cluster' => cluster_from_config})
|
29
29
|
end
|
30
|
+
|
31
|
+
it "stops and removes clusters not included in the next configuration" do
|
32
|
+
test2 = Factory.cluster(:name => 'test2', :fwmark => 102)
|
33
|
+
collection = BigBrother::ClusterCollection.new
|
34
|
+
collection.config({
|
35
|
+
'test1' => Factory.cluster(:name => 'test1', :fwmark => 101),
|
36
|
+
'test2' => test2,
|
37
|
+
'test3' => Factory.cluster(:name => 'test3', :fwmark => 103)
|
38
|
+
})
|
39
|
+
|
40
|
+
test2.should_receive(:stop_monitoring!)
|
41
|
+
collection.config({
|
42
|
+
'test1' => Factory.cluster(:name => 'test1', :fwmark => 101),
|
43
|
+
'test3' => Factory.cluster(:name => 'test3', :fwmark => 103)
|
44
|
+
})
|
45
|
+
collection['test2'].should be_nil
|
46
|
+
end
|
30
47
|
end
|
31
48
|
|
32
49
|
describe "running" do
|
metadata
CHANGED
@@ -1,170 +1,211 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: big_brother
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Braintree
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-12-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: thin
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
19
|
+
version: 1.6.1
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.1
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: async-rack
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ~>
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 0.5.1
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.5.1
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: sinatra
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
45
|
- - ~>
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '1.0'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rack-fiber_pool
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0.9'
|
55
62
|
type: :runtime
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.9'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: eventmachine
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
73
|
- - ~>
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: 1.0.0
|
66
76
|
type: :runtime
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: em-http-request
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ~>
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '1.0'
|
77
90
|
type: :runtime
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: em-synchrony
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
101
|
- - ~>
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: '1.0'
|
88
104
|
type: :runtime
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.0'
|
91
111
|
- !ruby/object:Gem::Dependency
|
92
112
|
name: em-resolv-replace
|
93
|
-
requirement:
|
94
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
95
114
|
requirements:
|
96
115
|
- - ~>
|
97
116
|
- !ruby/object:Gem::Version
|
98
117
|
version: '1.1'
|
99
118
|
type: :runtime
|
100
119
|
prerelease: false
|
101
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.1'
|
102
125
|
- !ruby/object:Gem::Dependency
|
103
126
|
name: em-syslog
|
104
|
-
requirement:
|
105
|
-
none: false
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
106
128
|
requirements:
|
107
129
|
- - ~>
|
108
130
|
- !ruby/object:Gem::Version
|
109
131
|
version: 0.0.2
|
110
132
|
type: :runtime
|
111
133
|
prerelease: false
|
112
|
-
version_requirements:
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.0.2
|
113
139
|
- !ruby/object:Gem::Dependency
|
114
140
|
name: rspec
|
115
|
-
requirement:
|
116
|
-
none: false
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
117
142
|
requirements:
|
118
143
|
- - ~>
|
119
144
|
- !ruby/object:Gem::Version
|
120
145
|
version: 2.9.0
|
121
146
|
type: :development
|
122
147
|
prerelease: false
|
123
|
-
version_requirements:
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.9.0
|
124
153
|
- !ruby/object:Gem::Dependency
|
125
154
|
name: rack-test
|
126
|
-
requirement:
|
127
|
-
none: false
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - ~>
|
130
158
|
- !ruby/object:Gem::Version
|
131
159
|
version: 0.6.1
|
132
160
|
type: :development
|
133
161
|
prerelease: false
|
134
|
-
version_requirements:
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ~>
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.6.1
|
135
167
|
- !ruby/object:Gem::Dependency
|
136
168
|
name: rake
|
137
|
-
requirement:
|
138
|
-
none: false
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
139
170
|
requirements:
|
140
171
|
- - ! '>='
|
141
172
|
- !ruby/object:Gem::Version
|
142
173
|
version: '0'
|
143
174
|
type: :development
|
144
175
|
prerelease: false
|
145
|
-
version_requirements:
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
146
181
|
- !ruby/object:Gem::Dependency
|
147
182
|
name: rake_commit
|
148
|
-
requirement:
|
149
|
-
none: false
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
150
184
|
requirements:
|
151
185
|
- - ~>
|
152
186
|
- !ruby/object:Gem::Version
|
153
187
|
version: '0.13'
|
154
188
|
type: :development
|
155
189
|
prerelease: false
|
156
|
-
version_requirements:
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ~>
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0.13'
|
157
195
|
- !ruby/object:Gem::Dependency
|
158
196
|
name: vagrant
|
159
|
-
requirement:
|
160
|
-
none: false
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
161
198
|
requirements:
|
162
199
|
- - ! '>='
|
163
200
|
- !ruby/object:Gem::Version
|
164
201
|
version: '0'
|
165
202
|
type: :development
|
166
203
|
prerelease: false
|
167
|
-
version_requirements:
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ! '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
168
209
|
description: IPVS backend supervisor
|
169
210
|
email:
|
170
211
|
- code@getbraintree.com
|
@@ -227,27 +268,26 @@ files:
|
|
227
268
|
- spec/support/stub_server.rb
|
228
269
|
homepage: https://github.com/braintree/big_brother
|
229
270
|
licenses: []
|
271
|
+
metadata: {}
|
230
272
|
post_install_message:
|
231
273
|
rdoc_options: []
|
232
274
|
require_paths:
|
233
275
|
- lib
|
234
276
|
required_ruby_version: !ruby/object:Gem::Requirement
|
235
|
-
none: false
|
236
277
|
requirements:
|
237
278
|
- - ! '>='
|
238
279
|
- !ruby/object:Gem::Version
|
239
280
|
version: '0'
|
240
281
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
282
|
requirements:
|
243
283
|
- - ! '>='
|
244
284
|
- !ruby/object:Gem::Version
|
245
285
|
version: '0'
|
246
286
|
requirements: []
|
247
287
|
rubyforge_project:
|
248
|
-
rubygems_version: 1.
|
288
|
+
rubygems_version: 2.1.9
|
249
289
|
signing_key:
|
250
|
-
specification_version:
|
290
|
+
specification_version: 4
|
251
291
|
summary: Process to monitor and update weights for servers in an IPVS pool
|
252
292
|
test_files:
|
253
293
|
- spec/big_brother/app_spec.rb
|