zk-eventmachine 0.1.12 → 0.1.13
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/Gemfile +1 -3
- data/Rakefile +2 -2
- data/lib/z_k/z_k_event_machine/version.rb +1 -1
- data/spec/spec_helper.rb +19 -2
- data/spec/support/logging.rb +10 -5
- data/spec/z_k/z_k_event_machine/client_spec.rb +59 -25
- data/zk-eventmachine.gemspec +11 -10
- metadata +35 -21
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ end
|
|
20
20
|
rspec_task_name = "mb:#{rvm_ruby}:run_rspec"
|
21
21
|
|
22
22
|
task create_gemset_name do
|
23
|
-
sh "rvm #{rvm_ruby}
|
23
|
+
sh "rvm #{rvm_ruby} do rvm gemset create #{gemset_name}"
|
24
24
|
end
|
25
25
|
|
26
26
|
task bundle_task_name => create_gemset_name do
|
@@ -29,7 +29,7 @@ end
|
|
29
29
|
end
|
30
30
|
|
31
31
|
task rspec_task_name => bundle_task_name do
|
32
|
-
sh "rvm #{ruby_with_gemset} do bundle exec rspec spec"
|
32
|
+
sh "rvm #{ruby_with_gemset} do bundle exec rspec spec --fail-fast"
|
33
33
|
end
|
34
34
|
|
35
35
|
task 'mb:test_all' => rspec_task_name
|
data/spec/spec_helper.rb
CHANGED
@@ -10,8 +10,6 @@ require 'evented-spec'
|
|
10
10
|
# in spec/support/ and its subdirectories.
|
11
11
|
Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f}
|
12
12
|
|
13
|
-
$stderr.sync = true
|
14
|
-
|
15
13
|
case `uname -s`.chomp
|
16
14
|
when 'Linux'
|
17
15
|
$stderr.puts "WARN: setting EM.epoll = true for tests"
|
@@ -21,6 +19,25 @@ when 'Darwin'
|
|
21
19
|
EM.kqueue = true
|
22
20
|
end
|
23
21
|
|
22
|
+
# method to wait until block passed returns true or timeout (default is 2 seconds) is reached
|
23
|
+
def wait_until(timeout=2)
|
24
|
+
time_to_stop = Time.now + timeout
|
25
|
+
|
26
|
+
until yield
|
27
|
+
break if Time.now > time_to_stop
|
28
|
+
Thread.pass
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def wait_while(timeout=2)
|
33
|
+
time_to_stop = Time.now + timeout
|
34
|
+
|
35
|
+
while yield
|
36
|
+
break if Time.now > time_to_stop
|
37
|
+
Thread.pass
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
24
41
|
RSpec.configure do |config|
|
25
42
|
config.mock_with :flexmock
|
26
43
|
end
|
data/spec/support/logging.rb
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
require 'logger'
|
2
2
|
|
3
|
-
|
3
|
+
log_file = File.open(File.expand_path('../../../test.log', __FILE__), 'a').tap { |f| f.sync = true }
|
4
4
|
|
5
|
+
Logger.new(log_file).tap do |log|
|
6
|
+
log.level = Logger::DEBUG
|
7
|
+
ZK.logger = log
|
8
|
+
Zookeeper.logger = log
|
9
|
+
end
|
10
|
+
|
11
|
+
# for debugging along with C output uncomment the following
|
12
|
+
#
|
13
|
+
# $stderr.sync = true
|
5
14
|
# logger = Logger.new($stderr).tap { |l| l.level = Logger::DEBUG }
|
6
15
|
# Zookeeper.set_debug_level(4)
|
7
16
|
|
8
|
-
ZK.logger = logger
|
9
|
-
Zookeeper.logger = ZK.logger
|
10
|
-
|
11
|
-
|
12
17
|
def logger
|
13
18
|
ZK.logger
|
14
19
|
end
|
@@ -1,20 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module ZK::ZKEventMachine
|
4
|
-
|
4
|
+
shared_examples_for 'Client' do
|
5
5
|
include EventedSpec::SpecHelper
|
6
6
|
default_timeout 2.0
|
7
7
|
|
8
|
+
let(:base_path) { '/zk-em-testing' }
|
9
|
+
|
8
10
|
before do
|
9
|
-
@zk
|
10
|
-
@base_path
|
11
|
-
@zk.rm_rf(@base_path)
|
12
|
-
@zk.mkdir_p(@base_path)
|
13
|
-
@zkem = ZK::ZKEventMachine::Client.new('localhost:2181')
|
11
|
+
@zk.rm_rf(base_path)
|
12
|
+
@zk.mkdir_p(base_path)
|
14
13
|
end
|
15
14
|
|
16
15
|
after do
|
17
|
-
@zk.rm_rf(
|
16
|
+
@zk.rm_rf(base_path)
|
18
17
|
@zk.close!
|
19
18
|
end
|
20
19
|
|
@@ -54,11 +53,10 @@ module ZK::ZKEventMachine
|
|
54
53
|
end
|
55
54
|
end
|
56
55
|
|
57
|
-
|
58
56
|
describe 'get' do
|
59
57
|
describe 'success' do
|
60
58
|
before do
|
61
|
-
@path = [
|
59
|
+
@path = [base_path, 'foo'].join('/')
|
62
60
|
@data = 'this is data'
|
63
61
|
@zk.create(@path, @data)
|
64
62
|
end
|
@@ -101,7 +99,7 @@ module ZK::ZKEventMachine
|
|
101
99
|
|
102
100
|
describe 'failure' do
|
103
101
|
before do
|
104
|
-
@path = [
|
102
|
+
@path = [base_path, 'foo'].join('/')
|
105
103
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
106
104
|
end
|
107
105
|
|
@@ -139,7 +137,7 @@ module ZK::ZKEventMachine
|
|
139
137
|
describe 'create' do
|
140
138
|
describe 'success' do
|
141
139
|
before do
|
142
|
-
@path = [
|
140
|
+
@path = [base_path, 'foo'].join('/')
|
143
141
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
144
142
|
|
145
143
|
@data = 'this is data'
|
@@ -205,7 +203,7 @@ module ZK::ZKEventMachine
|
|
205
203
|
|
206
204
|
describe 'failure' do
|
207
205
|
before do
|
208
|
-
@path = [
|
206
|
+
@path = [base_path, 'foo'].join('/')
|
209
207
|
@zk.create(@path, '')
|
210
208
|
end
|
211
209
|
|
@@ -242,7 +240,7 @@ module ZK::ZKEventMachine
|
|
242
240
|
describe 'set' do
|
243
241
|
describe 'success' do
|
244
242
|
before do
|
245
|
-
@path = [
|
243
|
+
@path = [base_path, 'foo'].join('/')
|
246
244
|
@data = 'this is data'
|
247
245
|
@new_data = 'this is better data'
|
248
246
|
@zk.create(@path, @data)
|
@@ -292,7 +290,7 @@ module ZK::ZKEventMachine
|
|
292
290
|
|
293
291
|
describe 'failure' do
|
294
292
|
before do
|
295
|
-
@path = [
|
293
|
+
@path = [base_path, 'foo'].join('/')
|
296
294
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
297
295
|
end
|
298
296
|
|
@@ -328,7 +326,7 @@ module ZK::ZKEventMachine
|
|
328
326
|
|
329
327
|
describe 'exists?' do
|
330
328
|
before do
|
331
|
-
@path = [
|
329
|
+
@path = [base_path, 'foo'].join('/')
|
332
330
|
@data = 'this is data'
|
333
331
|
end
|
334
332
|
|
@@ -374,7 +372,7 @@ module ZK::ZKEventMachine
|
|
374
372
|
describe 'stat' do
|
375
373
|
describe 'success' do
|
376
374
|
before do
|
377
|
-
@path = [
|
375
|
+
@path = [base_path, 'foo'].join('/')
|
378
376
|
@data = 'this is data'
|
379
377
|
@zk.create(@path, @data)
|
380
378
|
@orig_stat = @zk.stat(@path)
|
@@ -416,7 +414,7 @@ module ZK::ZKEventMachine
|
|
416
414
|
|
417
415
|
describe 'non-existent node' do
|
418
416
|
before do
|
419
|
-
@path = [
|
417
|
+
@path = [base_path, 'foo'].join('/')
|
420
418
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
421
419
|
end
|
422
420
|
|
@@ -445,7 +443,7 @@ module ZK::ZKEventMachine
|
|
445
443
|
describe 'delete' do
|
446
444
|
describe 'success' do
|
447
445
|
before do
|
448
|
-
@path = [
|
446
|
+
@path = [base_path, 'foo'].join('/')
|
449
447
|
@data = 'this is data'
|
450
448
|
@zk.create(@path, @data)
|
451
449
|
end
|
@@ -483,7 +481,7 @@ module ZK::ZKEventMachine
|
|
483
481
|
|
484
482
|
describe 'failure' do
|
485
483
|
before do
|
486
|
-
@path = [
|
484
|
+
@path = [base_path, 'foo'].join('/')
|
487
485
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
488
486
|
end
|
489
487
|
|
@@ -520,7 +518,7 @@ module ZK::ZKEventMachine
|
|
520
518
|
describe 'children' do
|
521
519
|
describe 'success' do
|
522
520
|
before do
|
523
|
-
@path = [
|
521
|
+
@path = [base_path, 'foo'].join('/')
|
524
522
|
@child_1_path = [@path, 'child_1'].join('/')
|
525
523
|
@child_2_path = [@path, 'child_2'].join('/')
|
526
524
|
|
@@ -574,7 +572,7 @@ module ZK::ZKEventMachine
|
|
574
572
|
|
575
573
|
describe 'failure' do
|
576
574
|
before do
|
577
|
-
@path = [
|
575
|
+
@path = [base_path, 'foo'].join('/')
|
578
576
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
579
577
|
end
|
580
578
|
|
@@ -611,7 +609,7 @@ module ZK::ZKEventMachine
|
|
611
609
|
describe 'get_acl' do
|
612
610
|
describe 'success' do
|
613
611
|
before do
|
614
|
-
@path = [
|
612
|
+
@path = [base_path, 'foo'].join('/')
|
615
613
|
@data = 'this is data'
|
616
614
|
@zk.create(@path, @data)
|
617
615
|
end
|
@@ -655,7 +653,7 @@ module ZK::ZKEventMachine
|
|
655
653
|
|
656
654
|
describe 'failure' do
|
657
655
|
before do
|
658
|
-
@path = [
|
656
|
+
@path = [base_path, 'foo'].join('/')
|
659
657
|
@zk.delete(@path) rescue ZK::Exceptions::NoNode
|
660
658
|
end
|
661
659
|
|
@@ -717,7 +715,6 @@ module ZK::ZKEventMachine
|
|
717
715
|
em do
|
718
716
|
@zkem.session_passwd.should be_nil
|
719
717
|
|
720
|
-
|
721
718
|
@zkem.connect do
|
722
719
|
@zkem.session_passwd.should be_kind_of(String)
|
723
720
|
@zkem.close! { done }
|
@@ -728,7 +725,7 @@ module ZK::ZKEventMachine
|
|
728
725
|
|
729
726
|
describe 'on_connection_lost' do
|
730
727
|
before do
|
731
|
-
@path = [
|
728
|
+
@path = [base_path, 'foo'].join('/')
|
732
729
|
@data = 'this is data'
|
733
730
|
@zk.create(@path, @data)
|
734
731
|
end
|
@@ -816,5 +813,42 @@ module ZK::ZKEventMachine
|
|
816
813
|
end
|
817
814
|
end # on_connecting
|
818
815
|
end # Client
|
816
|
+
|
817
|
+
describe 'regular' do
|
818
|
+
|
819
|
+
before do
|
820
|
+
@zkem = ZK::ZKEventMachine::Client.new('localhost:2181')
|
821
|
+
@zk = ZK.new.tap { |z| wait_until { z.connected? } }
|
822
|
+
@zk.should be_connected
|
823
|
+
end
|
824
|
+
|
825
|
+
it_should_behave_like 'Client'
|
826
|
+
end
|
827
|
+
|
828
|
+
describe 'chrooted' do
|
829
|
+
let(:chroot_path) { '/_zkem_chroot_' }
|
830
|
+
let(:zk_connect_host) { "localhost:2181#{chroot_path}" }
|
831
|
+
|
832
|
+
before :all do
|
833
|
+
ZK.open('localhost:2181') do |z|
|
834
|
+
z.rm_rf(chroot_path)
|
835
|
+
z.mkdir_p(chroot_path)
|
836
|
+
end
|
837
|
+
end
|
838
|
+
|
839
|
+
after :all do
|
840
|
+
ZK.open('localhost:2181') do |z|
|
841
|
+
z.rm_rf(chroot_path)
|
842
|
+
end
|
843
|
+
end
|
844
|
+
|
845
|
+
before do
|
846
|
+
@zkem = ZK::ZKEventMachine::Client.new(zk_connect_host)
|
847
|
+
@zk = ZK.new(zk_connect_host).tap { |z| wait_until { z.connected? } }
|
848
|
+
@zk.should be_connected
|
849
|
+
end
|
850
|
+
|
851
|
+
it_should_behave_like 'Client'
|
852
|
+
end
|
819
853
|
end # ZK::ZKEventMachine
|
820
854
|
|
data/zk-eventmachine.gemspec
CHANGED
@@ -12,19 +12,20 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{ZK client for EventMachine-based (async) applications}
|
13
13
|
s.description = s.description
|
14
14
|
|
15
|
-
s.add_dependency
|
15
|
+
s.add_dependency 'zk', '~> 0.8.7'
|
16
16
|
|
17
17
|
# zk depends on slyphon-zookeeper, but we need at least this version
|
18
|
-
s.add_dependency
|
19
|
-
s.add_dependency
|
20
|
-
s.add_dependency
|
18
|
+
s.add_dependency 'slyphon-zookeeper', '~> 0.3.0'
|
19
|
+
s.add_dependency 'eventmachine', '~> 1.0.0.beta.4'
|
20
|
+
s.add_dependency 'deferred', '~> 0.5.3'
|
21
21
|
|
22
|
-
s.add_development_dependency
|
23
|
-
s.add_development_dependency
|
24
|
-
s.add_development_dependency
|
25
|
-
s.add_development_dependency
|
26
|
-
s.add_development_dependency
|
27
|
-
s.add_development_dependency
|
22
|
+
s.add_development_dependency 'rspec', '~> 2.8.0'
|
23
|
+
s.add_development_dependency 'yard', '~> 0.7.0'
|
24
|
+
s.add_development_dependency 'autotest', '>= 4.4.0'
|
25
|
+
s.add_development_dependency 'flexmock', '~> 0.8.10'
|
26
|
+
s.add_development_dependency 'evented-spec','~> 0.9.0'
|
27
|
+
s.add_development_dependency 'redcarpet', '~> 2.1.0'
|
28
|
+
s.add_development_dependency 'rake'
|
28
29
|
|
29
30
|
s.files = `git ls-files`.split("\n")
|
30
31
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zk-eventmachine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 13
|
10
|
+
version: 0.1.13
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jonathan D. Simms
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-04-11 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: zk
|
@@ -25,12 +25,12 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
28
|
+
hash: 49
|
29
29
|
segments:
|
30
30
|
- 0
|
31
31
|
- 8
|
32
|
-
-
|
33
|
-
version: 0.8.
|
32
|
+
- 7
|
33
|
+
version: 0.8.7
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -41,12 +41,12 @@ dependencies:
|
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
hash:
|
44
|
+
hash: 19
|
45
45
|
segments:
|
46
46
|
- 0
|
47
|
-
-
|
48
|
-
-
|
49
|
-
version: 0.
|
47
|
+
- 3
|
48
|
+
- 0
|
49
|
+
version: 0.3.0
|
50
50
|
type: :runtime
|
51
51
|
version_requirements: *id002
|
52
52
|
- !ruby/object:Gem::Dependency
|
@@ -57,14 +57,14 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
hash:
|
60
|
+
hash: 62196363
|
61
61
|
segments:
|
62
62
|
- 1
|
63
63
|
- 0
|
64
64
|
- 0
|
65
65
|
- beta
|
66
|
-
-
|
67
|
-
version: 1.0.0.beta.
|
66
|
+
- 4
|
67
|
+
version: 1.0.0.beta.4
|
68
68
|
type: :runtime
|
69
69
|
version_requirements: *id003
|
70
70
|
- !ruby/object:Gem::Dependency
|
@@ -91,12 +91,12 @@ dependencies:
|
|
91
91
|
requirements:
|
92
92
|
- - ~>
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
hash:
|
94
|
+
hash: 47
|
95
95
|
segments:
|
96
96
|
- 2
|
97
|
-
-
|
97
|
+
- 8
|
98
98
|
- 0
|
99
|
-
version: 2.
|
99
|
+
version: 2.8.0
|
100
100
|
type: :development
|
101
101
|
version_requirements: *id005
|
102
102
|
- !ruby/object:Gem::Dependency
|
@@ -155,12 +155,12 @@ dependencies:
|
|
155
155
|
requirements:
|
156
156
|
- - ~>
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
hash:
|
158
|
+
hash: 59
|
159
159
|
segments:
|
160
160
|
- 0
|
161
|
-
-
|
162
|
-
-
|
163
|
-
version: 0.
|
161
|
+
- 9
|
162
|
+
- 0
|
163
|
+
version: 0.9.0
|
164
164
|
type: :development
|
165
165
|
version_requirements: *id009
|
166
166
|
- !ruby/object:Gem::Dependency
|
@@ -179,6 +179,20 @@ dependencies:
|
|
179
179
|
version: 2.1.0
|
180
180
|
type: :development
|
181
181
|
version_requirements: *id010
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: rake
|
184
|
+
prerelease: false
|
185
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
187
|
+
requirements:
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
hash: 3
|
191
|
+
segments:
|
192
|
+
- 0
|
193
|
+
version: "0"
|
194
|
+
type: :development
|
195
|
+
version_requirements: *id011
|
182
196
|
description: ""
|
183
197
|
email:
|
184
198
|
- slyphon@hp.com
|