[Groonga-commit] droonga/droonga-engine at f80f225 [master] Do operations with restarting of services certainly

Back to archive index

YUKI Hiroshi null+****@clear*****
Tue Apr 21 15:34:25 JST 2015


YUKI Hiroshi	2015-04-21 15:34:25 +0900 (Tue, 21 Apr 2015)

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

  Message:
    Do operations with restarting of services certainly

  Modified files:
    bin/droonga-engine-join

  Modified: bin/droonga-engine-join (+14 -12)
===================================================================
--- bin/droonga-engine-join    2015-04-21 15:33:51 +0900 (faefdaf)
+++ bin/droonga-engine-join    2015-04-21 15:34:25 +0900 (02443ca)
@@ -221,51 +221,56 @@ module Droonga
     def set_source_node_role
       if absorber.source_node_suspendable?
         puts("Changing role of the source node...")
+        source_node_serf.do_and_wait_restart do
         source_node_serf.send_query("change_role",
                                     "node" => source_node.to_s,
                                     "role" => NodeRole::ABSORB_SOURCE)
-        wait_until_restarted(source_node)
+        end
       end
       @source_node_role_changed = true
     end
 
     def set_joining_node_role
       puts("Changing role of the joining node...")
+      joining_node_serf.do_and_wait_restart do
       joining_node_serf.send_query("change_role",
                                    "node" => joining_node.to_s,
                                    "role" => NodeRole::ABSORB_DESTINATION)
-      wait_until_restarted(joining_node)
+      end
       @joining_node_role_changed = true
     end
 
     def reset_source_node_role
       if absorber.source_node_suspendable?
         puts("Restoring role of the source node...")
+        source_node_serf.do_and_wait_restart do
         source_node_serf.send_query("change_role",
                                     "node" => source_node.to_s,
                                     "role" => NodeRole::SERVICE_PROVIDER)
-        wait_until_restarted(source_node.to_s)
+        end
       end
       @source_node_role_changed = false
     end
 
     def reset_joining_node_role
       puts("Restoring role of the joining node...")
+      joining_node_serf.do_and_wait_restart do
       joining_node_serf.send_query("change_role",
                                    "node" => joining_node.to_s,
                                    "role" => NodeRole::SERVICE_PROVIDER)
-      wait_until_restarted(joining_node.to_s)
+      end
       @joining_node_role_changed = false
     end
 
     def do_join
       puts("Joining new replica to the cluster...")
+      joining_node_serf.do_and_wait_restart do
       joining_node_serf.send_query("join",
                                    "node"    => joining_node.to_s,
                                    "type"    => "replica",
                                    "source"  => source_node.to_s,
                                    "dataset" => dataset)
-      wait_until_restarted(joining_node)
+      end
     end
 
     def copy_data
@@ -308,21 +313,23 @@ module Droonga
 
     def register_to_existing_nodes
       puts("Register new node to existing hosts in the cluster...")
+      source_node_serf.do_and_wait_restart do
       source_node_serf.send_query("add_replicas",
                                   "cluster_id" => source_cluster_id,
                                   "dataset"    => dataset,
                                   "hosts"      => [joining_node.host])
-      wait_until_restarted(source_node)
+      end
       @node_registered = true
     end
 
     def unregister_from_existing_nodes
       puts("Unregister new node from existing hosts in the cluster...")
+      source_node_serf.do_and_wait_restart do
       source_node_serf.send_query("remove_replicas",
                                   "cluster_id" => source_cluster_id,
                                   "dataset"    => dataset,
                                   "hosts"      => [joining_node.host])
-      wait_until_restarted(source_node)
+      end
       @node_registered = false
     end
 
@@ -349,11 +356,6 @@ module Droonga
       reset_joining_node_role if @joining_node_role_changed
       reset_source_node_role if @source_node_role_changed
     end
-
-    def wait_until_restarted(*nodes)
-      #TODO: wait for restarting of the given nodes. this should be done more safely.
-      sleep(30)
-    end
   end
 end
 
-------------- next part --------------
HTML����������������������������...
Download 



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