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 <[email protected]>
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):
"""