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_globals ⇒ Object
- #clear_nodes ⇒ 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
- #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_globals ⇒ Object
83 |
# File 'lib/dcell/registries/zk_adapter.rb', line 83 def clear_globals; @global_registry.clear end |
#clear_nodes ⇒ Object
78 |
# File 'lib/dcell/registries/zk_adapter.rb', line 78 def clear_nodes; @node_registry.clear end |
#get_global(key) ⇒ Object
80 |
# File 'lib/dcell/registries/zk_adapter.rb', line 80 def get_global(key); @global_registry.get(key) end |
#get_node(node_id) ⇒ Object
75 |
# File 'lib/dcell/registries/zk_adapter.rb', line 75 def get_node(node_id); @node_registry.get(node_id) end |
#global_keys ⇒ Object
82 |
# File 'lib/dcell/registries/zk_adapter.rb', line 82 def global_keys; @global_registry.all end |
#nodes ⇒ Object
77 |
# File 'lib/dcell/registries/zk_adapter.rb', line 77 def nodes; @node_registry.all end |
#set_global(key, value) ⇒ Object
81 |
# File 'lib/dcell/registries/zk_adapter.rb', line 81 def set_global(key, value); @global_registry.set(key, value) end |
#set_node(node_id, addr) ⇒ Object
76 |
# File 'lib/dcell/registries/zk_adapter.rb', line 76 def set_node(node_id, addr); @node_registry.set(node_id, addr) end |