Sha256: 64b655e7b330a16614a866fed574512a458e890994e628da91d99ba00cd58b0f

Contents?: true

Size: 1.09 KB

Versions: 16

Compression:

Stored size: 1.09 KB

Contents

module ZK_Setup
  def self.start_zk(port=21811)
    @port = port
    if SPAWN_ZK
      kill_old_zk_servers
      remove_zk_data
      server = ZK::Server.new do |config|
        config.client_port = port
        config.client_port_address = 'localhost'
        config.force_sync = false
        config.tick_time = 2000
        config.init_limit = 10
        config.sync_limit = 5
        config.snap_count = 1000000
        config.base_dir = zk_dir
      end
      server.run
      @zk_server = server
      ENV['ZK_URL'] = "localhost:#{port}"
    end
  end

  def self.stop_zk
    if SPAWN_ZK
      @zk_server.shutdown
    end
  end

  def self.zk_dir
    File.join CELLECT_ROOT, 'tmp/zookeeper'
  end

  def self.zk_ok?
    `echo ruok | nc 127.0.0.1 #{@port}`.chomp == 'imok'
  end

  def self.kill_old_zk_servers
    if zk_ok?
      pid = `ps aux | grep -e 'Cellect[\/]tmp[\/]zookeeper'`.split[1]
      puts "Killing rogue zookeeper process: #{ pid }..."
      `kill -s TERM #{ pid }`
      sleep 1
    end
  end

  def self.remove_zk_data
    `rm -rf #{ zk_dir }; mkdir -p #{ zk_dir }`
  end
end

ZK_Setup.start_zk

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
cellect-client-1.3.3 spec/support/zk_setup.rb
cellect-server-1.3.3 spec/support/zk_setup.rb
cellect-client-1.3.2 spec/support/zk_setup.rb
cellect-server-1.3.2 spec/support/zk_setup.rb
cellect-client-1.3.1 spec/support/zk_setup.rb
cellect-server-1.3.1 spec/support/zk_setup.rb
cellect-client-1.3.0 spec/support/zk_setup.rb
cellect-server-1.3.0 spec/support/zk_setup.rb
cellect-client-1.2.0 spec/support/zk_setup.rb
cellect-server-1.2.0 spec/support/zk_setup.rb
cellect-client-1.1.0 spec/support/zk_setup.rb
cellect-server-1.1.0 spec/support/zk_setup.rb
cellect-client-1.0.1 spec/support/zk_setup.rb
cellect-server-1.0.1 spec/support/zk_setup.rb
cellect-client-1.0.0 spec/support/zk_setup.rb
cellect-server-1.0.0 spec/support/zk_setup.rb