Class: DCell::Registry::ZkAdapter
- Inherits:
-
Object
- Object
- DCell::Registry::ZkAdapter
- Defined in:
- lib/dcell/registries/zk_adapter.rb
Defined Under Namespace
Classes: Registry
Constant Summary collapse
- PREFIX =
"/dcell"
- DEFAULT_PORT =
2181
Instance Method Summary collapse
- #clear_all_nodes ⇒ Object
- #clear_globals ⇒ Object
- #get_global(key) ⇒ Object
- #get_node(node_id) ⇒ Object
- #global_keys ⇒ Object
-
#initialize(options) ⇒ ZkAdapter
constructor
Create a new connection to Zookeeper.
- #nodes ⇒ Object
- #remove_node(node_id) ⇒ Object
- #set_global(key, value) ⇒ Object
- #set_node(node_id, addr) ⇒ Object
Constructor Details
#initialize(options) ⇒ ZkAdapter
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
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/dcell/registries/zk_adapter.rb', line 13 def initialize() # Stringify keys :/ = .inject({}) { |h,(k,v)| h[k.to_s] = v; h } @env = ['env'] || 'production' @base_path = "#{PREFIX}/#{@env}" # Let them specify a single server instead of many server = ['server'] if server servers = [server] else servers = ['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 |
Instance Method Details
#clear_all_nodes ⇒ Object
114 |
# File 'lib/dcell/registries/zk_adapter.rb', line 114 def clear_all_nodes; @node_registry.clear_all end |
#clear_globals ⇒ Object
119 |
# File 'lib/dcell/registries/zk_adapter.rb', line 119 def clear_globals; @global_registry.clear_all end |
#get_global(key) ⇒ Object
116 |
# File 'lib/dcell/registries/zk_adapter.rb', line 116 def get_global(key); @global_registry.get(key) end |
#get_node(node_id) ⇒ Object
110 |
# File 'lib/dcell/registries/zk_adapter.rb', line 110 def get_node(node_id); @node_registry.get(node_id) end |
#global_keys ⇒ Object
118 |
# File 'lib/dcell/registries/zk_adapter.rb', line 118 def global_keys; @global_registry.all end |
#nodes ⇒ Object
112 |
# File 'lib/dcell/registries/zk_adapter.rb', line 112 def nodes; @node_registry.all end |
#remove_node(node_id) ⇒ Object
113 |
# File 'lib/dcell/registries/zk_adapter.rb', line 113 def remove_node(node_id); @node_registry.clear(node_id) end |
#set_global(key, value) ⇒ Object
117 |
# 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) ⇒ Object
111 |
# File 'lib/dcell/registries/zk_adapter.rb', line 111 def set_node(node_id, addr); @node_registry.set(node_id, addr) end |