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 15:28:06 UTC
[ignite] branch ignite-ducktape updated: IGNITE-14592 Incapsulate
configuration preparation (#9019)
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 c18062b IGNITE-14592 Incapsulate configuration preparation (#9019)
c18062b is described below
commit c18062b8e75712ddd3fc7fff8ee9145c155abe94
Author: Nikolay <ni...@apache.org>
AuthorDate: Mon Apr 19 18:27:46 2021 +0300
IGNITE-14592 Incapsulate configuration preparation (#9019)
---
.../ignitetest/services/utils/ignite_aware.py | 32 +---------------
.../utils/ignite_configuration/__init__.py | 43 +++++++++++++++++++++-
2 files changed, 43 insertions(+), 32 deletions(-)
diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
index 62d7183..f402e69 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
@@ -19,7 +19,6 @@ This module contains the base class to build services aware of Ignite.
import os
import re
import signal
-import socket
import sys
import time
from abc import ABCMeta
@@ -36,14 +35,10 @@ from ignitetest.services.utils.ignite_spec import resolve_spec
from ignitetest.services.utils.jmx_utils import ignite_jmx_mixin
from ignitetest.services.utils.log_utils import monitor_log
from ignitetest.services.utils.path import IgnitePathAware
-# pylint: disable=too-many-public-methods
-from ignitetest.services.utils.ssl.connector_configuration import ConnectorConfiguration
-from ignitetest.services.utils.ssl.ssl_params import get_ssl_params, is_ssl_enabled, IGNITE_SERVER_ALIAS, \
- IGNITE_CLIENT_ALIAS
from ignitetest.utils.enum import constructible
-# pylint: disable=R0902
+# pylint: disable=R0902,too-many-public-methods
class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABCMeta):
"""
The base class to build services aware of Ignite.
@@ -92,28 +87,12 @@ class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABC
"""
Starts in async way.
"""
- self.update_ssl_config_with_globals()
super().start(**kwargs)
def start(self, **kwargs):
self.start_async(**kwargs)
self.await_started()
- def update_ssl_config_with_globals(self):
- """
- Update ssl configuration from globals.
- """
- ssl_params = None
- if self.config.ssl_params is None and is_ssl_enabled(self.globals):
- ssl_params = get_ssl_params(
- self.globals,
- IGNITE_CLIENT_ALIAS if self.config.client_mode else IGNITE_SERVER_ALIAS
- )
- if ssl_params:
- self.config = self.config._replace(ssl_params=ssl_params,
- connector_configuration=ConnectorConfiguration(
- ssl_enabled=True, ssl_params=ssl_params))
-
def await_started(self):
"""
Awaits start finished.
@@ -192,14 +171,7 @@ class IgniteAwareService(BackgroundThreadService, IgnitePathAware, metaclass=ABC
self._prepare_configs(node)
def _prepare_configs(self, node):
- if not self.config.consistent_id:
- config = self.config._replace(consistent_id=node.account.externally_routable_ip)
- else:
- config = self.config
-
- config = config._replace(local_host=socket.gethostbyname(node.account.hostname))
-
- config.discovery_spi.prepare_on_start(cluster=self)
+ config = self.config.prepare_for_env(globals=self.globals, node=node, cluster=self)
for name, template in self.spec.config_templates:
config_txt = template.render(config_dir=self.config_dir, work_dir=self.work_dir, config=config)
diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
index c93f9e0..fe6179a 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
@@ -16,7 +16,7 @@
"""
This module contains IgniteConfiguration classes and utilities.
"""
-
+import socket
from typing import NamedTuple
from ignitetest.services.utils.ignite_configuration.communication import CommunicationSpi, TcpCommunicationSpi
@@ -24,10 +24,12 @@ from ignitetest.services.utils.ssl.client_connector_configuration import ClientC
from ignitetest.services.utils.ssl.connector_configuration import ConnectorConfiguration
from ignitetest.services.utils.ignite_configuration.data_storage import DataStorageConfiguration
from ignitetest.services.utils.ignite_configuration.discovery import DiscoverySpi, TcpDiscoverySpi
-from ignitetest.services.utils.ssl.ssl_params import SslParams
+from ignitetest.services.utils.ssl.ssl_params import SslParams, is_ssl_enabled, get_ssl_params, IGNITE_CLIENT_ALIAS, \
+ IGNITE_SERVER_ALIAS
from ignitetest.utils.version import IgniteVersion, DEV_BRANCH
+# pylint: disable=no-member
class IgniteConfiguration(NamedTuple):
"""
Ignite configuration.
@@ -55,6 +57,43 @@ class IgniteConfiguration(NamedTuple):
rebalance_batches_prefetch_count: int = None
rebalance_throttle: int = None
+ def __prepare_ssl(self, test_globals):
+ """
+ Updates ssl configuration from globals.
+ """
+ ssl_params = None
+ if self.ssl_params is None and is_ssl_enabled(test_globals):
+ ssl_params = get_ssl_params(
+ test_globals,
+ IGNITE_CLIENT_ALIAS if self.client_mode else IGNITE_SERVER_ALIAS
+ )
+ if ssl_params:
+ return self._replace(ssl_params=ssl_params,
+ connector_configuration=ConnectorConfiguration(ssl_enabled=True,
+ ssl_params=ssl_params))
+ return self
+
+ def __prepare_discovery(self, node, cluster):
+ """
+ Updates discovery configuration based on current environment.
+ """
+ if not self.consistent_id:
+ config = self._replace(consistent_id=node.account.externally_routable_ip)
+ else:
+ config = self
+
+ config = config._replace(local_host=socket.gethostbyname(node.account.hostname))
+ config.discovery_spi.prepare_on_start(cluster=cluster)
+
+ return config
+
+ # pylint: disable=protected-access
+ def prepare_for_env(self, test_globals, node, cluster):
+ """
+ Updates configuration based on current environment.
+ """
+ return self.__prepare_ssl(test_globals).__prepare_discovery(node, cluster)
+
class IgniteClientConfiguration(IgniteConfiguration):
"""