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 2021/04/02 04:44:53 UTC

[ignite] branch ignite-ducktape updated: IGNITE-14455: The directory with logs must contain IgniteConfiguration.xml for ducktests. (#8957)

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


The following commit(s) were added to refs/heads/ignite-ducktape by this push:
     new 5eb3a5d  IGNITE-14455: The directory with logs must contain IgniteConfiguration.xml for ducktests. (#8957)
5eb3a5d is described below

commit 5eb3a5d828dfcb9f971e3a590d534d95eb56bdab
Author: Sergei Ryzhov <s....@gmail.com>
AuthorDate: Fri Apr 2 07:44:26 2021 +0300

    IGNITE-14455: The directory with logs must contain IgniteConfiguration.xml for ducktests. (#8957)
---
 .../ignitetest/services/utils/ignite_aware.py      |  2 +-
 .../tests/ignitetest/services/utils/path.py        | 17 +++++++++---
 .../ducktests/tests/ignitetest/tests/self_test.py  | 30 ++++++++++++++++++++++
 3 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
index 38449a1..ca719db 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
@@ -199,7 +199,7 @@ class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABC
 
         config.discovery_spi.prepare_on_start(cluster=self)
 
-        node_config = self.spec.config_template.render(config_dir=self.persistent_root, work_dir=self.work_dir,
+        node_config = self.spec.config_template.render(config_dir=self.config_dir, work_dir=self.work_dir,
                                                        config=config)
 
         setattr(node, "consistent_id", node.account.externally_routable_ip)
diff --git a/modules/ducktests/tests/ignitetest/services/utils/path.py b/modules/ducktests/tests/ignitetest/services/utils/path.py
index 9419078..9ecd805 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/path.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/path.py
@@ -52,7 +52,7 @@ class PathAware:
         Init persistent directory.
         :param node: Service node.
         """
-        node.account.mkdirs(f"{self.persistent_root} {self.temp_dir} {self.work_dir} {self.log_dir}")
+        node.account.mkdirs(f"{self.persistent_root} {self.temp_dir} {self.work_dir} {self.log_dir} {self.config_dir}")
 
     def init_logs_attribute(self):
         """
@@ -63,6 +63,10 @@ class PathAware:
             "logs": {
                 "path": self.log_dir,
                 "collect_default": True
+            },
+            "config": {
+                "path": self.config_dir,
+                "collect_default": True
             }
         })
 
@@ -88,6 +92,13 @@ class PathAware:
         return os.path.join(self.persistent_root, "work")
 
     @property
+    def config_dir(self):
+        """
+        :return: path to config directory
+        """
+        return os.path.join(self.persistent_root, "config")
+
+    @property
     def log_dir(self):
         """
         :return: path to log directory
@@ -160,11 +171,11 @@ class IgnitePathAware(PathAware, metaclass=ABCMeta):
 
     @property
     def config_file(self):
-        return os.path.join(self.persistent_root, "ignite-config.xml")
+        return os.path.join(self.config_dir, "ignite-config.xml")
 
     @property
     def log_config_file(self):
-        return os.path.join(self.persistent_root, "ignite-log4j.xml")
+        return os.path.join(self.config_dir, "ignite-log4j.xml")
 
     @property
     def database_dir(self):
diff --git a/modules/ducktests/tests/ignitetest/tests/self_test.py b/modules/ducktests/tests/ignitetest/tests/self_test.py
index 8118481..c0fed29 100644
--- a/modules/ducktests/tests/ignitetest/tests/self_test.py
+++ b/modules/ducktests/tests/ignitetest/tests/self_test.py
@@ -18,6 +18,8 @@ This module contains smoke tests that checks that ducktape works as expected
 """
 import os
 
+from ducktape.mark import matrix
+
 from ignitetest.services.ignite import IgniteService
 from ignitetest.services.ignite_app import IgniteApplicationService
 from ignitetest.services.ignite_execution_exception import IgniteExecutionException
@@ -132,3 +134,31 @@ class SelfTest(IgniteTest):
             assert old_cnt == get_log_lines_count(ignites, f"console.log.{i + 1}")
 
         assert get_logs_count(ignites) == num_restarts
+
+    @cluster(num_nodes=1)
+    @ignite_versions(str(DEV_BRANCH))
+    @matrix(is_ignite_service=[True, False])
+    def test_config_add_to_result(self, ignite_version, is_ignite_service):
+        """
+        Test that the config file is in config directory
+        and Service.logs contains the config directory to add to the result.
+        """
+        ignite_cfg = IgniteConfiguration(version=IgniteVersion(ignite_version))
+
+        if is_ignite_service:
+            ignite = IgniteService(self.test_context, ignite_cfg, num_nodes=1)
+        else:
+            ignite = IgniteApplicationService(
+                self.test_context, ignite_cfg,
+                java_class_name="org.apache.ignite.internal.ducktest.tests.self_test.TestKillableApplication")
+
+        ignite.start()
+
+        assert ignite.logs.get('config').get('path') == ignite.config_dir
+
+        assert ignite.config_file.startswith(ignite.config_dir)
+
+        ignite.nodes[0].account.ssh(f'ls {ignite.config_dir} | grep {os.path.basename(ignite.config_file)}')
+        ignite.nodes[0].account.ssh(f'ls {ignite.config_dir} | grep {os.path.basename(ignite.log_config_file)}')
+
+        ignite.stop()