zookeeper 0.9.4 → 1.0.0.beta.1

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.
Files changed (44) hide show
  1. data/.dotfiles/rvmrc +1 -0
  2. data/.gitignore +3 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +22 -0
  5. data/CHANGELOG +38 -5
  6. data/Gemfile +18 -1
  7. data/README.markdown +2 -0
  8. data/Rakefile +47 -109
  9. data/ext/c_zookeeper.rb +10 -6
  10. data/ext/zookeeper_base.rb +23 -11
  11. data/ext/zookeeper_c.c +14 -10
  12. data/java/{zookeeper_base.rb → java_base.rb} +13 -12
  13. data/lib/zookeeper.rb +32 -244
  14. data/lib/zookeeper/acls.rb +17 -13
  15. data/lib/zookeeper/callbacks.rb +28 -11
  16. data/lib/zookeeper/client.rb +30 -0
  17. data/lib/zookeeper/client_methods.rb +241 -0
  18. data/lib/zookeeper/common.rb +13 -12
  19. data/lib/zookeeper/common/queue_with_pipe.rb +3 -7
  20. data/lib/zookeeper/compatibility.rb +135 -0
  21. data/lib/zookeeper/constants.rb +35 -1
  22. data/lib/zookeeper/em_client.rb +1 -1
  23. data/lib/zookeeper/exceptions.rb +117 -93
  24. data/lib/zookeeper/rake_tasks.rb +165 -0
  25. data/lib/zookeeper/stat.rb +16 -16
  26. data/lib/zookeeper/version.rb +2 -4
  27. data/scripts/upgrade-1.0-sed-alike.rb +46 -0
  28. data/spec/c_zookeeper_spec.rb +10 -9
  29. data/spec/chrooted_connection_spec.rb +2 -2
  30. data/spec/default_watcher_spec.rb +4 -4
  31. data/spec/em_spec.rb +1 -1
  32. data/spec/shared/connection_examples.rb +52 -37
  33. data/spec/spec_helper.rb +22 -84
  34. data/spec/support/00_spawn_zookeeper.rb +20 -0
  35. data/spec/support/zookeeper_spec_helpers.rb +84 -0
  36. data/spec/zookeeper_spec.rb +1 -1
  37. metadata +47 -34
  38. data/examples/cloud_config.rb +0 -125
  39. data/test/test_basic.rb +0 -37
  40. data/test/test_callback1.rb +0 -36
  41. data/test/test_close.rb +0 -16
  42. data/test/test_esoteric.rb +0 -7
  43. data/test/test_watcher1.rb +0 -56
  44. data/test/test_watcher2.rb +0 -52
