def fixStageOutPath(self, path): """Fix the path""" statusRet = 0 outputRet = {} outputRet["errorLog"] = None outputRet["report"] = {} outputRet["report"]["clientState"] = None siteInformation = SiteInformation() cpt = siteInformation.getCopyTool(stageIn=False) tolog("Site mover will use get command: %s, %s" % (cpt)) # figure out which copyprefix to use (use the PFN to figure out where the file is and then use the appropriate copyprefix) # e.g. copyprefix=srm://srm-eosatlas.cern.ch,srm://srm-atlas.cern.ch^root://eosatlas.cern.ch/,root://castoratlas-xrdssl/ # PFN=srm://srm-eosatlas.cern.ch/.. use copyprefix root://eosatlas.cern.ch/ to build the TURL src_loc_pfn # full example: # Using copyprefixin = srm://srm-eosatlas.cern.ch,srm://srm-atlas.cern.ch^root://eosatlas.cern.ch/,root://castoratlas-xrdssl/ # PFN=srm://srm-eosatlas.cern.ch/eos/atlas/atlasdatadisk/rucio/mc12_8TeV/8d/c0/EVNT.01212395._000004.pool.root.1 # TURL=root://eosatlas.cern.ch//eos/atlas/atlasdatadisk/rucio/mc12_8TeV/8d/c0/EVNT.01212395._000004.pool.root.1 ret_path = siteInformation.getCopyPrefixPath(path, stageIn=False) if not ret_path.startswith("root:"): errorLog = "Failed to use copyprefix to convert the current path to local path." tolog("!!WARNING!!1777!! %s" % (errorLog)) outputRet["errorLog"] = errorLog outputRet["report"]["clientState"] = 'PSTAGE_FAIL' statusRet = PilotErrors.ERR_STAGEINFAILED tolog("PFN=%s" % (path)) tolog("TURL=%s" % (ret_path)) outputRet['path'] = ret_path return statusRet, outputRet
def fixStageOutPath(self, path): """Fix the path""" statusRet = 0 outputRet={} outputRet["errorLog"] = None outputRet["report"] = {} outputRet["report"]["clientState"] = None siteInformation = SiteInformation() cpt = siteInformation.getCopyTool(stageIn=False) tolog("Site mover will use get command: %s, %s" % (cpt)) # figure out which copyprefix to use (use the PFN to figure out where the file is and then use the appropriate copyprefix) # e.g. copyprefix=srm://srm-eosatlas.cern.ch,srm://srm-atlas.cern.ch^root://eosatlas.cern.ch/,root://castoratlas-xrdssl/ # PFN=srm://srm-eosatlas.cern.ch/.. use copyprefix root://eosatlas.cern.ch/ to build the TURL src_loc_pfn # full example: # Using copyprefixin = srm://srm-eosatlas.cern.ch,srm://srm-atlas.cern.ch^root://eosatlas.cern.ch/,root://castoratlas-xrdssl/ # PFN=srm://srm-eosatlas.cern.ch/eos/atlas/atlasdatadisk/rucio/mc12_8TeV/8d/c0/EVNT.01212395._000004.pool.root.1 # TURL=root://eosatlas.cern.ch//eos/atlas/atlasdatadisk/rucio/mc12_8TeV/8d/c0/EVNT.01212395._000004.pool.root.1 ret_path = siteInformation.getCopyPrefixPath(path, stageIn=False) if not ret_path.startswith("root:"): errorLog = "Failed to use copyprefix to convert the current path to local path." tolog("!!WARNING!!1777!! %s" % (errorLog)) outputRet["errorLog"] = errorLog outputRet["report"]["clientState"] = 'PSTAGE_FAIL' statusRet = PilotErrors.ERR_STAGEINFAILED tolog("PFN=%s" % (path)) tolog("TURL=%s" % (ret_path)) outputRet['path'] = ret_path return statusRet, outputRet
def fixStageInPath(self, path): """Fix the path""" if path[:3] == "srm" and '?SFN=' in path: self.log("Found SFN part in file path: %s" % (path)) elif path[:3] == "srm": try: hostname = path.split('/',3)[2] except Exception as e: self.log("'!!WARNING!!2999!! Could not extract srm protocol for replacement, keeping path variable as it is: %s (%s)' %\ (path, str(e))") else: # srm = 'srm://head01.aglt2.org' srm = 'srm://' + hostname # does seopt contain any matching srm's? sematch = self.getSEMatchFromSEOpt(srm) if sematch != "": path = path.replace(srm, sematch) self.log("Replaced %s with %s (from seopt) in path: %s" % (srm, sematch, path)) else: se = readpar('se').split(",")[0] _dummytoken, se = self.extractSE(se) tolog("Using SE: %s" % (se)) path = path.replace(srm, se) self.log("Replaced %s with %s (from se) in path: %s" % (srm, se, path)) # add port number from se to getfile if necessary path = self.addPortToPath(se, path) siteInformation = SiteInformation() path = siteInformation.getCopyPrefixPath(path, stageIn=True) return path
def fixStageInPath(self, path): """Fix the path""" if path[:3] == "srm" and '?SFN=' in path: self.log("Found SFN part in file path: %s" % (path)) elif path[:3] == "srm": try: hostname = path.split('/',3)[2] except Exception as e: self.log("'!!WARNING!!2999!! Could not extract srm protocol for replacement, keeping path variable as it is: %s (%s)' %\ (path, str(e))") else: # srm = 'srm://head01.aglt2.org' srm = 'srm://' + hostname # does seopt contain any matching srm's? sematch = self.getSEMatchFromSEOpt(srm) if sematch != "": path = path.replace(srm, sematch) self.log("Replaced %s with %s (from seopt) in path: %s" % (srm, sematch, path)) else: se = readpar('se').split(",")[0] _dummytoken, se = self.extractSE(se) tolog("Using SE: %s" % (se)) path = path.replace(srm, se) self.log("Replaced %s with %s (from se) in path: %s" % (srm, se, path)) # add port number from se to getfile if necessary path = self.addPortToPath(se, path) siteInformation = SiteInformation() path = siteInformation.getCopyPrefixPath(path, stageIn=True) return path