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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1506f684cf433c4d71f7ad9019de4fe82167e2f8
4
- data.tar.gz: d09515d78afb673636622a21128b41fbdc3dc19b
3
+ metadata.gz: ebfa8894922f4c4887499cb476611e3c09c49c34
4
+ data.tar.gz: f6e07dc24d0009ad1e5bcb465c70eef4f990701c
5
5
  SHA512:
6
- metadata.gz: f8f92c92c3de8485554ef577c97df0991493e145a6db5ceef11c55ada11166909e4cceb640119ed5f69ee49e40ffe5f260a12aca0efd02bd926c4c8bf7cdaf71
7
- data.tar.gz: cd65e07319e8a84848d2f2ac32e5ef73585573f473bd7798f08ec18919ada22f34feacc5a53fcfeb7f7ef088281b2360da700905ee56d64d5a7f26bb18de4b29
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].start
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].start
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].start
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=1)
42
- redis.shutdown
41
+ def restart(delay = 0)
42
+ create_dir
43
+ create_config
44
+ daemon_controller.stop
43
45
  sleep delay
44
- raise "SHUTDOWN COMMAND FAILED" if running?
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 | grep 'redis-server #{config_filename}' | grep -v grep"
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
- config.message :ping
99
- config.queue :ping, :amqp_name => "#{system}_ping_#{id}"
98
+ # messages sent
100
99
  config.message :pong
101
- config.message :invalidate
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
- config.queue :reconfigure, :amqp_name => "#{system}_reconfigure_#{id}"
106
- config.message :client_started
107
-
108
- config.handler [:ping, :invalidate, :reconfigure], MessageDispatcher
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
- config.message :client_invalidated
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.queue :client_started, :amqp_name => "#{system}_client_started"
189
-
190
- config.handler [:pong, :client_invalidated, :client_started], MessageDispatcher
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
 
@@ -1,3 +1,3 @@
1
1
  module Beetle
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -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.5
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: 2013-12-17 00:00:00.000000000 Z
15
+ date: 2014-05-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: uuid4r
19
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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.1.11
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