beetle 0.3.0.rc.5 → 0.3.0.rc.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.
- data/beetle.gemspec +1 -3
- data/features/support/test_daemons/redis.rb +1 -1
- data/lib/beetle/redis_ext.rb +19 -0
- data/lib/beetle/version.rb +1 -1
- data/script/console~ +2 -0
- data/test/beetle/redis_ext_test.rb +15 -0
- metadata +35 -54
data/beetle.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
34
34
|
s.specification_version = 3
|
35
35
|
s.add_runtime_dependency("uuid4r", [">= 0.1.2"])
|
36
36
|
s.add_runtime_dependency("bunny", ["= 0.7.8"])
|
37
|
-
s.add_runtime_dependency("redis", ["= 2.2.
|
37
|
+
s.add_runtime_dependency("redis", ["= 2.2.2"])
|
38
38
|
s.add_runtime_dependency("hiredis", ["= 0.3.2"])
|
39
39
|
s.add_runtime_dependency("amq-client", ["= 0.8.3"])
|
40
40
|
s.add_runtime_dependency("amq-protocol", ["= 0.8.1"])
|
@@ -44,8 +44,6 @@ Gem::Specification.new do |s|
|
|
44
44
|
s.add_development_dependency("rake", [">= 0.8.7"])
|
45
45
|
s.add_development_dependency("mocha", [">= 0"])
|
46
46
|
s.add_development_dependency("rcov", [">= 0"])
|
47
|
-
s.add_development_dependency("redgreen", [">= 0"])
|
48
|
-
s.add_development_dependency("wirble", [">= 0"])
|
49
47
|
s.add_development_dependency("cucumber", [">= 0.7.2"])
|
50
48
|
s.add_development_dependency("daemon_controller", [">= 0"])
|
51
49
|
end
|
data/lib/beetle/redis_ext.rb
CHANGED
@@ -50,4 +50,23 @@ class Redis #:nodoc:
|
|
50
50
|
info = info_with_rescue
|
51
51
|
info["role"] == "slave" && info["master_host"] == host && info["master_port"] == port.to_s
|
52
52
|
end
|
53
|
+
|
54
|
+
# redis 2.2.2 shutdown implementation does not disconnect from the redis server.
|
55
|
+
# this leaves the connection in an inconsistent state and causes the next command to silently fail.
|
56
|
+
# this in turn breaks our cucumber test scenarios.
|
57
|
+
# fix this here, until a new version is released which fixes the problem.
|
58
|
+
|
59
|
+
alias_method :broken_shutdown, :shutdown
|
60
|
+
|
61
|
+
# Synchronously save the dataset to disk and then shut down the server.
|
62
|
+
def shutdown
|
63
|
+
synchronize do
|
64
|
+
begin
|
65
|
+
@client.call_without_reply [:shutdown]
|
66
|
+
ensure
|
67
|
+
@client.disconnect
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
53
72
|
end
|
data/lib/beetle/version.rb
CHANGED
data/script/console~
ADDED
@@ -60,4 +60,19 @@ module Beetle
|
|
60
60
|
assert defined?(Hiredis)
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
class BrokenRedisShutdownTest < Test::Unit::TestCase
|
65
|
+
def setup
|
66
|
+
@r = Redis.new(:host => "localhost", :port => 6390)
|
67
|
+
end
|
68
|
+
|
69
|
+
# if this test fails after upgrading redis, we can probably remove
|
70
|
+
# our custom shutdown method from redis_ext.rb
|
71
|
+
test "redis shutdown implementation is broken" do
|
72
|
+
@r.client.expects(:call_without_reply).with([:shutdown]).once
|
73
|
+
@r.client.expects(:disconnect).never
|
74
|
+
@r.broken_shutdown
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
63
78
|
end
|
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.0.rc.
|
4
|
+
version: 0.3.0.rc.6
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,11 +13,12 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2011-10-
|
16
|
+
date: 2011-10-22 00:00:00.000000000 +02:00
|
17
|
+
default_executable: beetle
|
17
18
|
dependencies:
|
18
19
|
- !ruby/object:Gem::Dependency
|
19
20
|
name: uuid4r
|
20
|
-
requirement: &
|
21
|
+
requirement: &2151634120 !ruby/object:Gem::Requirement
|
21
22
|
none: false
|
22
23
|
requirements:
|
23
24
|
- - ! '>='
|
@@ -25,10 +26,10 @@ dependencies:
|
|
25
26
|
version: 0.1.2
|
26
27
|
type: :runtime
|
27
28
|
prerelease: false
|
28
|
-
version_requirements: *
|
29
|
+
version_requirements: *2151634120
|
29
30
|
- !ruby/object:Gem::Dependency
|
30
31
|
name: bunny
|
31
|
-
requirement: &
|
32
|
+
requirement: &2151633580 !ruby/object:Gem::Requirement
|
32
33
|
none: false
|
33
34
|
requirements:
|
34
35
|
- - =
|
@@ -36,21 +37,21 @@ dependencies:
|
|
36
37
|
version: 0.7.8
|
37
38
|
type: :runtime
|
38
39
|
prerelease: false
|
39
|
-
version_requirements: *
|
40
|
+
version_requirements: *2151633580
|
40
41
|
- !ruby/object:Gem::Dependency
|
41
42
|
name: redis
|
42
|
-
requirement: &
|
43
|
+
requirement: &2151633100 !ruby/object:Gem::Requirement
|
43
44
|
none: false
|
44
45
|
requirements:
|
45
46
|
- - =
|
46
47
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.2.
|
48
|
+
version: 2.2.2
|
48
49
|
type: :runtime
|
49
50
|
prerelease: false
|
50
|
-
version_requirements: *
|
51
|
+
version_requirements: *2151633100
|
51
52
|
- !ruby/object:Gem::Dependency
|
52
53
|
name: hiredis
|
53
|
-
requirement: &
|
54
|
+
requirement: &2151632560 !ruby/object:Gem::Requirement
|
54
55
|
none: false
|
55
56
|
requirements:
|
56
57
|
- - =
|
@@ -58,10 +59,10 @@ dependencies:
|
|
58
59
|
version: 0.3.2
|
59
60
|
type: :runtime
|
60
61
|
prerelease: false
|
61
|
-
version_requirements: *
|
62
|
+
version_requirements: *2151632560
|
62
63
|
- !ruby/object:Gem::Dependency
|
63
64
|
name: amq-client
|
64
|
-
requirement: &
|
65
|
+
requirement: &2151632020 !ruby/object:Gem::Requirement
|
65
66
|
none: false
|
66
67
|
requirements:
|
67
68
|
- - =
|
@@ -69,10 +70,10 @@ dependencies:
|
|
69
70
|
version: 0.8.3
|
70
71
|
type: :runtime
|
71
72
|
prerelease: false
|
72
|
-
version_requirements: *
|
73
|
+
version_requirements: *2151632020
|
73
74
|
- !ruby/object:Gem::Dependency
|
74
75
|
name: amq-protocol
|
75
|
-
requirement: &
|
76
|
+
requirement: &2151631540 !ruby/object:Gem::Requirement
|
76
77
|
none: false
|
77
78
|
requirements:
|
78
79
|
- - =
|
@@ -80,10 +81,10 @@ dependencies:
|
|
80
81
|
version: 0.8.1
|
81
82
|
type: :runtime
|
82
83
|
prerelease: false
|
83
|
-
version_requirements: *
|
84
|
+
version_requirements: *2151631540
|
84
85
|
- !ruby/object:Gem::Dependency
|
85
86
|
name: amqp
|
86
|
-
requirement: &
|
87
|
+
requirement: &2151631000 !ruby/object:Gem::Requirement
|
87
88
|
none: false
|
88
89
|
requirements:
|
89
90
|
- - =
|
@@ -91,10 +92,10 @@ dependencies:
|
|
91
92
|
version: 0.8.0
|
92
93
|
type: :runtime
|
93
94
|
prerelease: false
|
94
|
-
version_requirements: *
|
95
|
+
version_requirements: *2151631000
|
95
96
|
- !ruby/object:Gem::Dependency
|
96
97
|
name: activesupport
|
97
|
-
requirement: &
|
98
|
+
requirement: &2151630480 !ruby/object:Gem::Requirement
|
98
99
|
none: false
|
99
100
|
requirements:
|
100
101
|
- - ! '>='
|
@@ -102,10 +103,10 @@ dependencies:
|
|
102
103
|
version: 2.3.4
|
103
104
|
type: :runtime
|
104
105
|
prerelease: false
|
105
|
-
version_requirements: *
|
106
|
+
version_requirements: *2151630480
|
106
107
|
- !ruby/object:Gem::Dependency
|
107
108
|
name: daemons
|
108
|
-
requirement: &
|
109
|
+
requirement: &2151629940 !ruby/object:Gem::Requirement
|
109
110
|
none: false
|
110
111
|
requirements:
|
111
112
|
- - ! '>='
|
@@ -113,10 +114,10 @@ dependencies:
|
|
113
114
|
version: 1.0.10
|
114
115
|
type: :runtime
|
115
116
|
prerelease: false
|
116
|
-
version_requirements: *
|
117
|
+
version_requirements: *2151629940
|
117
118
|
- !ruby/object:Gem::Dependency
|
118
119
|
name: rake
|
119
|
-
requirement: &
|
120
|
+
requirement: &2151629420 !ruby/object:Gem::Requirement
|
120
121
|
none: false
|
121
122
|
requirements:
|
122
123
|
- - ! '>='
|
@@ -124,10 +125,10 @@ dependencies:
|
|
124
125
|
version: 0.8.7
|
125
126
|
type: :development
|
126
127
|
prerelease: false
|
127
|
-
version_requirements: *
|
128
|
+
version_requirements: *2151629420
|
128
129
|
- !ruby/object:Gem::Dependency
|
129
130
|
name: mocha
|
130
|
-
requirement: &
|
131
|
+
requirement: &2151628940 !ruby/object:Gem::Requirement
|
131
132
|
none: false
|
132
133
|
requirements:
|
133
134
|
- - ! '>='
|
@@ -135,10 +136,10 @@ dependencies:
|
|
135
136
|
version: '0'
|
136
137
|
type: :development
|
137
138
|
prerelease: false
|
138
|
-
version_requirements: *
|
139
|
+
version_requirements: *2151628940
|
139
140
|
- !ruby/object:Gem::Dependency
|
140
141
|
name: rcov
|
141
|
-
requirement: &
|
142
|
+
requirement: &2151628460 !ruby/object:Gem::Requirement
|
142
143
|
none: false
|
143
144
|
requirements:
|
144
145
|
- - ! '>='
|
@@ -146,32 +147,10 @@ dependencies:
|
|
146
147
|
version: '0'
|
147
148
|
type: :development
|
148
149
|
prerelease: false
|
149
|
-
version_requirements: *
|
150
|
-
- !ruby/object:Gem::Dependency
|
151
|
-
name: redgreen
|
152
|
-
requirement: &2156172620 !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
158
|
-
type: :development
|
159
|
-
prerelease: false
|
160
|
-
version_requirements: *2156172620
|
161
|
-
- !ruby/object:Gem::Dependency
|
162
|
-
name: wirble
|
163
|
-
requirement: &2156171940 !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
|
-
requirements:
|
166
|
-
- - ! '>='
|
167
|
-
- !ruby/object:Gem::Version
|
168
|
-
version: '0'
|
169
|
-
type: :development
|
170
|
-
prerelease: false
|
171
|
-
version_requirements: *2156171940
|
150
|
+
version_requirements: *2151628460
|
172
151
|
- !ruby/object:Gem::Dependency
|
173
152
|
name: cucumber
|
174
|
-
requirement: &
|
153
|
+
requirement: &2151627860 !ruby/object:Gem::Requirement
|
175
154
|
none: false
|
176
155
|
requirements:
|
177
156
|
- - ! '>='
|
@@ -179,10 +158,10 @@ dependencies:
|
|
179
158
|
version: 0.7.2
|
180
159
|
type: :development
|
181
160
|
prerelease: false
|
182
|
-
version_requirements: *
|
161
|
+
version_requirements: *2151627860
|
183
162
|
- !ruby/object:Gem::Dependency
|
184
163
|
name: daemon_controller
|
185
|
-
requirement: &
|
164
|
+
requirement: &2151627360 !ruby/object:Gem::Requirement
|
186
165
|
none: false
|
187
166
|
requirements:
|
188
167
|
- - ! '>='
|
@@ -190,7 +169,7 @@ dependencies:
|
|
190
169
|
version: '0'
|
191
170
|
type: :development
|
192
171
|
prerelease: false
|
193
|
-
version_requirements: *
|
172
|
+
version_requirements: *2151627360
|
194
173
|
description: A highly available, reliable messaging infrastructure
|
195
174
|
email: opensource@xing.com
|
196
175
|
executables:
|
@@ -245,6 +224,7 @@ files:
|
|
245
224
|
- features/support/test_daemons/redis_configuration_client.rb
|
246
225
|
- features/support/test_daemons/redis_configuration_server.rb
|
247
226
|
- script/console
|
227
|
+
- script/console~
|
248
228
|
- script/start_rabbit
|
249
229
|
- beetle.gemspec
|
250
230
|
- Rakefile
|
@@ -271,6 +251,7 @@ files:
|
|
271
251
|
- test/colorized_test_output.rb
|
272
252
|
- test/test_helper.rb
|
273
253
|
- bin/beetle
|
254
|
+
has_rdoc: true
|
274
255
|
homepage: http://xing.github.com/beetle/
|
275
256
|
licenses: []
|
276
257
|
post_install_message: ! " *********************************************************************************************\n\n
|
@@ -295,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
295
276
|
version: 1.3.7
|
296
277
|
requirements: []
|
297
278
|
rubyforge_project:
|
298
|
-
rubygems_version: 1.
|
279
|
+
rubygems_version: 1.6.2
|
299
280
|
signing_key:
|
300
281
|
specification_version: 3
|
301
282
|
summary: High Availability AMQP Messaging with Redundant Queues
|