[Groonga-commit] droonga/droonga-engine at efd438f [master] Move implementation to get list of live nodes from event handler to serf wrapper

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index