beetle 0.3.5 → 0.3.6
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 +4 -4
- data/features/step_definitions/redis_auto_failover_steps.rb +3 -3
- data/features/support/test_daemons/redis.rb +10 -10
- data/lib/beetle/redis_configuration_client.rb +10 -8
- data/lib/beetle/redis_configuration_server.rb +9 -7
- data/lib/beetle/version.rb +1 -1
- data/test/test_helper.rb +2 -0
- metadata +68 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebfa8894922f4c4887499cb476611e3c09c49c34
|
4
|
+
data.tar.gz: f6e07dc24d0009ad1e5bcb465c70eef4f990701c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2cad4a90e403e051985b997ae0a56585acb7b13b1e297e4c2ebef5ad50a1423096ebcb7f1d9b6b667f0abbdf7f16c45d93c5c70cea38f332d44726b3bec5e0f
|
7
|
+
data.tar.gz: e666c9ee90db3efe8b259950eb0f4c67ed867479714ec02ad27e1ef8663a73cabcf32cde73b9868e9d961cfd5f59700b1963e0e16fcbe651e036d8ea8e0cc597
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Given /^a redis server "([^\"]*)" exists as master$/ do |redis_name|
|
2
|
-
TestDaemons::Redis[redis_name].
|
2
|
+
TestDaemons::Redis[redis_name].restart
|
3
3
|
TestDaemons::Redis[redis_name].master
|
4
4
|
end
|
5
5
|
|
6
6
|
Given /^a redis server "([^\"]*)" exists as slave of "([^\"]*)"$/ do |redis_name, redis_master_name|
|
7
|
-
TestDaemons::Redis[redis_name].
|
7
|
+
TestDaemons::Redis[redis_name].restart
|
8
8
|
step "redis server \"#{redis_name}\" is slave of \"#{redis_master_name}\""
|
9
9
|
end
|
10
10
|
|
@@ -63,7 +63,7 @@ Given /^the retry timeout for the redis master determination is reached$/ do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
Given /^redis server "([^\"]*)" is coming back$/ do |redis_name|
|
66
|
-
TestDaemons::Redis[redis_name].
|
66
|
+
TestDaemons::Redis[redis_name].restart
|
67
67
|
end
|
68
68
|
|
69
69
|
Given /^an old redis master file for "([^\"]*)" with master "([^\"]*)" exists$/ do |redis_configuration_client_name, redis_name|
|
@@ -16,7 +16,7 @@ module TestDaemons
|
|
16
16
|
def initialize(name)
|
17
17
|
@name = name
|
18
18
|
@port = @@next_available_port
|
19
|
-
|
19
|
+
|
20
20
|
@@next_available_port += 1
|
21
21
|
@@instances[name] = self
|
22
22
|
end
|
@@ -38,11 +38,12 @@ module TestDaemons
|
|
38
38
|
daemon_controller.start
|
39
39
|
end
|
40
40
|
|
41
|
-
def restart(delay=
|
42
|
-
|
41
|
+
def restart(delay = 0)
|
42
|
+
create_dir
|
43
|
+
create_config
|
44
|
+
daemon_controller.stop
|
43
45
|
sleep delay
|
44
|
-
|
45
|
-
`redis-server #{config_filename}`
|
46
|
+
daemon_controller.start
|
46
47
|
end
|
47
48
|
|
48
49
|
def stop
|
@@ -77,7 +78,7 @@ module TestDaemons
|
|
77
78
|
end
|
78
79
|
|
79
80
|
def running?
|
80
|
-
cmd = "ps aux |
|
81
|
+
cmd = "ps aux | egrep 'redis-server.*#{port}' | grep -v grep"
|
81
82
|
res = `#{cmd}`
|
82
83
|
x = res.chomp.split("\n")
|
83
84
|
x.size == 1
|
@@ -111,7 +112,7 @@ module TestDaemons
|
|
111
112
|
def ip_with_port
|
112
113
|
"127.0.0.1:#{port}"
|
113
114
|
end
|
114
|
-
|
115
|
+
|
115
116
|
def redis
|
116
117
|
@redis ||= ::Redis.new(:host => "127.0.0.1", :port => port)
|
117
118
|
end
|
@@ -145,7 +146,7 @@ module TestDaemons
|
|
145
146
|
end
|
146
147
|
|
147
148
|
def config_filename
|
148
|
-
tmp_path + "/redis-test-server-#{name}.conf"
|
149
|
+
tmp_path + "/redis-test-server-#{name}-#{port}.conf"
|
149
150
|
end
|
150
151
|
|
151
152
|
def config_content
|
@@ -175,7 +176,7 @@ module TestDaemons
|
|
175
176
|
|
176
177
|
def daemon_controller
|
177
178
|
@daemon_controller ||= DaemonController.new(
|
178
|
-
:identifier => "Redis test server",
|
179
|
+
:identifier => "Redis test server #{name}",
|
179
180
|
:start_command => "redis-server #{config_filename}",
|
180
181
|
:ping_command => lambda { running? && available? },
|
181
182
|
:pid_file => pid_file,
|
@@ -183,6 +184,5 @@ module TestDaemons
|
|
183
184
|
:start_timeout => 5
|
184
185
|
)
|
185
186
|
end
|
186
|
-
|
187
187
|
end
|
188
188
|
end
|
@@ -95,17 +95,19 @@ module Beetle
|
|
95
95
|
def build_beetle
|
96
96
|
system = Beetle.config.system_name
|
97
97
|
Beetle::Client.new.configure :exchange => system, :auto_delete => true do |config|
|
98
|
-
|
99
|
-
config.queue :ping, :amqp_name => "#{system}_ping_#{id}"
|
98
|
+
# messages sent
|
100
99
|
config.message :pong
|
101
|
-
config.message :
|
102
|
-
config.queue :invalidate, :amqp_name => "#{system}_invalidate_#{id}"
|
100
|
+
config.message :client_started
|
103
101
|
config.message :client_invalidated
|
102
|
+
# messages received
|
103
|
+
config.message :ping
|
104
|
+
config.message :invalidate
|
104
105
|
config.message :reconfigure
|
105
|
-
|
106
|
-
config.
|
107
|
-
|
108
|
-
config.
|
106
|
+
# queue setup
|
107
|
+
config.queue :client, :key => 'ping', :amqp_name => "#{system}_configuration_client_#{id}"
|
108
|
+
config.binding :client, :key => 'invalidate'
|
109
|
+
config.binding :client, :key => 'reconfigure'
|
110
|
+
config.handler :client, MessageDispatcher
|
109
111
|
end
|
110
112
|
end
|
111
113
|
|
@@ -176,18 +176,20 @@ module Beetle
|
|
176
176
|
def build_beetle
|
177
177
|
system = Beetle.config.system_name
|
178
178
|
Beetle::Client.new.configure :exchange => system, :auto_delete => true do |config|
|
179
|
-
|
180
|
-
config.queue :client_invalidated, :amqp_name => "#{system}_client_invalidated"
|
181
|
-
config.message :pong
|
182
|
-
config.queue :pong, :amqp_name => "#{system}_pong"
|
179
|
+
# messages sent
|
183
180
|
config.message :ping
|
184
181
|
config.message :invalidate
|
185
182
|
config.message :reconfigure
|
186
183
|
config.message :system_notification
|
184
|
+
# messages received
|
187
185
|
config.message :client_started
|
188
|
-
config.
|
189
|
-
|
190
|
-
|
186
|
+
config.message :pong
|
187
|
+
config.message :client_invalidated
|
188
|
+
# queue setup
|
189
|
+
config.queue :server, :key => 'pong', :amqp_name => "#{system}_configuration_server"
|
190
|
+
config.binding :server, :key => 'client_started'
|
191
|
+
config.binding :server, :key => 'client_invalidated'
|
192
|
+
config.handler :server, MessageDispatcher
|
191
193
|
end
|
192
194
|
end
|
193
195
|
|
data/lib/beetle/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -17,6 +17,8 @@ class Test::Unit::TestCase
|
|
17
17
|
extend ActiveSupport::Testing::Declarative
|
18
18
|
end
|
19
19
|
|
20
|
+
I18n.enforce_available_locales = false
|
21
|
+
|
20
22
|
Beetle.config.logger = Logger.new(File.dirname(__FILE__) + '/../test.log')
|
21
23
|
Beetle.config.redis_server = "localhost:6379"
|
22
24
|
Beetle.config.redis_servers = "localhost:6379,localhost:6380"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beetle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
@@ -12,154 +12,154 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2014-05-23 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: uuid4r
|
19
|
-
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.1.2
|
24
24
|
type: :runtime
|
25
|
-
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
27
|
requirements:
|
27
|
-
- -
|
28
|
+
- - ">="
|
28
29
|
- !ruby/object:Gem::Version
|
29
30
|
version: 0.1.2
|
30
|
-
prerelease: false
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: bunny
|
33
|
-
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
35
|
- - '='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: 0.7.9
|
38
38
|
type: :runtime
|
39
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
41
|
requirements:
|
41
42
|
- - '='
|
42
43
|
- !ruby/object:Gem::Version
|
43
44
|
version: 0.7.9
|
44
|
-
prerelease: false
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: redis
|
47
|
-
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
|
-
- -
|
49
|
+
- - ">="
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: 2.2.2
|
52
|
-
- - <
|
52
|
+
- - "<"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.1'
|
55
55
|
type: :runtime
|
56
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
|
-
- -
|
59
|
+
- - ">="
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: 2.2.2
|
61
|
-
- - <
|
62
|
+
- - "<"
|
62
63
|
- !ruby/object:Gem::Version
|
63
64
|
version: '3.1'
|
64
|
-
prerelease: false
|
65
65
|
- !ruby/object:Gem::Dependency
|
66
66
|
name: hiredis
|
67
|
-
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - '='
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 0.4.5
|
72
72
|
type: :runtime
|
73
|
-
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
75
|
requirements:
|
75
76
|
- - '='
|
76
77
|
- !ruby/object:Gem::Version
|
77
78
|
version: 0.4.5
|
78
|
-
prerelease: false
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
80
|
name: amq-client
|
81
|
-
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - '='
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: 1.0.2
|
86
86
|
type: :runtime
|
87
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
89
|
requirements:
|
89
90
|
- - '='
|
90
91
|
- !ruby/object:Gem::Version
|
91
92
|
version: 1.0.2
|
92
|
-
prerelease: false
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: amq-protocol
|
95
|
-
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
97
|
- - '='
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: 1.6.0
|
100
100
|
type: :runtime
|
101
|
-
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
103
|
requirements:
|
103
104
|
- - '='
|
104
105
|
- !ruby/object:Gem::Version
|
105
106
|
version: 1.6.0
|
106
|
-
prerelease: false
|
107
107
|
- !ruby/object:Gem::Dependency
|
108
108
|
name: amqp
|
109
|
-
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
111
|
- - '='
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: 1.0.2
|
114
114
|
type: :runtime
|
115
|
-
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
116
117
|
requirements:
|
117
118
|
- - '='
|
118
119
|
- !ruby/object:Gem::Version
|
119
120
|
version: 1.0.2
|
120
|
-
prerelease: false
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: activesupport
|
123
|
-
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- -
|
125
|
+
- - ">="
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: 2.3.4
|
128
128
|
type: :runtime
|
129
|
-
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
131
|
requirements:
|
131
|
-
- -
|
132
|
+
- - ">="
|
132
133
|
- !ruby/object:Gem::Version
|
133
134
|
version: 2.3.4
|
134
|
-
prerelease: false
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: eventmachine_httpserver
|
137
|
-
|
137
|
+
requirement: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
|
-
- -
|
139
|
+
- - ">="
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: 0.2.1
|
142
142
|
type: :runtime
|
143
|
-
|
143
|
+
prerelease: false
|
144
|
+
version_requirements: !ruby/object:Gem::Requirement
|
144
145
|
requirements:
|
145
|
-
- -
|
146
|
+
- - ">="
|
146
147
|
- !ruby/object:Gem::Version
|
147
148
|
version: 0.2.1
|
148
|
-
prerelease: false
|
149
149
|
- !ruby/object:Gem::Dependency
|
150
150
|
name: daemons
|
151
|
-
|
151
|
+
requirement: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
|
-
- -
|
153
|
+
- - ">="
|
154
154
|
- !ruby/object:Gem::Version
|
155
155
|
version: 1.0.10
|
156
156
|
type: :runtime
|
157
|
-
|
157
|
+
prerelease: false
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
158
159
|
requirements:
|
159
|
-
- -
|
160
|
+
- - ">="
|
160
161
|
- !ruby/object:Gem::Version
|
161
162
|
version: 1.0.10
|
162
|
-
prerelease: false
|
163
163
|
description: A highly available, reliable messaging infrastructure
|
164
164
|
email: opensource@xing.com
|
165
165
|
executables:
|
@@ -173,6 +173,14 @@ extra_rdoc_files:
|
|
173
173
|
- RELEASE_NOTES.rdoc
|
174
174
|
- MIT-LICENSE
|
175
175
|
files:
|
176
|
+
- MIT-LICENSE
|
177
|
+
- README.rdoc
|
178
|
+
- REDIS_AUTO_FAILOVER.rdoc
|
179
|
+
- RELEASE_NOTES.rdoc
|
180
|
+
- Rakefile
|
181
|
+
- beetle.gemspec
|
182
|
+
- bin/beetle
|
183
|
+
- examples/README.rdoc
|
176
184
|
- examples/attempts.rb
|
177
185
|
- examples/handler_class.rb
|
178
186
|
- examples/handling_exceptions.rb
|
@@ -184,12 +192,23 @@ files:
|
|
184
192
|
- examples/rpc.rb
|
185
193
|
- examples/simple.rb
|
186
194
|
- examples/test_publisher.rb
|
195
|
+
- features/README.rdoc
|
196
|
+
- features/redis_auto_failover.feature
|
197
|
+
- features/step_definitions/redis_auto_failover_steps.rb
|
198
|
+
- features/support/beetle_handler
|
199
|
+
- features/support/env.rb
|
200
|
+
- features/support/system_notification_logger
|
201
|
+
- features/support/test_daemons/redis.conf.erb
|
202
|
+
- features/support/test_daemons/redis.rb
|
203
|
+
- features/support/test_daemons/redis_configuration_client.rb
|
204
|
+
- features/support/test_daemons/redis_configuration_server.rb
|
205
|
+
- lib/beetle.rb
|
187
206
|
- lib/beetle/base.rb
|
188
207
|
- lib/beetle/client.rb
|
208
|
+
- lib/beetle/commands.rb
|
189
209
|
- lib/beetle/commands/configuration_client.rb
|
190
210
|
- lib/beetle/commands/configuration_server.rb
|
191
211
|
- lib/beetle/commands/garbage_collect_deduplication_store.rb
|
192
|
-
- lib/beetle/commands.rb
|
193
212
|
- lib/beetle/configuration.rb
|
194
213
|
- lib/beetle/deduplication_store.rb
|
195
214
|
- lib/beetle/handler.rb
|
@@ -205,26 +224,8 @@ files:
|
|
205
224
|
- lib/beetle/redis_server_info.rb
|
206
225
|
- lib/beetle/subscriber.rb
|
207
226
|
- lib/beetle/version.rb
|
208
|
-
- lib/beetle.rb
|
209
|
-
- features/README.rdoc
|
210
|
-
- features/redis_auto_failover.feature
|
211
|
-
- features/step_definitions/redis_auto_failover_steps.rb
|
212
|
-
- features/support/beetle_handler
|
213
|
-
- features/support/env.rb
|
214
|
-
- features/support/system_notification_logger
|
215
|
-
- features/support/test_daemons/redis.conf.erb
|
216
|
-
- features/support/test_daemons/redis.rb
|
217
|
-
- features/support/test_daemons/redis_configuration_client.rb
|
218
|
-
- features/support/test_daemons/redis_configuration_server.rb
|
219
227
|
- script/console
|
220
228
|
- script/start_rabbit
|
221
|
-
- beetle.gemspec
|
222
|
-
- Rakefile
|
223
|
-
- examples/README.rdoc
|
224
|
-
- README.rdoc
|
225
|
-
- REDIS_AUTO_FAILOVER.rdoc
|
226
|
-
- RELEASE_NOTES.rdoc
|
227
|
-
- MIT-LICENSE
|
228
229
|
- test/beetle/amqp_gem_behavior_test.rb
|
229
230
|
- test/beetle/base_test.rb
|
230
231
|
- test/beetle/beetle_test.rb
|
@@ -243,28 +244,27 @@ files:
|
|
243
244
|
- test/beetle_test.rb
|
244
245
|
- test/colorized_test_output.rb
|
245
246
|
- test/test_helper.rb
|
246
|
-
- bin/beetle
|
247
247
|
homepage: http://xing.github.com/beetle/
|
248
248
|
licenses: []
|
249
249
|
metadata: {}
|
250
250
|
post_install_message:
|
251
251
|
rdoc_options:
|
252
|
-
- --charset=UTF-8
|
252
|
+
- "--charset=UTF-8"
|
253
253
|
require_paths:
|
254
254
|
- lib
|
255
255
|
required_ruby_version: !ruby/object:Gem::Requirement
|
256
256
|
requirements:
|
257
|
-
- -
|
257
|
+
- - ">="
|
258
258
|
- !ruby/object:Gem::Version
|
259
259
|
version: '0'
|
260
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
|
-
- -
|
262
|
+
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: 1.3.7
|
265
265
|
requirements: []
|
266
266
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.
|
267
|
+
rubygems_version: 2.2.2
|
268
268
|
signing_key:
|
269
269
|
specification_version: 3
|
270
270
|
summary: High Availability AMQP Messaging with Redundant Queues
|