@@ -1,37 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
-
4
- z = Zookeeper.new("localhost:2181")
5
-
6
- puts "root: #{z.get_children(:path => "/").inspect}"
7
-
8
- path = "/testing_node"
9
-
10
- puts "working with path #{path}"
11
-
12
- h = z.stat(:path => path)
13
- stat = h[:stat]
14
- puts "exists? #{stat.inspect}"
15
-
16
- if stat.exists
17
- z.get_children(:path => path)[:children].each do |o|
18
- puts " child object: #{o}"
19
- end
20
- puts "delete: #{z.delete(:path => path, :version => stat.version).inspect}"
21
- end
22
-
23
- puts "create: #{z.create(:path => path, :data => 'initial value').inspect}"
24
-
25
- v = z.get(:path => path)
26
- value, stat = v[:data], v[:stat]
27
- puts "current value #{value}, stat #{stat.inspect}"
28
-
29
- puts "set: #{z.set(:path => path, :data => 'this is a test', :version => stat.version).inspect}"
30
-
31
- v = z.get(:path => path)
32
- value, stat = v[:data], v[:stat]
33
- puts "new value: #{value.inspect} #{stat.inspect}"
34
-
35
- puts "delete: #{z.delete(:path => path, :version => stat.version).inspect}"
36
-
37
- puts "exists? #{z.stat(:path => path)[:stat].exists}"
@@ -1,36 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
-
4
- def wait_until(timeout=10, &block)
5
- time_to_stop = Time.now + timeout
6
- until yield do
7
- break if Time.now > time_to_stop
8
- sleep 0.1
9
- end
10
- end
11
-
12
- puts 'Initializing Zookeeper'
13
-
14
- zk = Zookeeper.new('localhost:2181')
15
-
16
- if zk.state != Zookeeper::ZOO_CONNECTED_STATE
17
- puts 'Unable to connect to Zookeeper!'
18
- Kernel.exit
19
- end
20
-
21
- def callback(args)
22
- puts "CALLBACK EXECUTED, args = #{args.inspect}"
23
- puts args.return_code == Zookeeper::ZOK ? "TEST PASSED IN CALLBACK" : "TEST FAILED IN CALLBACK"
24
- end
25
-
26
- ccb = Zookeeper::VoidCallback.new do
27
- callback(ccb)
28
- end
29
-
30
- resp = zk.create(:path => '/test', :data => "new data", :sequence => true, :callback => ccb)
31
- puts "#{resp.inspect}"
32
- puts "TEST FAILED [create]" unless resp[:rc] == Zookeeper::ZOK
33
-
34
- wait_until { ccb.completed? }
35
-
36
- puts ccb.completed? ? "TEST PASSED" : "TEST FAILED"
@@ -1,16 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
- z = Zookeeper.new("localhost:2181")
4
- path = "/testing_node"
5
- z.get(:path => path)
6
- z.create(:path => path, :data => "initial value", :ephemeral => true)
7
- z.get(:path => path)
8
- z.close()
9
- sleep 5
10
- begin
11
- z.get(:path => path)
12
- rescue Exception => e
13
- puts "Rescued exception #{e.inspect}"
14
- end
15
- z.reopen
16
- z.get(:path => path)
@@ -1,7 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
- zk = Zookeeper.new('localhost:2181')
4
-
5
- puts "get acl #{zk.get_acl(:path => '/').inspect}"
6
- puts "zerror #{zk.zerror(Zookeeper::ZBADVERSION)}"
7
-
@@ -1,56 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
-
4
- def wait_until(timeout=10, &block)
5
- time_to_stop = Time.now + timeout
6
- until yield do
7
- break if Time.now > time_to_stop
8
- sleep 0.1
9
- end
10
- end
11
-
12
- puts 'Initializing Zookeeper'
13
-
14
- zk = Zookeeper.new('localhost:2181')
15
-
16
- if zk.state != Zookeeper::ZOO_CONNECTED_STATE
17
- puts 'Unable to connect to Zookeeper!'
18
- Kernel.exit
19
- end
20
-
21
- def watcher(args)
22
- puts "#{args.inspect}"
23
- puts "In watcher: path=#{args.path}, context=#{args.context}"
24
- if args.path == args.context
25
- puts "TEST PASSED IN WATCHER"
26
- else
27
- puts "TEST FAILED IN WATCHER"
28
- end
29
- end
30
-
31
- wcb = Zookeeper::WatcherCallback.new do
32
- watcher(wcb)
33
- end
34
-
35
- resp = zk.create(:path => '/test', :sequence => true)
36
- puts "#{resp.inspect}"
37
- puts "TEST FAILED [create]" unless resp[:rc] == Zookeeper::ZOK
38
-
39
- base_path = resp[:path]
40
- watched_file = "#{base_path}/file.does.not.exist"
41
-
42
- resp = zk.stat(:path => watched_file, :watcher => wcb, :watcher_context => watched_file)
43
- puts "#{resp.inspect}"
44
- puts "TEST FAILED [stat]" unless resp[:rc] == Zookeeper::ZNONODE
45
-
46
- resp = zk.create(:path => watched_file, :data => 'test data', :ephemeral => true)
47
- puts "#{resp.inspect}"
48
- puts "TEST FAILED [create]" unless resp[:rc] == Zookeeper::ZOK
49
-
50
- wait_until { wcb.completed? }
51
-
52
- puts "TEST FAILED" unless wcb.completed?
53
- puts "TEST PASSED"
54
-
55
- zk.delete(:path => watched_file)
56
- zk.delete(:path => base_path)
@@ -1,52 +0,0 @@
1
- require 'rubygems'
2
- require 'zookeeper'
3
-
4
- def wait_until(timeout=10, &block)
5
- time_to_stop = Time.now + timeout
6
- until yield do
7
- break if Time.now > time_to_stop
8
- sleep 0.1
9
- end
10
- end
11
-
12
- puts 'Initializing Zookeeper'
13
-
14
- zk = Zookeeper.new('localhost:2181')
15
-
16
- if zk.state != Zookeeper::ZOO_CONNECTED_STATE
17
- puts 'Unable to connect to Zookeeper!'
18
- Kernel.exit
19
- end
20
-
21
- def watcher(args)
22
- if args.path == args.context
23
- puts "TEST PASSED IN WATCHER"
24
- else
25
- puts "TEST FAILED IN WATCHER"
26
- end
27
- end
28
-
29
- wcb = Zookeeper::WatcherCallback.new do
30
- watcher(wcb)
31
- end
32
-
33
- resp = zk.create(:path => '/test', :sequence => true)
34
- puts "#{resp.inspect}"
35
- puts "TEST FAILED [create]" unless resp[:rc] == Zookeeper::ZOK
36
-
37
- base_path = resp[:path]
38
- triggering_file = "#{base_path}/file.does.not.exist"
39
-
40
- resp = zk.get_children(:path => base_path, :watcher => wcb, :watcher_context => base_path)
41
- puts "TEST FAILED [get_children]" unless resp[:rc] == Zookeeper::ZOK
42
-
43
- resp = zk.create(:path => triggering_file, :data => 'test data', :ephemeral => true)
44
- puts "TEST FAILED [create]" unless resp[:rc] == Zookeeper::ZOK
45
-
46
- wait_until { wcb.completed? }
47
-
48
- puts "TEST FAILED" unless wcb.completed?
49
- puts "TEST PASSED"
50
-
51
- zk.delete(:path => triggering_file)
52
- zk.delete(:path => base_path)