class DCell::Registry::ZkAdapter
Constants
- DEFAULT_PORT
- PREFIX
Public Class Methods
new(options)
click to toggle source
Create a new connection to Zookeeper
servers: a list of Zookeeper servers to connect to. Each server in the
list has a host/port configuration
# File lib/dcell/registries/zk_adapter.rb, line 13 def initialize(options) # Stringify keys :/ options = options.inject({}) { |h,(k,v)| h[k.to_s] = v; h } @env = options['env'] || 'production' @base_path = "#{PREFIX}/#{@env}" # Let them specify a single server instead of many server = options['server'] if server servers = [server] else servers = options['servers'] raise "no Zookeeper servers given" unless servers end # Add the default Zookeeper port unless specified servers.map! do |server| if server[/:\d+$/] server else "#{server}:#{DEFAULT_PORT}" end end @zk = ZK.new(*servers) @node_registry = Registry.new(@zk, @base_path, :nodes, true) @global_registry = Registry.new(@zk, @base_path, :globals, false) end
Public Instance Methods
clear_all_nodes()
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 114 def clear_all_nodes; @node_registry.clear_all end
clear_globals()
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 119 def clear_globals; @global_registry.clear_all end
get_global(key)
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 116 def get_global(key); @global_registry.get(key) end
get_node(node_id)
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 110 def get_node(node_id); @node_registry.get(node_id) end
global_keys()
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 118 def global_keys; @global_registry.all end
nodes()
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 112 def nodes; @node_registry.all end
remove_node(node_id)
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 113 def remove_node(node_id); @node_registry.clear(node_id) end
set_global(key, value)
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 117 def set_global(key, value); @global_registry.set(key, value) end
set_node(node_id, addr)
click to toggle source
# File lib/dcell/registries/zk_adapter.rb, line 111 def set_node(node_id, addr); @node_registry.set(node_id, addr) end