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 "$@"