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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2c15f2cb23 feat(echo): add a configurable experiment duration to the 
dev Echo app (#691)
2c15f2cb23 is described below

commit 2c15f2cb234cebfbd138e148cb99e622deff74d9
Author: Yasith Jayawardana <[email protected]>
AuthorDate: Sun Jun 14 02:57:32 2026 -0400

    feat(echo): add a configurable experiment duration to the dev Echo app 
(#691)
    
    Add an Experiment_Duration input (default 60s) to the Echo application 
interface and route the deployment through a new echo_sleep wrapper that sleeps 
for the given duration before echoing the message. This lets Echo runs last 
long enough to exercise and observe the experiment progress pipeline.
---
 conf/db/seed.sql      |  5 +++--
 conf/slurm/Dockerfile |  5 ++++-
 conf/slurm/echo_sleep | 12 ++++++++++++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/conf/db/seed.sql b/conf/db/seed.sql
index 6ade31bdb2..35436bdf37 100644
--- a/conf/db/seed.sql
+++ b/conf/db/seed.sql
@@ -39,7 +39,8 @@ COMMIT;
 SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
 SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
 INSERT INTO `app_io_param` (`PARAM_ID`, `APPLICATION_ARGUMENT`, 
`DATA_MOVEMENT`, `DATA_STAGED`, `DIRECTION`, `INPUT_ORDER`, `INTERFACE_ID`, 
`IS_READ_ONLY`, `IS_REQUIRED`, `LOCATION`, `METADATA`, `PARAM_NAME`, 
`OUTPUT_STREAMING`, `OVERRIDE_FILENAME`, `REQUIRED_TO_ADDED_TO_CMD`, 
`SEARCH_QUERY`, `STANDARD_INPUT`, `DATA_TYPE`, `USER_FRIENDLY_DESCRIPTION`, 
`PARAM_VALUE`) VALUES 
('22620216-b49b-4a1e-ba5e-ef37f304249a','',0x00,0x00,'OUTPUT',0,'Echo_d3d099ca-a1a0-4749-a831-0fab754c9946',0x00,0x0
 [...]
-INSERT INTO `app_io_param` (`PARAM_ID`, `APPLICATION_ARGUMENT`, 
`DATA_MOVEMENT`, `DATA_STAGED`, `DIRECTION`, `INPUT_ORDER`, `INTERFACE_ID`, 
`IS_READ_ONLY`, `IS_REQUIRED`, `LOCATION`, `METADATA`, `PARAM_NAME`, 
`OUTPUT_STREAMING`, `OVERRIDE_FILENAME`, `REQUIRED_TO_ADDED_TO_CMD`, 
`SEARCH_QUERY`, `STANDARD_INPUT`, `DATA_TYPE`, `USER_FRIENDLY_DESCRIPTION`, 
`PARAM_VALUE`) VALUES 
('c2ac72e6-5529-47e7-91e4-ef41ca426459','',0x00,0x00,'INPUT',0,'Echo_d3d099ca-a1a0-4749-a831-0fab754c9946',0x00,0x01
 [...]
+INSERT INTO `app_io_param` (`PARAM_ID`, `APPLICATION_ARGUMENT`, 
`DATA_MOVEMENT`, `DATA_STAGED`, `DIRECTION`, `INPUT_ORDER`, `INTERFACE_ID`, 
`IS_READ_ONLY`, `IS_REQUIRED`, `LOCATION`, `METADATA`, `PARAM_NAME`, 
`OUTPUT_STREAMING`, `OVERRIDE_FILENAME`, `REQUIRED_TO_ADDED_TO_CMD`, 
`SEARCH_QUERY`, `STANDARD_INPUT`, `DATA_TYPE`, `USER_FRIENDLY_DESCRIPTION`, 
`PARAM_VALUE`) VALUES 
('f7e8d9c0-1a2b-4c3d-9e4f-5a6b7c8d9e0f','',0x00,0x00,'INPUT',0,'Echo_d3d099ca-a1a0-4749-a831-0fab754c9946',0x00,0x01
 [...]
+INSERT INTO `app_io_param` (`PARAM_ID`, `APPLICATION_ARGUMENT`, 
`DATA_MOVEMENT`, `DATA_STAGED`, `DIRECTION`, `INPUT_ORDER`, `INTERFACE_ID`, 
`IS_READ_ONLY`, `IS_REQUIRED`, `LOCATION`, `METADATA`, `PARAM_NAME`, 
`OUTPUT_STREAMING`, `OVERRIDE_FILENAME`, `REQUIRED_TO_ADDED_TO_CMD`, 
`SEARCH_QUERY`, `STANDARD_INPUT`, `DATA_TYPE`, `USER_FRIENDLY_DESCRIPTION`, 
`PARAM_VALUE`) VALUES 
('c2ac72e6-5529-47e7-91e4-ef41ca426459','',0x00,0x00,'INPUT',1,'Echo_d3d099ca-a1a0-4749-a831-0fab754c9946',0x00,0x01
 [...]
 COMMIT;
 SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
 SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
@@ -47,7 +48,7 @@ INSERT INTO `app_module_mapping` (`INTERFACE_ID`, 
`MODULE_ID`) VALUES ('Echo_d3d
 COMMIT;
 SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
 SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
-INSERT INTO `application_deployment` (`DEPLOYMENT_ID`, `APPLICATION_DESC`, 
`APP_MODULE_ID`, `COMPUTE_HOSTID`, `CREATION_TIME`, `DEFAULT_CPU_COUNT`, 
`DEFAULT_NODE_COUNT`, `DEFAULT_QUEUE_NAME`, `DEFAULT_WALLTIME`, 
`EDITABLE_BY_USER`, `ENV_MODULE_LOAD_CMD`, `EXECUTABLE_PATH`, `GATEWAY_ID`, 
`LIB_APPEND_PATHS_JSON`, `LIB_PREPEND_PATHS_JSON`, `MODULE_LOAD_CMDS_JSON`, 
`parallelism`, `POSTJOB_CMDS_JSON`, `PREJOB_CMDS_JSON`, `SET_ENVIRONMENT_JSON`, 
`UPDATE_TIME`) VALUES ('slurm_Echo_da1c0c0f-5b47 [...]
+INSERT INTO `application_deployment` (`DEPLOYMENT_ID`, `APPLICATION_DESC`, 
`APP_MODULE_ID`, `COMPUTE_HOSTID`, `CREATION_TIME`, `DEFAULT_CPU_COUNT`, 
`DEFAULT_NODE_COUNT`, `DEFAULT_QUEUE_NAME`, `DEFAULT_WALLTIME`, 
`EDITABLE_BY_USER`, `ENV_MODULE_LOAD_CMD`, `EXECUTABLE_PATH`, `GATEWAY_ID`, 
`LIB_APPEND_PATHS_JSON`, `LIB_PREPEND_PATHS_JSON`, `MODULE_LOAD_CMDS_JSON`, 
`parallelism`, `POSTJOB_CMDS_JSON`, `PREJOB_CMDS_JSON`, `SET_ENVIRONMENT_JSON`, 
`UPDATE_TIME`) VALUES ('slurm_Echo_da1c0c0f-5b47 [...]
 COMMIT;
 SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
 SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
diff --git a/conf/slurm/Dockerfile b/conf/slurm/Dockerfile
index ff45725e79..822eadd1fb 100644
--- a/conf/slurm/Dockerfile
+++ b/conf/slurm/Dockerfile
@@ -53,10 +53,13 @@ COPY slurm.conf       /etc/slurm/slurm.conf
 COPY cgroup.conf      /etc/slurm/cgroup.conf
 COPY slurmdbd.conf    /etc/slurm/slurmdbd.conf
 COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+# Echo application wrapper (sleep <duration> then echo <message>) — the Echo 
deployment's
+# EXECUTABLE_PATH in conf/db/seed.sql. Baked into the image so it's on every 
compute node.
+COPY echo_sleep       /usr/local/bin/echo_sleep
 
 # slurmdbd refuses to start unless slurmdbd.conf is 0600 and owned by 
SlurmUser.
 RUN chown slurm:slurm /etc/slurm/slurmdbd.conf && chmod 0600 
/etc/slurm/slurmdbd.conf && \
-    chmod 0755 /usr/local/bin/docker-entrypoint.sh
+    chmod 0755 /usr/local/bin/docker-entrypoint.sh /usr/local/bin/echo_sleep
 
 ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
 CMD ["slurmctld"]
diff --git a/conf/slurm/echo_sleep b/conf/slurm/echo_sleep
new file mode 100644
index 0000000000..30c0171367
--- /dev/null
+++ b/conf/slurm/echo_sleep
@@ -0,0 +1,12 @@
+#!/bin/sh
+# echo_sleep <duration_seconds> <message...>
+#
+# Echo application wrapper for the dev SLURM cluster: sleeps for 
<duration_seconds>
+# (so an experiment runs long enough to observe its progress through the 
pipeline)
+# and then echoes the message to stdout. Wired up as the Echo application's
+# EXECUTABLE_PATH in conf/db/seed.sql, with the duration passed as the first 
argument
+# (Experiment_Duration input) and the message as the second (Input_to_Echo 
input).
+duration="$1"
+shift
+sleep "$duration"
+echo "$@"

Reply via email to