YUKI Hiroshi
null+****@clear*****
Thu Apr 2 18:34:38 JST 2015
YUKI Hiroshi 2015-04-02 18:34:38 +0900 (Thu, 02 Apr 2015) New Revision: a47fe2fb12ce739dedd11190ddb7a59952ee63e8 https://github.com/droonga/droonga-engine/commit/a47fe2fb12ce739dedd11190ddb7a59952ee63e8 Message: Resolve internal service name and public node name mutually Modified files: lib/droonga/dispatcher.rb lib/droonga/engine_state.rb Modified: lib/droonga/dispatcher.rb (+17 -9) =================================================================== --- lib/droonga/dispatcher.rb 2015-04-02 17:54:58 +0900 (7e56a94) +++ lib/droonga/dispatcher.rb 2015-04-02 18:34:38 +0900 (1cc2808) @@ -231,13 +231,13 @@ module Droonga end routes = dataset.compute_routes(step, target_nodes) step["routes"] = routes.collect do |route| - actual_route(route) + internal_route(route) end else step["routes"] ||= [id] end destinations += step["routes"].collect do |route| - actual_route(route) + internal_farm_path(route) end end @@ -253,13 +253,13 @@ module Droonga logger.trace("process_local_message: start", :steps => local_message) task = local_message["task"] slice_name = task["route"] - slice_name = farm_path(slice_name) + slice_name = public_route(slice_name) step = task["step"] command = step["command"] descendants = {} step["descendants"].each do |name, routes| descendants[name] = routes.collect do |route| - actual_route(route) + internal_farm_path(route) end end local_message["descendants"] = descendants @@ -291,12 +291,20 @@ module Droonga end private - def actual_route(route) - @engine_state.actual_route(route) + def internal_route(route) + @engine_state.internal_route(route) end - def farm_path(route) - @engine_state.farm_path(route) + def public_route(route) + @engine_state.public_route(route) + end + + def internal_farm_path(route) + @engine_state.internal_farm_path(route) + end + + def public_farm_path(route) + @engine_state.public_farm_path(route) end def process_input_message(message) @@ -412,7 +420,7 @@ module Droonga def select_responsive_routes(routes) selected_nodes =****@clust*****_nodes routes.select do |route| - selected_nodes.include?(@engine_state.actual_route(route)) + selected_nodes.include?(@engine_state.public_farm_path(route)) end end end Modified: lib/droonga/engine_state.rb (+25 -3) =================================================================== --- lib/droonga/engine_state.rb 2015-04-02 17:54:58 +0900 (6609fb9) +++ lib/droonga/engine_state.rb 2015-04-02 18:34:38 +0900 (a596e9f) @@ -66,8 +66,30 @@ module Droonga route.start_with?(@name) or route.start_with?(@internal_name) end - def actual_route(route) - if /\A[^:]+:\d+\/[^.]+/ =~ route + FARM_PATH_MATCHER = /\A[^:]+:\d+\/[^.]+/ + + def internal_route(route) + if FARM_PATH_MATCHER =~ route + name = $MATCH + if name == @name or name == @internal_name + return route.sub(name, @internal_name) + end + end + route + end + + def public_route(route) + if FARM_PATH_MATCHER =~ route + name = $MATCH + if name == @internal_name + return route.sub(name, @name) + end + end + route + end + + def internal_farm_path(route) + if FARM_PATH_MATCHER =~ route name = $MATCH if name == @name or name == @internal_name @internal_name @@ -80,7 +102,7 @@ module Droonga end def farm_path(route) - if /\A[^:]+:\d+\/[^.]+/ =~ route + if FARM_PATH_MATCHER =~ route name = $MATCH if name == @internal_name @name -------------- next part -------------- HTML����������������������������...다운로드