diff --git a/ci-scripts/cls_oaicitest.py b/ci-scripts/cls_oaicitest.py
index 78c20fb172..1729a45620 100644
--- a/ci-scripts/cls_oaicitest.py
+++ b/ci-scripts/cls_oaicitest.py
@@ -239,6 +239,19 @@ def Custom_Command(HTML, node, command, command_fail):
HTML.CreateHtmlTestRowQueue(command, status, message)
return status == 'OK' or status == 'Warning'
+def Custom_Script(HTML, node, script, command_fail):
+ logging.info(f"Executing custom script on {node}")
+ ret = cls_cmd.runScript(node, script, 90)
+ logging.debug(f"Custom_Script: {script} on node: {node} - return code {ret.returncode}, output:\n{ret.stdout}")
+ status = 'OK'
+ message = [ret.stdout]
+ if ret.returncode != 0 and not command_fail:
+ status = 'Warning'
+ if ret.returncode != 0 and command_fail:
+ status = 'KO'
+ HTML.CreateHtmlTestRowQueue(script, status, message)
+ return status == 'OK' or status == 'Warning'
+
def IdleSleep(HTML, idle_sleep_time):
time.sleep(idle_sleep_time)
HTML.CreateHtmlTestRow(f"{idle_sleep_time} sec", 'OK', CONST.ALL_PROCESSES_OK)
diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index 415ea76c27..0886f4f9fa 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -428,6 +428,12 @@ def ExecuteActionWithParam(action):
command_fail = test.findtext('command_fail') in ['True', 'true', 'Yes', 'yes']
success = cls_oaicitest.Custom_Command(HTML, node, command, command_fail)
+ elif action == 'Custom_Script':
+ node = test.findtext('node')
+ script = test.findtext('script')
+ command_fail = test.findtext('command_fail') in ['True', 'true', 'Yes', 'yes']
+ success = cls_oaicitest.Custom_Script(HTML, node, script, command_fail)
+
elif action == 'Pull_Cluster_Image':
string_field = test.findtext('images_to_pull')
if (string_field is not None):
diff --git a/ci-scripts/xml_class_list.yml b/ci-scripts/xml_class_list.yml
index deba963bc6..325797c29e 100755
--- a/ci-scripts/xml_class_list.yml
+++ b/ci-scripts/xml_class_list.yml
@@ -42,4 +42,5 @@
- Pull_Local_Registry
- Clean_Test_Server_Images
- Custom_Command
+ - Custom_Script
- Create_Workspace
diff --git a/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml b/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
index 527bc70082..215fe3ea26 100644
--- a/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
+++ b/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
@@ -45,10 +45,10 @@
- Custom_Command
+ Custom_Script
Setup sriov and network interfaces VVDN
cacofonix
- /opt/FHI7.2/setup_sriov_vvdn.sh
+
yes
@@ -157,11 +157,11 @@
- Custom_Command
+ Custom_Script
true
Set CPU to idle state, set kernel parameters to default values
cacofonix
- /opt/FHI7.2/setup_cleanup.sh
+
yes