zk 0.8.7 → 0.8.8
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/Rakefile +10 -5
 - data/lib/z_k/client/unixisms.rb +1 -1
 - data/lib/z_k/exceptions.rb +4 -0
 - data/lib/z_k/version.rb +1 -1
 - data/spec/z_k/locker_spec.rb +38 -18
 - metadata +5 -5
 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -9,12 +9,17 @@ 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            gemset_name = 'zk'
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            %w[1.9.3 jruby].each do |rvm_ruby|
         
     | 
| 
      
 12 
     | 
    
         
            +
            %w[1.8.7 1.9.2 1.9.3 jruby].each do |rvm_ruby|
         
     | 
| 
       13 
13 
     | 
    
         
             
              ruby_with_gemset = "#{rvm_ruby}@#{gemset_name}"
         
     | 
| 
       14 
     | 
    
         
            -
               
     | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
      
 14 
     | 
    
         
            +
              create_gemset_task_name = "mb:#{rvm_ruby}:create_gemset"
         
     | 
| 
      
 15 
     | 
    
         
            +
              bundle_task_name        = "mb:#{rvm_ruby}:bundle_install"
         
     | 
| 
      
 16 
     | 
    
         
            +
              rspec_task_name         = "mb:#{rvm_ruby}:run_rspec"
         
     | 
| 
       16 
17 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
              task  
     | 
| 
      
 18 
     | 
    
         
            +
              task create_gemset_task_name do
         
     | 
| 
      
 19 
     | 
    
         
            +
                sh "rvm #{rvm_ruby} do rvm gemset create #{gemset_name}"
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              task bundle_task_name => create_gemset_task_name do
         
     | 
| 
       18 
23 
     | 
    
         
             
                rm_f 'Gemfile.lock'
         
     | 
| 
       19 
24 
     | 
    
         
             
                sh "rvm #{ruby_with_gemset} do bundle install"
         
     | 
| 
       20 
25 
     | 
    
         
             
              end
         
     | 
| 
         @@ -23,6 +28,6 @@ gemset_name = 'zk' 
     | 
|
| 
       23 
28 
     | 
    
         
             
                sh "rvm #{ruby_with_gemset} do bundle exec rspec spec --fail-fast"
         
     | 
| 
       24 
29 
     | 
    
         
             
              end
         
     | 
| 
       25 
30 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              task "mb: 
     | 
| 
      
 31 
     | 
    
         
            +
              task "mb:test_all" => rspec_task_name
         
     | 
| 
       27 
32 
     | 
    
         
             
            end
         
     | 
| 
       28 
33 
     | 
    
         | 
    
        data/lib/z_k/client/unixisms.rb
    CHANGED
    
    | 
         @@ -25,7 +25,7 @@ module ZK 
     | 
|
| 
       25 
25 
     | 
    
         
             
                  rescue Exceptions::NoNode
         
     | 
| 
       26 
26 
     | 
    
         
             
                    if File.dirname(path) == '/'
         
     | 
| 
       27 
27 
     | 
    
         
             
                      # ok, we're screwed, blow up
         
     | 
| 
       28 
     | 
    
         
            -
                      raise  
     | 
| 
      
 28 
     | 
    
         
            +
                      raise Exceptions::NonExistentRootError, "could not create '/', are you chrooted into a non-existent path?", caller
         
     | 
| 
       29 
29 
     | 
    
         
             
                    end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                    mkdir_p(File.dirname(path))
         
     | 
    
        data/lib/z_k/exceptions.rb
    CHANGED
    
    | 
         @@ -96,6 +96,10 @@ module ZK 
     | 
|
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
                # raised when assert_locked_for_share! is called and no shared lock is held
         
     | 
| 
       98 
98 
     | 
    
         
             
                class MustBeShareLockedException < ZKError; end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                # raised for certain operations when using a chrooted connection, but the
         
     | 
| 
      
 101 
     | 
    
         
            +
                # root doesn't exist.
         
     | 
| 
      
 102 
     | 
    
         
            +
                class NonExistentRootError < ZKError; end
         
     | 
| 
       99 
103 
     | 
    
         
             
              end
         
     | 
| 
       100 
104 
     | 
    
         
             
            end
         
     | 
| 
       101 
105 
     | 
    
         | 
    
        data/lib/z_k/version.rb
    CHANGED
    
    
    
        data/spec/z_k/locker_spec.rb
    CHANGED
    
    | 
         @@ -393,33 +393,53 @@ describe "ZK::Locker chrooted" do 
     | 
|
| 
       393 
393 
     | 
    
         
             
              let(:chroot_path) { '/_zk_chroot_' }
         
     | 
| 
       394 
394 
     | 
    
         | 
| 
       395 
395 
     | 
    
         
             
              let(:zk)  { ZK.new("localhost:#{ZK_TEST_PORT}#{chroot_path}") }
         
     | 
| 
       396 
     | 
    
         
            -
              let(:zk2) { ZK.new("localhost:#{ZK_TEST_PORT}#{chroot_path}") }
         
     | 
| 
       397 
     | 
    
         
            -
              let(:zk3) { ZK.new("localhost:#{ZK_TEST_PORT}#{chroot_path}") }
         
     | 
| 
       398 
396 
     | 
    
         | 
| 
       399 
     | 
    
         
            -
               
     | 
| 
      
 397 
     | 
    
         
            +
              describe 'when the chroot exists' do
         
     | 
| 
      
 398 
     | 
    
         
            +
                let(:zk2) { ZK.new("localhost:#{ZK_TEST_PORT}#{chroot_path}") }
         
     | 
| 
      
 399 
     | 
    
         
            +
                let(:zk3) { ZK.new("localhost:#{ZK_TEST_PORT}#{chroot_path}") }
         
     | 
| 
       400 
