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