From d7734a860fa9f406dc62a036efd17a4f4941572d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lenain Date: Wed, 26 Jul 2023 13:51:09 +0200 Subject: [PATCH] Show how to pin container version in jobs, add security when getting SQLite file (#73) Co-authored-by: Jean-Philippe Lenain --- .../jlenain/dqm_job_submitter/dqm_processor.sh | 5 ++++- .../dqm_job_submitter/submit_dqm_processor.py | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/dqm_processor.sh b/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/dqm_processor.sh index aee23a94..728c19fa 100755 --- a/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/dqm_processor.sh +++ b/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/dqm_processor.sh @@ -42,6 +42,9 @@ if [ -z $runnb ]; then fi WRAPPER="singularity_wrapper.sh" +# We can instantiate a particular container version: +# CONTAINER="oras://ghcr.io/cta-observatory/nectarchain@sha256:cf5a812bdb1113d027facceec30009759535a8579eb4caf38f56143e65cb35e7" +# or just use the latest available: CONTAINER="oras://ghcr.io/cta-observatory/nectarchain:latest" OUTDIR=NectarCAM_DQM_Run${runnb} DIRAC_OUTDIR=/vo.cta.in2p3.fr/user/j/jlenain/nectarcam/dqm @@ -110,6 +113,6 @@ chmod u+x $WRAPPER || exit_script $? # Archive the output directory and push it on DIRAC before leaving the job: tar zcf ${OUTDIR}.tar.gz ${OUTDIR}/ || exit_script $? -dirac-dms-add-file ${DIRAC_OUTDIR}/${OUTDIR}.tar.gz ${OUTDIR}.tar.gz LPNHE-USER || exit_script $? +dirac-dms-add-file ${DIRAC_OUTDIR}/${OUTDIR}.tar.gz ${OUTDIR}.tar.gz || exit_script $? exit_script 0 diff --git a/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/submit_dqm_processor.py b/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/submit_dqm_processor.py index 084dd4f6..ad8779c9 100755 --- a/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/submit_dqm_processor.py +++ b/src/nectarchain/user_scripts/jlenain/dqm_job_submitter/submit_dqm_processor.py @@ -87,7 +87,10 @@ if not infosTomorrow['OK'] or not infosTomorrow['Value']['Successful']: logger.warning(f"Could not properly retrieve the file metadata for {dfcDirTomorrow} ... Continuing !") meta = infos['Value']['Successful'][dfcDir] -metaTomorrow = infosTomorrow['Value']['Successful'][dfcDirTomorrow] +try: + metaTomorrow = infosTomorrow['Value']['Successful'][dfcDirTomorrow] +except KeyError: + metaTomorrow = None runlist = [] @@ -99,9 +102,10 @@ runlist.append(run) if f.endswith('.sqlite'): sqlfilelist.append(f) -for f in metaTomorrow['Files']: - if f.endswith('.sqlite'): - sqlfilelist.append(f) +if metaTomorrow: + for f in metaTomorrow['Files']: + if f.endswith('.sqlite'): + sqlfilelist.append(f) if args.run is not None: if args.run not in runlist: logger.critical(f'Your specified run {args.run} was not found in {dfcDir}, aborting...')