Class: DCell::Registry::ZkAdapter
- Inherits:
-
Object
- Object
- DCell::Registry::ZkAdapter
show all
- Defined in:
- lib/dcell/registries/zk_adapter.rb
Defined Under Namespace
Classes: GlobalRegistry, NodeRegistry
Constant Summary
collapse
- PREFIX =
"/dcell"
- DEFAULT_PORT =
2181
Instance Method Summary
collapse
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(options)
options = options.inject({}) { |h,(k,v)| h[k.to_s] = v; h }
@env = options['env'] || 'production'
@base_path = "#{PREFIX}/#{@env}"
server = options['server']
if server
servers = [server]
else
servers = options['servers']
raise "no Zookeeper servers given" unless servers
end
servers.map! do |server|
if server[/:\d+$/]
server
else
"#{server}:#{DEFAULT_PORT}"
end
end
@zk = ZK.new(*servers)
@node_registry = NodeRegistry.new(@zk, @base_path)
@global_registry = GlobalRegistry.new(@zk, @base_path)
end
|
Instance Method Details
#clear_globals ⇒ Object
47
48
49
|
# File 'lib/dcell/registries/zk_adapter.rb', line 47
def clear_globals
@global_registry.clear
end
|
#clear_nodes ⇒ Object
43
44
45
|
# File 'lib/dcell/registries/zk_adapter.rb', line 43
def clear_nodes
@node_registry.clear
end
|
#get_global(key) ⇒ Object
117
|
# File 'lib/dcell/registries/zk_adapter.rb', line 117
def get_global(key); @global_registry.get(key) end
|
#get_node(node_id) ⇒ Object
80
|
# File 'lib/dcell/registries/zk_adapter.rb', line 80
def get_node(node_id); @node_registry.get(node_id) end
|
#global_keys ⇒ Object
119
|
# File 'lib/dcell/registries/zk_adapter.rb', line 119
def global_keys; @global_registry.global_keys end
|
#nodes ⇒ Object
82
|
# File 'lib/dcell/registries/zk_adapter.rb', line 82
def nodes; @node_registry.nodes end
|
#set_global(key, value) ⇒ Object
118
|
# File 'lib/dcell/registries/zk_adapter.rb', line 118
def set_global(key, value); @global_registry.set(key, value) end
|
#set_node(node_id, addr) ⇒ Object
81
|
# File 'lib/dcell/registries/zk_adapter.rb', line 81
def set_node(node_id, addr); @node_registry.set(node_id, addr) end
|