diff --git a/BayesWaveUtils/bayeswave_pipe/bayeswave_pipe_utils.py b/BayesWaveUtils/bayeswave_pipe/bayeswave_pipe_utils.py index 3446bcbc4cc899bac66d56468639f69947f26871..eea9e9baa0eef10173d05c2f63a2dd7207927ddb 100644 --- a/BayesWaveUtils/bayeswave_pipe/bayeswave_pipe_utils.py +++ b/BayesWaveUtils/bayeswave_pipe/bayeswave_pipe_utils.py @@ -1066,7 +1066,7 @@ def condor_job_config(job_type, condor_job, config_parser): # # OSG specific configuration # - if config_parser.getboolean('condor', 'osg-deploy'): + if config_parser.getboolean('condor', 'igwn-pool'): # --- Force downstream jobs to run locally if job_type in ['bayeswave_post', 'bayeswave_fpeak', 'megaplot.py']: @@ -1094,12 +1094,12 @@ def condor_job_config(job_type, condor_job, config_parser): # # Accounting configurations # - if not config_parser.getboolean('condor','scitoken-auth'): - x509 = x509_manipulation(os.getcwd()) - condor_job.add_condor_cmd('x509userproxy', x509) + if config_parser.getboolean('condor','igwn-scitoken'): + condor_job.add_condor_cmd('use_oauth_services','igwn') + # x509 = x509_manipulation(os.getcwd()) + # condor_job.add_condor_cmd('x509userproxy', x509) else: # add stuff for using scitokens - condor_job.add_condor_cmd('use_oauth_services','igwn') # TODO -- would this ever need to be anything else? - + condor_job.add_condor_cmd('use_oauth_services','scitokens') # TODO add extra warning about x509 not supported any more try: condor_job.add_condor_cmd('accounting_group', config_parser.get('condor', 'accounting-group')) diff --git a/BayesWaveUtils/scripts/bayeswave_pipe b/BayesWaveUtils/scripts/bayeswave_pipe index 3f3af6f16cd6bb7d919b76436e620518008f6f50..a84ff4b65fb6e282aa5762256d4e47fca8c9e036 100755 --- a/BayesWaveUtils/scripts/bayeswave_pipe +++ b/BayesWaveUtils/scripts/bayeswave_pipe @@ -213,13 +213,14 @@ def parser(): # Advanced condor options parser.add_argument("--bayeswave-retries", type=int, default=1) - parser.add_argument("--osg-deploy", default=False, action="store_true") + parser.add_argument("--osg-deploy", default=False, action="store_true", help="OUTDATED. please use --igwn-pool instead.") + parser.add_argument("--igwn-pool", default=False, action="store_true", help="Set up condor files for running on igwn pool.") #parser.add_argument("--max-runtime", type=float, default=84600) #parser.add_argument("--resume-time", type=float, default=300) parser.add_argument("--transfer-files", default=True, action="store_true") parser.add_argument("--shared-filesystem", default=False, action="store_true") parser.add_argument("--singularity", default=None) - parser.add_argument("--scitoken-auth", default=False, action="store_true") + parser.add_argument("--igwn-scitoken", default=False, action="store_true",help="Use the IGWN as the scitoken issuer") opts = parser.parse_args() @@ -244,7 +245,7 @@ def parser(): # Parse options, arguments and ini file # opts, cp = parser() -cp.set('condor','copy-frames',str(opts.copy_frames)) +# cp.set('condor','copy-frames',str(opts.copy_frames)) workdir = os.path.abspath(opts.workdir) @@ -370,23 +371,58 @@ else: # # Advanced Condor options # -# Config file takes precedence over commandline -try: - cp.getboolean('condor', 'osg-deploy') -except: - cp.set('condor', 'osg-deploy', str(opts.osg_deploy)) - -try: - cp.getboolean('condor', 'scitoken-auth') -except: - cp.set('condor', 'scitoken-auth', str(opts.scitoken_auth)) +# -if cp.getboolean('condor', 'osg-deploy'): - if cp.getboolean('condor','scitoken-auth'): - opts.server = "datafind.igwn.org" +# File transfers +# try: +# cp.getboolean('condor', 'shared-filesystem') +# except: +# cp.set('condor', 'shared-filesystem', str(opts.shared_filesystem)) + +# if not cp.getboolean('condor', 'shared-filesystem'): +# try: +# cp.getboolean('condor', 'transfer-files') +# except: +# cp.set('condor', 'transfer-files', str(opts.transfer_files)) +# else: +# cp.set('condor', 'transfer-files', str(False)) + + +if opts.osg_deploy: + print("Warning: --osg-deploy deprecated. Please use --igwn-pool instead.") + opts.igwn_pool = True + +# Do this because cp used in pipe_utils, but not pts +cp.set('condor', 'igwn-pool', str(opts.igwn_pool)) + +if opts.igwn_pool: + if not opts.igwn_scitoken: + print("Using AP issuer of scitoken -- please make sure you're on ldas-osg3\n") + if opts.server is None: + opts.server="datafind.ldas.cit:80" # Use local server + print("Using local datafind server %s" % opts.server) + cp.set('condor', 'igwn-scitoken', str('False')) else: - opts.server="datafind.ligo.org:443" - cp.set('condor', 'transfer-files', str(True)) + if opts.server is None: + opts.server="datafind.igwn.org" # server for using igwn issuer + cp.set('datafind','url-type',str('osdf')) # Need this url type) + print("Using datafind server %s" % opts.server) + print("\nWarning: Using IGWN issuer of Scitoken. Please make sure you have an active token!\n ") + cp.set('condor', 'igwn-scitoken', str('True')) + # always do file and frame transfers for igwn-pool + opts.copy_frames=True + opts.transfer_files=True + +cp.set('condor', 'transfer-files', str(opts.transfer_files)) +cp.set('condor', 'copy-frames', str(opts.copy_frames)) + + +# if cp.getboolean('condor', 'osg-deploy'): +# if cp.getboolean('condor','scitoken-auth'): +# opts.server = "datafind.igwn.org" +# else: +# opts.server="datafind.ligo.org:443" +# cp.set('condor', 'transfer-files', str(True)) # try: # cp.set('condor', 'max-runtime') @@ -414,20 +450,6 @@ else: print("Activating condor file transfers") -# File transfers -try: - cp.getboolean('condor', 'shared-filesystem') -except: - cp.set('condor', 'shared-filesystem', str(opts.shared_filesystem)) - -if not cp.getboolean('condor', 'shared-filesystem'): - try: - cp.getboolean('condor', 'transfer-files') - except: - cp.set('condor', 'transfer-files', str(opts.transfer_files)) -else: - cp.set('condor', 'transfer-files', str(False)) - # # Get Trigger Info @@ -1026,12 +1048,14 @@ for t,trigger in enumerate(trigger_list.triggers): with open(cache_file) as cache_entries: cache_entries = cache_entries.readlines() frame_idx = [seg.intersects(job_segment[ifo]) for seg in frameSegs[ifo]] - if cp.getboolean('condor','scitoken-auth'): + if opts.igwn_scitoken: transferFrames[ifo] = [f"igwn+{frame}" for f,frame in - enumerate(framePaths[ifo]) if frame_idx[f]] # required format for odsf file transfer + enumerate(framePaths[ifo]) if frame_idx[f]] # required format for osdf file transfer else: transferFrames[ifo] = [frame for f,frame in enumerate(framePaths[ifo]) if frame_idx[f]] + # transferFrames[ifo] = [frame for f,frame in + # enumerate(framePaths[ifo]) if frame_idx[f]] # I think with AP issuer we don't need the "igwn+" prefix custom_cache[ifo] = [e for ii,e in enumerate(cache_entries)if frame_idx[ii]] # Make a cache for each trigger. Makes file transfers manageable # Make output directory for this trigger