diff --git a/.github/workflows/inference-workflow.yml b/.github/workflows/inference-workflow.yml index b6bc715ac95..16e5b9cc65d 100644 --- a/.github/workflows/inference-workflow.yml +++ b/.github/workflows/inference-workflow.yml @@ -25,7 +25,7 @@ jobs: wget -qO - https://download.pegasus.isi.edu/pegasus/gpg.txt | sudo apt-key add - echo "deb https://download.pegasus.isi.edu/pegasus/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list sudo apt-get -o Acquire::Retries=3 update - sudo apt-get -o Acquire::Retries=3 install pegasus=5.0.3-1+ubuntu18 + sudo apt-get -o Acquire::Retries=3 install pegasus - run: sudo apt-get -o Acquire::Retries=3 install *fftw3* intel-mkl* - name: Install pycbc run: | diff --git a/.github/workflows/search-workflow.yml b/.github/workflows/search-workflow.yml index 17ccbbcd3d2..1a6e3c16a25 100644 --- a/.github/workflows/search-workflow.yml +++ b/.github/workflows/search-workflow.yml @@ -29,7 +29,7 @@ jobs: wget -qO - https://download.pegasus.isi.edu/pegasus/gpg.txt | sudo apt-key add - echo "deb https://download.pegasus.isi.edu/pegasus/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list sudo apt-get -o Acquire::Retries=3 update - sudo apt-get -o Acquire::Retries=3 install pegasus=5.0.3-1+ubuntu18 + sudo apt-get -o Acquire::Retries=3 install pegasus - run: sudo apt-get -o Acquire::Retries=3 install *fftw3* intel-mkl* - name: Install pycbc run: | diff --git a/.github/workflows/tmpltbank-workflow.yml b/.github/workflows/tmpltbank-workflow.yml index cbe0e81b0ac..bf29c9051d0 100644 --- a/.github/workflows/tmpltbank-workflow.yml +++ b/.github/workflows/tmpltbank-workflow.yml @@ -29,7 +29,7 @@ jobs: wget -qO - https://download.pegasus.isi.edu/pegasus/gpg.txt | sudo apt-key add - echo "deb https://download.pegasus.isi.edu/pegasus/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list sudo apt-get -o Acquire::Retries=3 update - sudo apt-get -o Acquire::Retries=3 install pegasus=5.0.3-1+ubuntu18 + sudo apt-get -o Acquire::Retries=3 install pegasus - run: sudo apt-get -o Acquire::Retries=3 install *fftw3* intel-mkl* - name: Install pycbc run: | diff --git a/.github/workflows/workflow-tests.yml b/.github/workflows/workflow-tests.yml index 894c178b462..754e25f8f11 100644 --- a/.github/workflows/workflow-tests.yml +++ b/.github/workflows/workflow-tests.yml @@ -34,7 +34,7 @@ jobs: wget -qO - https://download.pegasus.isi.edu/pegasus/gpg.txt | sudo apt-key add - echo "deb https://download.pegasus.isi.edu/pegasus/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list sudo apt-get -o Acquire::Retries=3 update - sudo apt-get -o Acquire::Retries=3 install pegasus=5.0.3-1+ubuntu18 + sudo apt-get -o Acquire::Retries=3 install pegasus - run: sudo apt-get -o Acquire::Retries=3 install *fftw3* intel-mkl* - name: Install pycbc run: | diff --git a/pycbc/workflow/pegasus_workflow.py b/pycbc/workflow/pegasus_workflow.py index 518308a7c07..9edcb941435 100644 --- a/pycbc/workflow/pegasus_workflow.py +++ b/pycbc/workflow/pegasus_workflow.py @@ -29,6 +29,8 @@ import os import shutil import tempfile +import subprocess +from packaging import version from urllib.request import pathname2url from urllib.parse import urljoin, urlsplit import Pegasus.api as dax @@ -788,6 +790,15 @@ def set_subworkflow_properties(self, output_map_file, self.add_planner_arg('pegasus.dir.storage.mapper.replica.file', os.path.basename(output_map_file.name)) + # Ensure output_map_file has the for_planning flag set. There's no + # API way to set this after the File is initialized, so we have to + # change the attribute here. + # WORSE, we only want to set this if the pegasus *planner* is version + # 5.0.4 or larger + sproc_out = subprocess.check_output(['pegasus-version']).strip() + sproc_out = sproc_out.decode() + if version.parse(sproc_out) >= version.parse('5.0.4'): + output_map_file.for_planning=True self.add_inputs(output_map_file) # I think this is needed to deal with cases where the subworkflow file