[Groonga-commit] droonga/droonga-engine at 0209025 [master] Separate options to specify information for source and destination

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Apr 15 14:12:25 JST 2015


YUKI Hiroshi	2015-04-15 14:12:25 +0900 (Wed, 15 Apr 2015)

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

  Message:
    Separate options to specify information for source and destination

  Modified files:
    bin/droonga-engine-absorb-data

  Modified: bin/droonga-engine-absorb-data (+91 -46)
===================================================================
--- bin/droonga-engine-absorb-data    2015-04-15 13:57:42 +0900 (ee2e5f2)
+++ bin/droonga-engine-absorb-data    2015-04-15 14:12:25 +0900 (b45854c)
@@ -21,8 +21,8 @@ require "socket"
 require "coolio"
 
 require "droonga/engine/version"
-require "droonga/catalog_generator"
 require "droonga/path"
+require "droonga/node_name"
 require "droonga/data_absorber_client"
 require "droonga/serf"
 require "droonga/client"
@@ -37,12 +37,9 @@ class AbsorbDataCommand
     assert_valid_options
     trap_signals
 
-    puts "Start to absorb data from #{@options.source_host}"
-    puts "                       to #{@options.destination_host}"
+    puts "Start to absorb data from #{@options.soruce_dataset} at #{source_node.to_s}"
+    puts "                       to #{@options.dataset} at #{destination_host.to_s}"
     puts "                      via #{@options.receiver_host} (this host)"
-    puts "  dataset = #{@options.dataset}"
-    puts "  port    = #{@options.port}"
-    puts "  tag     = #{@options.tag}"
     puts ""
     puts "Absorbing..."
 
@@ -55,58 +52,88 @@ class AbsorbDataCommand
   private
   def parse_options
     options = OpenStruct.new
-    options.port    = Droonga::CatalogGenerator::DEFAULT_PORT
-    options.tag     = Droonga::CatalogGenerator::DEFAULT_TAG
-    options.dataset = Droonga::CatalogGenerator::DEFAULT_DATASET
+
+    options.host    = Socket.gethostname
+    options.port    = Droonga::DataAbsorberClient::DEFAULT_PORT
+    options.tag     = Droonga::DataAbsorberClient::DEFAULT_TAG
+    options.dataset = Droonga::DataAbsorberClient::DEFAULT_DATASET
+
+    options.source_host    = Droonga::DataAbsorberClient::DEFAULT_HOST
+    options.source_port    = Droonga::DataAbsorberClient::DEFAULT_PORT
+    options.source_tag     = Droonga::DataAbsorberClient::DEFAULT_TAG
+    options.source_dataset = Droonga::DataAbsorberClient::DEFAULT_DATASET
+
     options.receiver_host = Socket.gethostname
-    options.messages_per_second = Droonga::DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND
+
+    options.messages_per_second       = Droonga::DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND
     options.progress_interval_seconds = Droonga::DataAbsorberClient::DEFAULT_PROGRESS_INTERVAL_SECONDS
+
     options.verbose = false
+
     parser = OptionParser.new
     parser.version = Droonga::Engine::VERSION
 
     parser.separator("")
-    parser.separator("Connection:")
-    parser.on("--source-host=HOST",
-              "Host name of the source cluster to be connected.") do |host|
-      options.source_host = host
-    end
-    parser.on("--destination-host=HOST",
-              "Host name of this cluster to be connected.") do |host|
-      options.destination_host = host
-    end
-    parser.on("--receiver-host=HOST",
-              "Host name of this computer.",
-              "(#{options.receiver_host})") do |host|
-      options.receiver_host = host
+    parser.separator("Destination node:")
+    parser.on("--host=HOST",
+              "Host name of the destination node.") do |host|
+      options.host = host
     end
     parser.on("--port=PORT", Integer,
-              "Port number of the source cluster to be connected.",
+              "Port number of the destination node.",
               "(#{options.port})") do |port|
       options.port = port
     end
