[Groonga-commit] droonga/droonga-engine at f3df489 [master] Parse node names for remote commands by NodeName

Back to archive index

YUKI Piro Hiroshi null+****@clear*****
Wed Mar 25 00:17:56 JST 2015


YUKI "Piro" Hiroshi	2015-03-25 00:17:56 +0900 (Wed, 25 Mar 2015)

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

  Message:
    Parse node names for remote commands by NodeName

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

  Modified: lib/droonga/command/remote.rb (+26 -45)
===================================================================
--- lib/droonga/command/remote.rb    2015-03-24 23:49:14 +0900 (1c0930d)
+++ lib/droonga/command/remote.rb    2015-03-25 00:17:56 +0900 (8346083)
@@ -1,4 +1,4 @@
-# Copyright (C) 2014 Droonga Project
+# Copyright (C) 2014-2015 Droonga Project
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -17,6 +17,7 @@ require "json"
 
 require "droonga/path"
 require "droonga/serf"
+require "droonga/node_name"
 require "droonga/node_metadata"
 require "droonga/catalog_generator"
 require "droonga/catalog_modifier"
@@ -75,11 +76,11 @@ module Droonga
 
         private
         def node
-          @serf_name
+          @node ||= NodeName.new(@serf_name)
         end
 
         def host
-          node.split(":").first
+          node.host
         end
 
         def cluster_id
@@ -87,11 +88,15 @@ module Droonga
         end
 
         def target_cluster
-          @params && @params["cluster_id"]
+          return nil unless @params
+          @params["cluster_id"]
         end
 
         def target_node
-          @params && @params["node"]
+          return nil unless @params
+          @target_node ||= NodeName.parse(@params["node"] || "")
+        rescue ArgumentError
+          nil
         end
 
         def for_this_cluster?
@@ -139,29 +144,26 @@ module Droonga
       class CrossNodeCommandBase < Base
         private
         def source_node
-          @params["source"]
+          return nil unless @params
+          @source_node ||= NodeName.parse(@params["source"] || "")
+        rescue ArgumentError
+          nil
         end
 
         def dataset
           @dataset ||= @params["dataset"]
         end
 
-        NODE_PATTERN = /\A([^:]+):(\d+)\/(.+)\z/
-
-        def valid_node?(node)
-          node =~ NODE_PATTERN
-        end
-
         def source_host
-          @source_host ||= (source_node =~ NODE_PATTERN && $1)
+          source_node.host
         end
 
         def port
-          @port ||= (source_node =~ NODE_PATTERN && $2 && $2.to_i)
+          @port ||= @params["port"] || source_node.port
         end
 
         def tag
-          @tag ||= (source_node =~ NODE_PATTERN && $3)
+          @tag ||= @params["tag"] || source_node.tag
         end
       end
 
@@ -180,28 +182,17 @@ module Droonga
         end
 
         def joining_node
-          @params["node"]
+          target_node
         end
 
-        def valid_params?
-          have_required_params? and
-            valid_node?(source_node) and
-            valid_node?(joining_node)
-        end
-
-        def have_required_params?
-          required_params = [
-            source_node,
-            joining_node,
-            dataset,
-          ]
-          required_params.all? do |param|
-            not param.nil?
-          end
+        def joining_host
+          joining_node.host
         end
 
-        def joining_host
-          @joining_host ||= (joining_node =~ NODE_PATTERN && $1)
+        def valid_params?
+          not dataset.nil? and
+            not source_node.nil? and
+            not joining_node.nil?
         end
 
         def join_as_replica
@@ -293,18 +284,8 @@ module Droonga
         end
 
         def valid_params?
-          have_required_params? and
-            valid_node?(source_node)
-        end
-
-        def have_required_params?
-          required_params = [
-            source_node,
-            dataset,
-          ]
-          required_params.all? do |param|
-            not param.nil?
-          end
+          not dataset.nil? and
+            not source_node.nil?
         end
       end
 
-------------- next part --------------
HTML����������������������������...
Download 



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