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 aa2b706 IGNITE-14463 Support of testing Ignite based products with ducktape tests (#8963) aa2b706 is described below commit aa2b70631f080a1a6d6f5851d10fac2c491f01a2 Author: Nikolay <nizhi...@apache.org> AuthorDate: Fri Apr 2 11:51:13 2021 +0300 IGNITE-14463 Support of testing Ignite based products with ducktape tests (#8963) --- modules/ducktests/tests/docker/ducker-ignite | 13 ++++++++++--- .../tests/ignitetest/services/utils/ignite_spec.py | 20 ++++++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/modules/ducktests/tests/docker/ducker-ignite b/modules/ducktests/tests/docker/ducker-ignite index 9a92247..22cb4d3 100755 --- a/modules/ducktests/tests/docker/ducker-ignite +++ b/modules/ducktests/tests/docker/ducker-ignite @@ -296,9 +296,16 @@ docker_run() { # and mount FUSE filesystems inside the container. We also need it to # run iptables inside the container. must_do -v docker run --privileged \ - -d -t -h "${node}" --network ducknet ${expose_ports} \ - --memory=${docker_run_memory_limit} --memory-swappiness=1 \ - --mount type=bind,source="${ignite_dir}",target=/opt/ignite-dev,consistency=delegated --name "${node}" -- "${image_name}" + -d \ + -t \ + -h "${node}" \ + --network ducknet ${expose_ports} \ + --memory=${docker_run_memory_limit} \ + --memory-swappiness=1 \ + --mount type=bind,source="${ignite_dir}",target=/opt/ignite-dev,consistency=delegated \ + $DOCKER_OPTIONS \ + --name "${node}" \ + -- "${image_name}" } setup_custom_ducktape() { diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py index 9e0e6a9..c03de9e 100644 --- a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py +++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py @@ -47,7 +47,8 @@ def resolve_spec(service, context, config, **kwargs): return len(impl_filter) > 0 if is_impl("IgniteService"): - return _resolve_spec("NodeSpec", ApacheIgniteNodeSpec)(path_aware=service, config=config, **kwargs) + return _resolve_spec("NodeSpec", ApacheIgniteNodeSpec)(path_aware=service, context=context, config=config, + **kwargs) if is_impl("IgniteApplicationService"): return _resolve_spec("AppSpec", ApacheIgniteApplicationSpec)(path_aware=service, context=context, @@ -87,19 +88,22 @@ class IgniteSpec(metaclass=ABCMeta): return IgniteClientConfigTemplate() return IgniteServerConfigTemplate() - def __home(self, version=None): + def __home(self, version=None, project=None): """ Get home directory for current spec. """ + project = project if project else self.project version = version if version else self.version - return get_home_dir(self.path_aware.install_root, self.project, version) + return get_home_dir(self.path_aware.install_root, project, version) def _module(self, name): """ Get module path for current spec. """ - version = DEV_BRANCH if name == "ducktests" else self.version - return get_module_path(self.__home(version), name, version) + if name == "ducktests": + return get_module_path(self.__home(DEV_BRANCH, project="ignite"), name, DEV_BRANCH) + + return get_module_path(self.__home(self.version), name, self.version) @abstractmethod def command(self, node): @@ -168,8 +172,8 @@ class ApacheIgniteNodeSpec(IgniteNodeSpec): """ Implementation IgniteNodeSpec for Apache Ignite project """ - def __init__(self, modules, **kwargs): - super().__init__(project="ignite", **kwargs) + def __init__(self, context, modules, **kwargs): + super().__init__(project=context.globals.get("project", "ignite"), **kwargs) libs = (modules or []) libs.append("log4j") @@ -194,7 +198,7 @@ class ApacheIgniteApplicationSpec(IgniteApplicationSpec): """ # pylint: disable=too-many-arguments def __init__(self, context, modules, servicejava_class_name, java_class_name, params, start_ignite, **kwargs): - super().__init__(project="ignite", **kwargs) + super().__init__(project=context.globals.get("project", "ignite"), **kwargs) self.context = context libs = modules or []