400 
     | 
    
         | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
              let(:root_lock_path) { "/_zklocking/#{path}" }
         
     | 
| 
      
 401 
     | 
    
         
            +
                let(:connections) { [zk, zk2, zk3] }
         
     | 
| 
       403 
402 
     | 
    
         | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
                 
     | 
| 
       406 
     | 
    
         
            -
             
     | 
| 
      
 403 
     | 
    
         
            +
                let(:path) { "shlock" }
         
     | 
| 
      
 404 
     | 
    
         
            +
                let(:root_lock_path) { "/_zklocking/#{path}" }
         
     | 
| 
      
 405 
     | 
    
         
            +
             
     | 
| 
      
 406 
     | 
    
         
            +
                before do
         
     | 
| 
      
 407 
     | 
    
         
            +
                  ZK.open("localhost:#{ZK_TEST_PORT}") do |zk|
         
     | 
| 
      
 408 
     | 
    
         
            +
                    zk.mkdir_p(chroot_path)
         
     | 
| 
      
 409 
     | 
    
         
            +
                  end
         
     | 
| 
      
 410 
     | 
    
         
            +
             
     | 
| 
      
 411 
     | 
    
         
            +
                  wait_until{ connections.all?(&:connected?) }
         
     | 
| 
       407 
412 
     | 
    
         
             
                end
         
     | 
| 
       408 
413 
     | 
    
         | 
| 
       409 
     | 
    
         
            -
                 
     | 
| 
      
 414 
     | 
    
         
            +
                after do
         
     | 
| 
      
 415 
     | 
    
         
            +
                  connections.each { |c| c.close! }
         
     | 
| 
      
 416 
     | 
    
         
            +
                  wait_until { !connections.any?(&:connected?) }
         
     | 
| 
      
 417 
     | 
    
         
            +
             
     | 
| 
      
 418 
     | 
    
         
            +
                  ZK.open("localhost:#{ZK_TEST_PORT}") do |zk|
         
     | 
| 
      
 419 
     | 
    
         
            +
                    zk.rm_rf(chroot_path)
         
     | 
| 
      
 420 
     | 
    
         
            +
                  end
         
     | 
| 
      
 421 
     | 
    
         
            +
                end
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
      
 423 
     | 
    
         
            +
                it_should_behave_like 'SharedLocker'
         
     | 
| 
      
 424 
     | 
    
         
            +
                it_should_behave_like 'ExclusiveLocker'
         
     | 
| 
      
 425 
     | 
    
         
            +
                it_should_behave_like 'shared-exclusive interaction'
         
     | 
| 
       410 
426 
     | 
    
         
             
              end
         
     | 
| 
       411 
427 
     | 
    
         | 
| 
       412 
     | 
    
         
            -
               
     | 
| 
       413 
     | 
    
         
            -
                 
     | 
| 
       414 
     | 
    
         
            -
             
     | 
| 
      
 428 
     | 
    
         
            +
              describe "when the root doesn't exist" do
         
     | 
| 
      
 429 
     | 
    
         
            +
                let(:lock_name) { 'master' }
         
     | 
| 
      
 430 
     | 
    
         
            +
             
     | 
| 
      
 431 
     | 
    
         
            +
                it %[should raise a NonExistentRootError] do
         
     | 
| 
      
 432 
     | 
    
         
            +
                  @got_lock = false
         
     | 
| 
      
 433 
     | 
    
         
            +
             
     | 
| 
      
 434 
     | 
    
         
            +
                  lambda do
         
     | 
| 
      
 435 
     | 
    
         
            +
                    zk.with_lock(lock_name) do
         
     | 
| 
      
 436 
     | 
    
         
            +
                      @got_lock = true
         
     | 
| 
      
 437 
     | 
    
         
            +
                    end
         
     | 
| 
      
 438 
     | 
    
         
            +
                  end.should raise_error(ZK::Exceptions::NonExistentRootError)
         
     | 
| 
      
 439 
     | 
    
         
            +
             
     | 
| 
       415 
440 
     | 
    
         | 
| 
       416 
     | 
    
         
            -
             
     | 
| 
       417 
     | 
    
         
            -
                  zk.rm_rf(chroot_path)
         
     | 
| 
      
 441 
     | 
    
         
            +
                  @got_lock.should_not be_true
         
     | 
| 
       418 
442 
     | 
    
         
             
                end
         
     | 
| 
       419 
443 
     | 
    
         
             
              end
         
     | 
| 
       420 
     | 
    
         
            -
             
     | 
| 
       421 
     | 
    
         
            -
              it_should_behave_like 'SharedLocker'
         
     | 
| 
       422 
     | 
    
         
            -
              it_should_behave_like 'ExclusiveLocker'
         
     | 
| 
       423 
     | 
    
         
            -
              it_should_behave_like 'shared-exclusive interaction'
         
     | 
| 
       424 
444 
     | 
    
         
             
            end
         
     | 
| 
       425 
445 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: zk
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 47
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 8
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 0.8. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 8
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.8.8
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Jonathan D. Simms
         
     | 
| 
         @@ -16,7 +16,7 @@ autorequire: 
     | 
|
| 
       16 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            date: 2012-04- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2012-04-13 00:00:00 Z
         
     | 
| 
       20 
20 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
21 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       22 
22 
     | 
    
         
             
              name: slyphon-zookeeper
         
     | 
| 
         @@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       184 
184 
     | 
    
         
             
            requirements: []
         
     | 
| 
       185 
185 
     | 
    
         | 
| 
       186 
186 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       187 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 187 
     | 
    
         
            +
            rubygems_version: 1.8.15
         
     | 
| 
       188 
188 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       189 
189 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       190 
190 
     | 
    
         
             
            summary: A high-level wrapper around the zookeeper driver
         
     |