[Groonga-commit] droonga/droonga-engine at f6a16ef [master] Use case-when

Back to archive index

YUKI Hiroshi null+****@clear*****
Sat Jun 28 02:27:44 JST 2014


YUKI Hiroshi	2014-06-28 02:27:44 +0900 (Sat, 28 Jun 2014)

  New Revision: f6a16efcacac305a58717fdde35a323a05d482d6
  https://github.com/droonga/droonga-engine/commit/f6a16efcacac305a58717fdde35a323a05d482d6

  Message:
    Use case-when

  Modified files:
    lib/droonga/command/serf_event_handler.rb

  Modified: lib/droonga/command/serf_event_handler.rb (+26 -6)
===================================================================
--- lib/droonga/command/serf_event_handler.rb    2014-06-28 02:27:04 +0900 (c19da35)
+++ lib/droonga/command/serf_event_handler.rb    2014-06-28 02:27:44 +0900 (28a5b8b)
@@ -70,11 +70,10 @@ module Droonga
       end
 
       def process_event
-        if @event_sub_name == "change_role"
+        case @event_sub_name
+        when "change_role"
           save_status(:role, @payload["role"])
-        end
-
-        if @event_sub_name == "join"
+        when "join"
           process_node_join
         end
       end
@@ -88,13 +87,34 @@ module Droonga
 
         return unless @payload["type"] == "replica"
 
-        current_catalog = JSON.parse(Path.catalog.read)
-        current_params = CatalogGenerator.catalog_to_params(current_catalog)
         modifications = {
           dataset => {
             :add_replica_hosts => [host],
           },
         }
+        modify_catalog(modifications)
+      end
+
+      def process_node_unjoin
+        dataset = @payload["dataset"]
+        return unless dataset
+
+        host = @payload["host"]
+        return unless host
+
+        return unless @payload["type"] == "replica"
+
+        modifications = {
+          dataset => {
+            :remove_replica_hosts => [host],
+          },
+        }
+        modify_catalog(modifications)
+      end
+
+      def modify_catalog(modifications)
+        current_catalog = JSON.parse(Path.catalog.read)
+        current_params = CatalogGenerator.catalog_to_params(current_catalog)
         updated_params = CatalogGenerator.update_params(current_params,
                                                         modifications)
         updated_catalog = CatalogGenerator.generate(updated_params)
-------------- next part --------------
HTML����������������������������...
Download 



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