You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2020/05/25 08:08:30 UTC

[ignite] 15/24: ignite-ducktape: starting last node after client and waiting for rebalance.

This is an automated email from the ASF dual-hosted git repository.

nizhikov pushed a commit to branch ignite-ducktape
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit f05dfb3e95b75bb3e4c3066268fd396632b19818
Author: Nikolay Izhikov <ni...@apache.org>
AuthorDate: Wed May 6 17:12:49 2020 +0300

    ignite-ducktape: starting last node after client and waiting for rebalance.
---
 tests/docker/build/node_hosts                      | 10 +++++-----
 tests/ignitetest/services/ignite/ignite.py         | 11 ++++++++---
 tests/ignitetest/suites/add_node_rebalance_test.py | 20 +++++++++++++-------
 3 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/tests/docker/build/node_hosts b/tests/docker/build/node_hosts
index 9da72b8..e675c02 100644
--- a/tests/docker/build/node_hosts
+++ b/tests/docker/build/node_hosts
@@ -1,8 +1,8 @@
-172.26.0.2	ducker01
-172.26.0.3	ducker02
-172.26.0.4	ducker03
-172.26.0.5	ducker04
-172.26.0.6	ducker05
+172.27.0.2	ducker01
+172.27.0.3	ducker02
+172.27.0.4	ducker03
+172.27.0.5	ducker04
+172.27.0.6	ducker05
 172.26.0.7	ducker06
 172.26.0.8	ducker07
 172.26.0.9	ducker08
diff --git a/tests/ignitetest/services/ignite/ignite.py b/tests/ignitetest/services/ignite/ignite.py
index f8f208a..16b87fe 100644
--- a/tests/ignitetest/services/ignite/ignite.py
+++ b/tests/ignitetest/services/ignite/ignite.py
@@ -42,7 +42,7 @@ class IgniteService(Service):
             "collect_default": False}
     }
 
-    def __init__(self, context, num_nodes=1, version=DEV_BRANCH):
+    def __init__(self, context, num_nodes=3, version=DEV_BRANCH):
         """
         :param context: test context
         :param num_nodes: number of Ignite nodes.
@@ -75,7 +75,7 @@ class IgniteService(Service):
                IgniteService.STDOUT_STDERR_CAPTURE)
         return cmd
 
-    def start_node(self, node, timeout_sec=180):
+    def start_node(self, node, timeout_sec=180, wait_for_rebalance=False):
         node.account.mkdirs(IgniteService.PERSISTENT_ROOT)
         node.account.create_file(IgniteService.CONFIG_FILE,
                                  self.config.render(IgniteService.PERSISTENT_ROOT, IgniteService.WORK_DIR))
@@ -83,9 +83,14 @@ class IgniteService(Service):
 
         cmd = self.start_cmd(node)
         self.logger.debug("Attempting to start IgniteService on %s with command: %s" % (str(node.account), cmd))
+
+        wait_for_message = "Topology snapshot"
+        if wait_for_rebalance:
+            wait_for_message = "Completed (final) rebalancing [grp=test-cache"
+
         with node.account.monitor_log(IgniteService.STDOUT_STDERR_CAPTURE) as monitor:
             node.account.ssh(cmd)
-            monitor.wait_until("Topology snapshot", timeout_sec=timeout_sec, backoff_sec=5,
+            monitor.wait_until(wait_for_message, timeout_sec=timeout_sec, backoff_sec=5,
                                err_msg="Ignite server didn't finish startup in %d seconds" % timeout_sec)
 
         if len(self.pids(node)) == 0:
diff --git a/tests/ignitetest/suites/add_node_rebalance_test.py b/tests/ignitetest/suites/add_node_rebalance_test.py
index 24ca151..fad6bd0 100644
--- a/tests/ignitetest/suites/add_node_rebalance_test.py
+++ b/tests/ignitetest/suites/add_node_rebalance_test.py
@@ -20,15 +20,20 @@ from ignitetest.services.ignite_client_app import IgniteClientApp
 
 
 class AddNodeRebalanceTest(Test):
+    NUM_NODES = 3
+    REBALANCE_TIMEOUT = 600
+
     """
     Test performs rebalance tests.
     """
     def __init__(self, test_context):
         super(AddNodeRebalanceTest, self).__init__(test_context=test_context)
-        self.ignite = IgniteService(test_context)
+        self.ignite = IgniteService(test_context, num_nodes=AddNodeRebalanceTest.NUM_NODES)
 
     def setUp(self):
-        self.ignite.start()
+        # starting all nodes except last.
+        for i in range(AddNodeRebalanceTest.NUM_NODES-1):
+            self.ignite.start_node(self.ignite.nodes[i])
 
     def teardown(self):
         self.ignite.stop()
@@ -42,9 +47,10 @@ class AddNodeRebalanceTest(Test):
             * Await for rebalance to finish.
         """
         self.logger.info("Start add node rebalance test.")
-        self.client = IgniteClientApp(self.test_context)
-        self.client.start()
-        self.client.wait()
 
-        for node in self.ignite.nodes:
-            node.account.ssh("touch /opt/hello-from-test-after-client.txt")
+        # This client just put some data to the cache.
+        IgniteClientApp(self.test_context).run()
+
+        self.ignite.start_node(self.ignite.nodes[AddNodeRebalanceTest.NUM_NODES-1],
+                               timeout_sec=AddNodeRebalanceTest.REBALANCE_TIMEOUT,
+                               wait_for_rebalance = True)