YUKI Hiroshi
null+****@clear*****
Wed Jul 23 15:38:56 JST 2014
YUKI Hiroshi 2014-07-23 15:38:56 +0900 (Wed, 23 Jul 2014) New Revision: efd438fbd3a6d38285b0628aaf98048fa1e8e4f4 https://github.com/droonga/droonga-engine/commit/efd438fbd3a6d38285b0628aaf98048fa1e8e4f4 Message: Move implementation to get list of live nodes from event handler to serf wrapper Modified files: lib/droonga/command/serf_event_handler.rb lib/droonga/serf.rb Modified: lib/droonga/command/serf_event_handler.rb (+1 -11) =================================================================== --- lib/droonga/command/serf_event_handler.rb 2014-07-23 15:21:00 +0900 (30360eb) +++ lib/droonga/command/serf_event_handler.rb 2014-07-23 15:38:56 +0900 (f3ea1f7) @@ -315,17 +315,7 @@ module Droonga end def live_nodes - nodes = {} - raw_members = `#{@serf} members -rpc-addr #{@serf_rpc_address} -format json` - members = JSON.parse(raw_members) - members["members"].each do |member| - if member["status"] == "alive" - nodes[member["name"]] = { - "serfAddress" => member["addr"], - } - end - end - nodes + Serf.live_nodes end def output_live_nodes Modified: lib/droonga/serf.rb (+19 -0) =================================================================== --- lib/droonga/serf.rb 2014-07-23 15:21:00 +0900 (d6e1070) +++ lib/droonga/serf.rb 2014-07-23 15:38:56 +0900 (0133bfb) @@ -65,6 +65,10 @@ module Droonga def send_query(name, query, payload) new(nil, name).send_query(query, payload) end + + def live_nodes(name=nil) + new(nil, name).live_nodes + end end include Loggable @@ -121,6 +125,21 @@ module Droonga run_once("query", *options) end + def live_nodes + nodes = {} + result= run_once("members", "-format", "json") + members = result[:result] + members["members"].each do |member| + if member["status"] == "alive" + nodes[member["name"]] = { + "serfAddress" => member["addr"], + "tags" => member["tags"], + } + end + end + nodes + end + private def ensure_serf @serf = find_system_serf -------------- next part -------------- HTML����������������������������... Download