[Groonga-commit] long-long-float/droonga-engine at 543b765 [master] Extract method to fetch catalog.json

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Aug 27 18:29:52 JST 2014


YUKI Hiroshi	2014-08-27 18:29:52 +0900 (Wed, 27 Aug 2014)

  New Revision: 543b765d96ba6f99988214dbed403ef78ed4e122
  https://github.com/long-long-float/droonga-engine/commit/543b765d96ba6f99988214dbed403ef78ed4e122

  Message:
    Extract method to fetch catalog.json

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

  Modified: lib/droonga/command/serf_event_handler.rb (+26 -26)
===================================================================
--- lib/droonga/command/serf_event_handler.rb    2014-08-27 18:23:34 +0900 (20df33b)
+++ lib/droonga/command/serf_event_handler.rb    2014-08-27 18:29:52 +0900 (124be4a)
@@ -147,21 +147,12 @@ module Droonga
         source_host  = source_node.split(":").first
         joining_host = joining_node.split(":").first
 
-        catalog = nil
-        Droonga::Client.open(:host          => source_host,
-                             :port          => source_node_port,
-                             :tag           => tag,
-                             :protocol      => :droonga,
-                             :timeout       => 1,
-                             :receiver_host => joining_host,
-                             :receiver_port => 0) do |client|
-          request = client.request(:dataset => source_node_dataset , 
-                                   :type    => "catalog.fetch") do |responce|
-            File.write(Path.catalog, JSON.generate(responce["body"]))
-            catalog = responce["body"]
-          end
-          request.wait
-        end
+        catalog = fetch_catalog(:dataset       => source_node_dataset,
+                                :host          => source_host,
+                                :port          => source_node_port,
+                                :tag           => tag,
+                                :receiver_host => joining_host)
+        File.write(Path.catalog, JSON.generate(catalog))
 
         generator = create_current_catalog_generator(catalog)
         dataset = generator.dataset_for_host(source_host) ||
@@ -206,18 +197,27 @@ module Droonga
         end
       end
 
-      def fetch_catalog(source_node, port)
-        source_host = source_node.split(":").first
-
-        url = "http://#{source_host}:#{port}"
-        connection = Faraday.new(url) do |builder|
-          builder.response(:follow_redirects)
-          builder.adapter(Faraday.default_adapter)
+      def fetch_catalog(client_options={})
+        catalog = nil
+        default_options = {
+          :dataset       => CatalogGenerator::DEFAULT_DATASET,
+          :host          => "127.0.0.1",
+          :port          => CatalogGenerator::DEFAULT_PORT,
+          :tag           => CatalogGenerator::DEFAULT_TAG,
+          :protocol      => :droonga,
+          :timeout       => 1,
+          :receiver_host => "127.0.0.1",
+          :receiver_port => 0,
+        }
+        client_options = default_options.merge(client_options)
+        Droonga::Client.open(client_options) do |client|
+          request = client.request(:dataset => client_options[:dataset],
+                                   :type    => "catalog.fetch") do |responce|
+            catalog = responce["body"]
+          end
+          request.wait
         end
-        response = connection.get("/catalog.json")
-        catalog = response.body
-
-        JSON.parse(catalog)
+        catalog
       end
 
       def set_replicas
-------------- next part --------------
HTML����������������������������...
Télécharger 



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