-
-    parser.separator("")
-    parser.separator("Data:")
-    parser.on("--tag=TAG",
-              "Tag name to be used to communicate with Droonga system.",
+    parser.on("--tag=TAG", Integer,
+              "Tag name of the destination node.",
               "(#{options.tag})") do |tag|
       options.tag = tag
     end
     parser.on("--dataset=DATASET",
-              "Dataset to be absorbed.",
+              "Name of the destination dataset.",
               "(#{options.dataset})") do |dataset|
       options.dataset = dataset
     end
+
+    parser.separator("")
+    parser.separator("Source node:")
+    parser.on("--source-host=HOST",
+              "Host name of the source node.",
+              "(#{options.source_host})") do |host|
+      options.source_host = host
+    end
+    parser.on("--source-port=PORT", Integer,
+              "Port number of the source node.",
+              "(#{options.source_port})") do |host|
+      options.source_host = host
+    end
+    parser.on("--source-tag=TAG",
+              "Tag name of the source node.",
+              "(#{options.source_tag})") do |tag|
+      options.source_tag = tag
+    end
+    parser.on("--dataset=DATASET",
+              "Name of the source dataset.",
+              "(#{options.source_dataset})") do |dataset|
+      options.source_dataset = dataset
+    end
+
+    parser.separator("")
+    parser.separator("Connection:")
+    parser.on("--receiver-host=HOST",
+              "Host name of this computer.",
+              "(#{options.receiver_host})") do |host|
+      options.receiver_host = host
+    end
+
+    parser.separator("")
+    parser.separator("Miscellaneous:")
     parser.on("--records-per-second=N", Integer,
               "Maximum number of records per second to be absorbed.",
               "'#{Droonga::Client::RateLimiter::NO_LIMIT}' means no limit.",
               "(#{options.messages_per_second})") do |n|
       options.messages_per_second = n
     end
-
-    parser.separator("")
-    parser.separator("Miscellaneous:")
     parser.on("--progress-interval-seconds=N", Integer,
               "Interval seconds to report progress.",
               "(#{options.progress_interval_seconds})") do |n|
@@ -118,6 +145,13 @@ class AbsorbDataCommand
       options.verbose = verbose
     end
 
+    parser.separator("")
+    parser.separator("For backward compatibility:")
+    parser.on("--destination-host=HOST",
+              "Alias to \"--host\".") do |host|
+      options.host = host
+    end
+
     parser.parse!(ARGV)
     @options = options
   end
@@ -126,17 +160,21 @@ class AbsorbDataCommand
     unles****@optio*****_host
       raise "You must specify the source host via --source-host option."
     end
-    unles****@optio*****_host
-      raise "You must specify the destination host via --destination-host option."
+    unles****@optio*****
+      raise "You must specify the destination host via --host option."
     end
   end
 
   def source_node
-    "#{@options.source_host}:#{@options.port}/#{@options.tag}"
+    @source_node ||= NodeName.new(:host => @options.source_host,
+                                  :port => @options.source_port,
+                                  :tag  => @options.source_tag)
   end
 
   def destination_node
-    "#{@options.destination_host}:#{@options.port}/#{@options.tag}"
+    @destination_node ||= NodeName.new(:host => @options.host,
+                                       :port => @options.port,
+                                       :tag  => @options.tag)
   end
 
   def run_remote_command(target, command, options)
@@ -150,14 +188,21 @@ class AbsorbDataCommand
 
   def prepare_absorber
     absorber_options = {
-      :dataset          => @options.dataset,
-      :source_host      => @options.source_host,
-      :destination_host => @options.destination_host,
+      :host    => @options.host,
+      :port    => @options.port,
+      :tag     => @options.tag,
+      :dataset => @options.dataset,
+
+      :source_host    => @options.source_host,
+      :source_port    => @options.source_port,
+      :source_tag     => @options.source_tag,
+      :source_dataset => @options.source_dataset,
+
       :receiver_host    => @options.receiver_host,
-      :port             => @options.port,
-      :tag              => @options.tag,
+
       :messages_per_second => @options.messages_per_second,
       :progress_interval_seconds => @options.progress_interval_seconds,
+
       :client_options   => {
         :backend => :coolio,
         :loop    => @loop,
@@ -185,15 +230,15 @@ class AbsorbDataCommand
 
     puts ""
 
-    response = run_remote_command(source_node, "report_metadata",
-                                  "node" => source_node,
+    response = run_remote_command(source_node.to_s, "report_metadata",
+                                  "node" => source_node.to_s,
                                   "key" => "last_processed_message_timestamp")
     timestamp = response["value"]
     if timestamp and not timestamp.empty?
       puts "The timestamp of the last processed message in the source node: #{timestamp}"
       puts "Setting effective message timestamp for the destination node..."
-      response = run_remote_command(destination_node, "accept_messages_newer_than",
-                                    "node" => destination_node,
+      response = run_remote_command(destination_node.to_s, "accept_messages_newer_than",
+                                    "node" => destination_node.to_s,
                                     "timestamp" => timestamp)
     end
     true
-------------- next part --------------
HTML����������������������������...
Download 



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