This is an automated email from the ASF dual-hosted git repository.

ivandasch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 83c75d88cd3 IGNITE-19729 [ducktests] Add calcite support and ability 
to run arbitrary control.sh subcommand, fix PID detection (#10857)
83c75d88cd3 is described below

commit 83c75d88cd356966e66876a234ff24bc671068dc
Author: Sergey Korotkov <[email protected]>
AuthorDate: Thu Jul 27 14:31:59 2023 +0700

    IGNITE-19729 [ducktests] Add calcite support and ability to run arbitrary 
control.sh subcommand, fix PID detection (#10857)
---
 modules/ducktests/pom.xml                                        | 5 +++++
 .../ducktests/tests/ignitetest/services/utils/control_utility.py | 9 +++++++++
 .../ignitetest/services/utils/ignite_configuration/__init__.py   | 2 ++
 modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py | 6 +++++-
 modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py   | 2 +-
 .../services/utils/templates/ignite_configuration_macro.j2       | 6 ++++++
 .../tests/ignitetest/services/utils/templates/misc_macro.j2      | 6 +++++-
 7 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/modules/ducktests/pom.xml b/modules/ducktests/pom.xml
index 7855d62bf4a..e5756e74872 100644
--- a/modules/ducktests/pom.xml
+++ b/modules/ducktests/pom.xml
@@ -48,6 +48,11 @@
             <artifactId>ignite-indexing</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>ignite-calcite</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>ignite-control-utility</artifactId>
diff --git 
a/modules/ducktests/tests/ignitetest/services/utils/control_utility.py 
b/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
index 7fd320d9488..1b1dd997cfd 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
@@ -260,6 +260,15 @@ class ControlUtility:
 
         return "Enabled." in output
 
+    def run(self, cmd, node=None):
+        """
+        Run arbitrary control.sh subcommand.
+        :param cmd: Command line parameters for the control.sh.
+        :param node: Node to run the control.sh on.
+        :return: Output of the commands as a string.
+        """
+        return self.__run(cmd, node)
+
     def __performance_statistics_cmd(self, sub_command):
         return self.__run(f"--performance-statistics {sub_command}")
 
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 d9158d46726..6f83f603e04 100644
--- 
a/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
+++ 
b/modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
@@ -30,6 +30,7 @@ from 
ignitetest.services.utils.ignite_configuration.binary_configuration import
 from ignitetest.services.utils.ignite_configuration.transaction import 
TransactionConfiguration
 from ignitetest.services.utils.ssl.ssl_params import SslParams, 
is_ssl_enabled, get_ssl_params, IGNITE_CLIENT_ALIAS, \
     IGNITE_SERVER_ALIAS
+from ignitetest.utils.bean import Bean
 from ignitetest.utils.version import IgniteVersion, DEV_BRANCH
 
 
@@ -72,6 +73,7 @@ class IgniteConfiguration(NamedTuple):
     sql_schemas: list = []
     auto_activation_enabled: bool = None
     transaction_configuration: TransactionConfiguration = None
+    sql_configuration: Bean = None
 
     def prepare_ssl(self, test_globals, shared_root):
         """
diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py 
b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
index 4356304d775..84e0126b6d4 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
@@ -24,6 +24,7 @@ import os
 import subprocess
 from abc import ABCMeta, abstractmethod
 import re
+from copy import deepcopy
 from itertools import chain
 
 from ignitetest.services.utils import IgniteServiceType
@@ -209,7 +210,10 @@ class IgniteSpec(metaclass=ABCMeta):
         """
         :return: modules set.
         """
-        modules = self.service.modules or []
+        if self.service.modules:
+            modules = deepcopy(self.service.modules)
+        else:
+            modules = []
 
         modules.append("log4j2")
         modules.append("ducktests")
diff --git a/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py 
b/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
index 5aa5adafcd5..a1175712f4c 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
@@ -115,6 +115,6 @@ class JvmProcessMixin:
         :param java_class: Java class name
         :return: List of service's pids.
         """
-        cmd = "pgrep -ax java | awk '/%s/ {print $1}'" % java_class
+        cmd = "ps -C java -wwo pid,args | grep '%s' | awk -F' ' '{print $1}'" 
% java_class
 
         return [int(pid) for pid in node.account.ssh_capture(cmd, 
allow_fail=True)]
diff --git 
a/modules/ducktests/tests/ignitetest/services/utils/templates/ignite_configuration_macro.j2
 
b/modules/ducktests/tests/ignitetest/services/utils/templates/ignite_configuration_macro.j2
index d5f7b88012c..fd1cbef5b60 100644
--- 
a/modules/ducktests/tests/ignitetest/services/utils/templates/ignite_configuration_macro.j2
+++ 
b/modules/ducktests/tests/ignitetest/services/utils/templates/ignite_configuration_macro.j2
@@ -136,6 +136,12 @@
             </property>
         {% endif %}
 
+        {% if config.sql_configuration %}
+            <property name="sqlConfiguration">
+            {{ misc_utils.bean(config.sql_configuration) }}
+            </property>
+        {% endif %}
+
         {{ misc_utils.plugins(config) }}
     </bean>
 {% endmacro %}
diff --git 
a/modules/ducktests/tests/ignitetest/services/utils/templates/misc_macro.j2 
b/modules/ducktests/tests/ignitetest/services/utils/templates/misc_macro.j2
index 4c78f90ca23..fb2577590ec 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/templates/misc_macro.j2
+++ b/modules/ducktests/tests/ignitetest/services/utils/templates/misc_macro.j2
@@ -65,7 +65,11 @@
                     <property name="{{ name | snake_to_camel }}">
                         <list>
                             {% for v in value %}
-                                <value>{{ v }}</value>
+                                {% if v is string or v is number or v is 
boolean %}
+                                    <value>{{ v }}</value>
+                                {% else %}
+                                    {{ bean(v) }}
+                                {% endif %}
                             {% endfor %}
                         </list>
                     </property>

Reply via email to