@@ -124,18 +124,28 @@ RUN chmod +x ./start_condor.sh
124124
125125# Create script to run the Workflow
126126RUN echo "#!/bin/bash" >> ./run_workflow.sh && \
127- echo "pegasus-plan --dir work --cleanup none --output-site local --submit \` ls *.yml\` " >> ./run_workflow.sh && \
127+ echo "pegasus-plan --dir work --cleanup none --output-site local --submit \"\$( ls *.yml)\" " >> ./run_workflow.sh && \
128128 echo "sleep 10" >> ./run_workflow.sh && \
129- echo "PID_FILE=\`ls work/wfcommons/pegasus/*/run0001/*.pid\`" >> ./run_workflow.sh && \
130129 echo "echo \"Waiting for workflow execution to complete...\"" >> ./run_workflow.sh && \
131- echo "while [[ -f \$PID_FILE ]]" >> ./run_workflow.sh && \
132- echo "do" >> ./run_workflow.sh && \
133- echo " echo \"sleeping 5...\"" >> ./run_workflow.sh && \
134- echo " sleep 5" >> ./run_workflow.sh && \
135- echo "done" >> ./run_workflow.sh && \
136- echo "# Sleep 10 so that status in database is up to date..." >> ./run_workflow.sh && \
137- echo "sleep 10" >> ./run_workflow.sh && \
138- echo "echo \"Workflow execution complete!\"" >> ./run_workflow.sh
130+ echo "while true; do" >> ./run_workflow.sh && \
131+ echo " status_output=\$(pegasus-status -l /tmp/pegasus_translated_workflow/work/wfcommons/pegasus/Blast-Benchmark/run0001)" >> ./run_workflow.sh && \
132+ echo " fail_count=\$(echo \"\$status_output\" | grep -v READY | grep -v Summary | grep Fail | wc -l)" >> ./run_workflow.sh && \
133+ echo " if [ \"\$fail_count\" -eq 1 ]; then" >> ./run_workflow.sh && \
134+ echo " echo \"Workflow execution failure!\"" >> ./run_workflow.sh && \
135+ echo " exit 1" >> ./run_workflow.sh && \
136+ echo " fi" >> ./run_workflow.sh && \
137+ echo " success_count=\$(echo \"\$status_output\" | grep -v READY | grep -v Summary | grep Success | wc -l)" >> ./run_workflow.sh && \
138+ echo " if [ \"\$success_count\" -eq 1 ]; then" >> ./run_workflow.sh && \
139+ echo " echo \"Workflow execution success!\"" >> ./run_workflow.sh && \
140+ echo " exit 0" >> ./run_workflow.sh && \
141+ echo " fi" >> ./run_workflow.sh && \
142+ echo " running_count=\$(echo \"\$status_output\" | grep -v READY | grep -v Summary | grep Running | wc -l)" >> ./run_workflow.sh && \
143+ echo " if [ \"\$running_count\" -eq 1 ]; then" >> ./run_workflow.sh && \
144+ echo " echo \"Workflow execution still running...\"" >> ./run_workflow.sh && \
145+ echo " sleep 5" >> ./run_workflow.sh && \
146+ echo " fi" >> ./run_workflow.sh && \
147+ echo "done" >> ./run_workflow.sh
148+
139149RUN chmod +x ./run_workflow.sh
140150
141151ENV CONDOR_HOST localhost
0 commit comments