beetle 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/beetle.gemspec +3 -3
- data/lib/beetle.rb +1 -1
- data/lib/beetle/client.rb +1 -1
- data/lib/beetle/redis_configuration_http_server.rb +10 -4
- data/lib/beetle/version.rb +1 -1
- data/test/beetle/amqp_gem_behavior_test.rb +20 -17
- metadata +19 -19
data/beetle.gemspec
CHANGED
@@ -36,9 +36,9 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_runtime_dependency("bunny", ["= 0.7.9"])
|
37
37
|
s.add_runtime_dependency("redis", [">= 2.2.2", "< 3.1"])
|
38
38
|
s.add_runtime_dependency("hiredis", ["= 0.4.5"])
|
39
|
-
s.add_runtime_dependency("amq-client", ["= 0.
|
40
|
-
s.add_runtime_dependency("amq-protocol", ["= 1.
|
41
|
-
s.add_runtime_dependency("amqp", ["= 0.
|
39
|
+
s.add_runtime_dependency("amq-client", ["= 1.0.2"])
|
40
|
+
s.add_runtime_dependency("amq-protocol", ["= 1.6.0"])
|
41
|
+
s.add_runtime_dependency("amqp", ["= 1.0.2"])
|
42
42
|
s.add_runtime_dependency("activesupport", [">= 2.3.4"])
|
43
43
|
s.add_runtime_dependency("eventmachine_httpserver", [">= 0.2.1"])
|
44
44
|
s.add_runtime_dependency("daemons", [">= 1.0.10"])
|
data/lib/beetle.rb
CHANGED
@@ -17,7 +17,7 @@ module Beetle
|
|
17
17
|
begin
|
18
18
|
require 'system_timer'
|
19
19
|
SystemTimer
|
20
|
-
rescue Exception
|
20
|
+
rescue Exception
|
21
21
|
warn "WARNING: It's highly recommended to install the SystemTimer gem: `gem install SystemTimer -v '=1.2.1'` See: http://ph7spot.com/musings/system-timer" if RUBY_VERSION < "1.9"
|
22
22
|
require 'timeout'
|
23
23
|
Timeout
|
data/lib/beetle/client.rb
CHANGED
@@ -60,7 +60,7 @@ module Beetle
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def plain_text_response(status)
|
63
|
-
status.keys.sort_by{|k| k.to_s}.map do |k|
|
63
|
+
status.keys.sort_by{|k| k.to_s}.reverse.map do |k|
|
64
64
|
name = k.to_s # .split('_').join(" ")
|
65
65
|
if (value = status[k]).is_a?(Array)
|
66
66
|
value = value.join(", ")
|
@@ -75,7 +75,11 @@ module Beetle
|
|
75
75
|
b << "<body><h1>Beetle Configuration Server Status</h1><table cellspacing=0>\n"
|
76
76
|
plain_text_response(status).split("\n").compact.each do |row|
|
77
77
|
row =~/(^[^:]+): (.*)$/
|
78
|
-
|
78
|
+
name, value = $1, $2
|
79
|
+
if value =~ /,/
|
80
|
+
value = "<ul>" << value.split(/\s*,\s*/).map{|s| "<li>#{s}</li>"}.join << "</ul>"
|
81
|
+
end
|
82
|
+
b << "<tr><td>#{name}</td><td>#{value}</td></tr>\n"
|
79
83
|
end
|
80
84
|
b << "</table>"
|
81
85
|
unless status[:redis_master_available?]
|
@@ -92,8 +96,10 @@ module Beetle
|
|
92
96
|
<style media="screen" type="text/css">
|
93
97
|
html { font: 1.25em/1.5 arial, sans-serif;}
|
94
98
|
body { margin: 1em; }
|
95
|
-
table tr:nth-child(2n+1){ background
|
96
|
-
td { padding: 0.1em 0.2em; }
|
99
|
+
table tr:nth-child(2n+1){ background-color: #ffffff; }
|
100
|
+
td { padding: 0.1em 0.2em; vertical-align: top; }
|
101
|
+
ul { list-style-type: none; margin: 0; padding: 0;}
|
102
|
+
li { }
|
97
103
|
h1 { color: #{warn_color}; margin-bottom: 0.2em;}
|
98
104
|
a:link, a:visited {text-decoration:none; color:#A52A2A;}
|
99
105
|
a:hover, a:active {text-decoration:none; color:#FF0000;}
|
data/lib/beetle/version.rb
CHANGED
@@ -2,29 +2,32 @@ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
|
2
2
|
require 'eventmachine'
|
3
3
|
require 'amqp'
|
4
4
|
|
5
|
+
AMQP.client.logger = Beetle.config.logger
|
6
|
+
|
5
7
|
class AMQPGemBehaviorTest < Test::Unit::TestCase
|
6
8
|
test "subscribing twice to the same queue raises a RuntimeError which throws us out of the event loop" do
|
7
9
|
begin
|
8
|
-
|
10
|
+
exception = nil
|
9
11
|
EM.run do
|
10
|
-
AMQP.start do |connection|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
queue.subscribe { }
|
20
|
-
rescue
|
21
|
-
# we never get here, because the subscription is deferred
|
22
|
-
# the only known way to avoid this is to use the block version of AMQP::Queue.new
|
23
|
-
end
|
12
|
+
AMQP.start(:logging => false) do |connection|
|
13
|
+
EM::Timer.new(1){ connection.close { EM.stop }}
|
14
|
+
channel = AMQP::Channel.new(connection)
|
15
|
+
channel.on_error { puts "woot"}
|
16
|
+
exchange = channel.topic("beetle_tests")
|
17
|
+
queue = AMQP::Queue.new(channel)
|
18
|
+
queue.bind(exchange, :key => "#")
|
19
|
+
queue.subscribe { }
|
20
|
+
queue.subscribe { }
|
24
21
|
end
|
25
22
|
end
|
26
|
-
rescue
|
23
|
+
rescue AMQP::TCPConnectionFailed
|
24
|
+
if ENV['TRAVIS']=='true'
|
25
|
+
assert true
|
26
|
+
else
|
27
|
+
flunk "\nbroker not running.\nplease start it to test the behavior of subscribing to a queue twice."
|
28
|
+
end
|
29
|
+
rescue Exception => exception
|
30
|
+
assert_kind_of RuntimeError, exception
|
27
31
|
end
|
28
|
-
assert @exception
|
29
32
|
end
|
30
33
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: beetle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Stefan Kaes
|
@@ -13,17 +13,17 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-
|
16
|
+
date: 2013-06-07 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: uuid4r
|
20
|
+
type: :runtime
|
20
21
|
requirement: !ruby/object:Gem::Requirement
|
21
22
|
requirements:
|
22
23
|
- - ! '>='
|
23
24
|
- !ruby/object:Gem::Version
|
24
25
|
version: 0.1.2
|
25
26
|
none: false
|
26
|
-
type: :runtime
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - ! '>='
|
@@ -33,13 +33,13 @@ dependencies:
|
|
33
33
|
prerelease: false
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: bunny
|
36
|
+
type: :runtime
|
36
37
|
requirement: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
39
|
- - '='
|
39
40
|
- !ruby/object:Gem::Version
|
40
41
|
version: 0.7.9
|
41
42
|
none: false
|
42
|
-
type: :runtime
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
@@ -49,6 +49,7 @@ dependencies:
|
|
49
49
|
prerelease: false
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: redis
|
52
|
+
type: :runtime
|
52
53
|
requirement: !ruby/object:Gem::Requirement
|
53
54
|
requirements:
|
54
55
|
- - ! '>='
|
@@ -58,7 +59,6 @@ dependencies:
|
|
58
59
|
- !ruby/object:Gem::Version
|
59
60
|
version: '3.1'
|
60
61
|
none: false
|
61
|
-
type: :runtime
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -71,13 +71,13 @@ dependencies:
|
|
71
71
|
prerelease: false
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: hiredis
|
74
|
+
type: :runtime
|
74
75
|
requirement: !ruby/object:Gem::Requirement
|
75
76
|
requirements:
|
76
77
|
- - '='
|
77
78
|
- !ruby/object:Gem::Version
|
78
79
|
version: 0.4.5
|
79
80
|
none: false
|
80
|
-
type: :runtime
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - '='
|
@@ -87,61 +87,61 @@ dependencies:
|
|
87
87
|
prerelease: false
|
88
88
|
- !ruby/object:Gem::Dependency
|
89
89
|
name: amq-client
|
90
|
+
type: :runtime
|
90
91
|
requirement: !ruby/object:Gem::Requirement
|
91
92
|
requirements:
|
92
93
|
- - '='
|
93
94
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
95
|
+
version: 1.0.2
|
95
96
|
none: false
|
96
|
-
type: :runtime
|
97
97
|
version_requirements: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - '='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0.
|
101
|
+
version: 1.0.2
|
102
102
|
none: false
|
103
103
|
prerelease: false
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: amq-protocol
|
106
|
+
type: :runtime
|
106
107
|
requirement: !ruby/object:Gem::Requirement
|
107
108
|
requirements:
|
108
109
|
- - '='
|
109
110
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
111
|
+
version: 1.6.0
|
111
112
|
none: false
|
112
|
-
type: :runtime
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.6.0
|
118
118
|
none: false
|
119
119
|
prerelease: false
|
120
120
|
- !ruby/object:Gem::Dependency
|
121
121
|
name: amqp
|
122
|
+
type: :runtime
|
122
123
|
requirement: !ruby/object:Gem::Requirement
|
123
124
|
requirements:
|
124
125
|
- - '='
|
125
126
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.
|
127
|
+
version: 1.0.2
|
127
128
|
none: false
|
128
|
-
type: :runtime
|
129
129
|
version_requirements: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - '='
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.
|
133
|
+
version: 1.0.2
|
134
134
|
none: false
|
135
135
|
prerelease: false
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: activesupport
|
138
|
+
type: :runtime
|
138
139
|
requirement: !ruby/object:Gem::Requirement
|
139
140
|
requirements:
|
140
141
|
- - ! '>='
|
141
142
|
- !ruby/object:Gem::Version
|
142
143
|
version: 2.3.4
|
143
144
|
none: false
|
144
|
-
type: :runtime
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
146
146
|
requirements:
|
147
147
|
- - ! '>='
|
@@ -151,13 +151,13 @@ dependencies:
|
|
151
151
|
prerelease: false
|
152
152
|
- !ruby/object:Gem::Dependency
|
153
153
|
name: eventmachine_httpserver
|
154
|
+
type: :runtime
|
154
155
|
requirement: !ruby/object:Gem::Requirement
|
155
156
|
requirements:
|
156
157
|
- - ! '>='
|
157
158
|
- !ruby/object:Gem::Version
|
158
159
|
version: 0.2.1
|
159
160
|
none: false
|
160
|
-
type: :runtime
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
163
|
- - ! '>='
|
@@ -167,13 +167,13 @@ dependencies:
|
|
167
167
|
prerelease: false
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: daemons
|
170
|
+
type: :runtime
|
170
171
|
requirement: !ruby/object:Gem::Requirement
|
171
172
|
requirements:
|
172
173
|
- - ! '>='
|
173
174
|
- !ruby/object:Gem::Version
|
174
175
|
version: 1.0.10
|
175
176
|
none: false
|
176
|
-
type: :runtime
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
179
|
- - ! '>='
|
@@ -281,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
281
281
|
- !ruby/object:Gem::Version
|
282
282
|
segments:
|
283
283
|
- 0
|
284
|
-
hash:
|
284
|
+
hash: 872771783453317640
|
285
285
|
version: '0'
|
286
286
|
none: false
|
287
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|