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/19 10:44:12 UTC

[ignite] branch ignite-ducktape updated: IGNITE-14585 IgniteSpec can provide arbitrary configs (#9013)

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 85ea232  IGNITE-14585 IgniteSpec can provide arbitrary configs (#9013)
85ea232 is described below

commit 85ea2320d32c2e0d76373ea935616b6ec9ae4f8f
Author: Nikolay <ni...@apache.org>
AuthorDate: Mon Apr 19 13:43:30 2021 +0300

    IGNITE-14585 IgniteSpec can provide arbitrary configs (#9013)
---
 .../tests/ignitetest/services/utils/ignite_aware.py      | 16 +++++++---------
 .../tests/ignitetest/services/utils/ignite_spec.py       | 15 +++++++++------
 .../ducktests/tests/ignitetest/services/utils/path.py    | 15 ++++-----------
 3 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
index 5d5dc07..62d7183 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
@@ -189,11 +189,9 @@ class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABC
         """
         super().init_persistent(node)
 
-        node_config = self._prepare_config(node)
+        self._prepare_configs(node)
 
-        node.account.create_file(self.config_file, node_config)
-
-    def _prepare_config(self, node):
+    def _prepare_configs(self, node):
         if not self.config.consistent_id:
             config = self.config._replace(consistent_id=node.account.externally_routable_ip)
         else:
@@ -203,14 +201,14 @@ class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABC
 
         config.discovery_spi.prepare_on_start(cluster=self)
 
-        node_config = self.spec.config_template.render(config_dir=self.config_dir, work_dir=self.work_dir,
-                                                       config=config)
+        for name, template in self.spec.config_templates:
+            config_txt = template.render(config_dir=self.config_dir, work_dir=self.work_dir, config=config)
 
-        setattr(node, "consistent_id", node.account.externally_routable_ip)
+            node.account.create_file(os.path.join(self.config_dir, name), config_txt)
 
-        self.logger.debug("Config for node %s: %s" % (node.account.hostname, node_config))
+            self.logger.debug("Config %s for node %s: %s" % (name, node.account.hostname, config_txt))
 
-        return node_config
+        setattr(node, "consistent_id", node.account.externally_routable_ip)
 
     def pids(self, node):
         """
diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
index 5e7f8e7..8df5950 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
@@ -23,9 +23,10 @@ import json
 import os
 from abc import ABCMeta, abstractmethod
 
-from ignitetest.services.utils.config_template import IgniteClientConfigTemplate, IgniteServerConfigTemplate
+from ignitetest.services.utils.config_template import IgniteClientConfigTemplate, IgniteServerConfigTemplate, \
+    IgniteLoggerConfigTemplate
 from ignitetest.services.utils.jvm_utils import create_jvm_settings, merge_jvm_settings
-from ignitetest.services.utils.path import get_home_dir, get_module_path
+from ignitetest.services.utils.path import get_home_dir, get_module_path, IgnitePathAware
 from ignitetest.utils.version import DEV_BRANCH
 
 
@@ -79,13 +80,15 @@ class IgniteSpec(metaclass=ABCMeta):
                                                 oom_path=os.path.join(path_aware.log_dir, "ignite_out_of_mem.hprof"))
 
     @property
-    def config_template(self):
+    def config_templates(self):
         """
         :return: config that service will use to start on a node
         """
-        if self.config.client_mode:
-            return IgniteClientConfigTemplate()
-        return IgniteServerConfigTemplate()
+        return [
+            (IgnitePathAware.IGNITE_LOG_CONFIG_NAME, IgniteLoggerConfigTemplate()),
+            (IgnitePathAware.IGNITE_CONFIG_NAME,
+             IgniteClientConfigTemplate() if self.config.client_mode else IgniteServerConfigTemplate())
+        ]
 
     def __home(self, product=None):
         """
diff --git a/modules/ducktests/tests/ignitetest/services/utils/path.py b/modules/ducktests/tests/ignitetest/services/utils/path.py
index 3ccae1b..7e559b1 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/path.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/path.py
@@ -20,7 +20,6 @@ This module contains classes that represent persistent artifacts of tests
 import os
 from abc import abstractmethod, ABCMeta
 
-from ignitetest.services.utils.config_template import IgniteLoggerConfigTemplate
 from ignitetest.utils.version import DEV_BRANCH
 
 
@@ -152,23 +151,17 @@ class IgnitePathAware(PathAware, metaclass=ABCMeta):
     """
     This class contains Ignite path configs.
     """
-    def init_persistent(self, node):
-        """
-        Init persistent directory.
-        :param node: Ignite service node.
-        """
-        super().init_persistent(node)
+    IGNITE_CONFIG_NAME = "ignite-config.xml"
 
-        logger_config = IgniteLoggerConfigTemplate().render(work_dir=self.work_dir)
-        node.account.create_file(self.log_config_file, logger_config)
+    IGNITE_LOG_CONFIG_NAME = "ignite-log4j.xml"
 
     @property
     def config_file(self):
-        return os.path.join(self.config_dir, "ignite-config.xml")
+        return os.path.join(self.config_dir, IgnitePathAware.IGNITE_CONFIG_NAME)
 
     @property
     def log_config_file(self):
-        return os.path.join(self.config_dir, "ignite-log4j.xml")
+        return os.path.join(self.config_dir, IgnitePathAware.IGNITE_LOG_CONFIG_NAME)
 
     @property
     def database_dir(self):