Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions conf/db/seed.sql
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,16 @@ 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,0x01,'','','Echo_Output',0x00,NULL,0x00,'',0x00,'STDOUT',NULL,'');
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,NULL,'','Input_to_Echo',0x00,'',0x01,NULL,0x00,'STRING','Message echoed by the application','Hello, Airavata!');
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,NULL,'','Experiment_Duration',0x00,'',0x01,NULL,0x00,'INTEGER','Seconds to sleep in the SLURM job before echoing the output','60');
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,NULL,'','Input_to_Echo',0x00,'',0x01,NULL,0x00,'STRING','Message echoed by the application','Hello, Airavata!');
COMMIT;
SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
INSERT INTO `app_module_mapping` (`INTERFACE_ID`, `MODULE_ID`) VALUES ('Echo_d3d099ca-a1a0-4749-a831-0fab754c9946','Echo_da1c0c0f-5b47-4da2-a4fb-b6a6792b910d');
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-4da2-a4fb-b6a6792b910d','Echo deployment on the dev SLURM cluster','Echo_da1c0c0f-5b47-4da2-a4fb-b6a6792b910d','slurm_6afa587c-d5c0-42e6-a998-f8478ad8e404','2026-06-12 19:41:16.458000',0,0,'',0,0x00,NULL,'/bin/echo','default',NULL,NULL,NULL,'SERIAL',NULL,NULL,NULL,'2026-06-12 19:41:16.458000');
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-4da2-a4fb-b6a6792b910d','Echo deployment on the dev SLURM cluster','Echo_da1c0c0f-5b47-4da2-a4fb-b6a6792b910d','slurm_6afa587c-d5c0-42e6-a998-f8478ad8e404','2026-06-12 19:41:16.458000',0,0,'',0,0x00,NULL,'/usr/local/bin/echo_sleep','default',NULL,NULL,NULL,'SERIAL',NULL,NULL,NULL,'2026-06-12 19:41:16.458000');
COMMIT;
SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
Expand Down
5 changes: 4 additions & 1 deletion conf/slurm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
12 changes: 12 additions & 0 deletions conf/slurm/echo_sleep
Original file line number Diff line number Diff line change
@@ -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 "$@"
Loading