File indexing completed on 2026-04-10 08:38:58
0001 class SiteCandidate(object):
0002 def __init__(self, siteName, unifiedName=None):
0003
0004 self.siteName = siteName
0005
0006 self.unifiedName = unifiedName
0007
0008 self.weight = 0
0009
0010 self.localDiskFiles = set()
0011
0012 self.localTapeFiles = set()
0013
0014 self.cacheFiles = set()
0015
0016 self.remoteFiles = set()
0017
0018 self.allFiles = None
0019
0020 self.remoteProtocol = None
0021
0022 self.remoteSource = None
0023
0024 self.nRunningJobs = None
0025
0026 self.nQueuedJobs = None
0027
0028 self.nAssignedJobs = None
0029
0030 self.nRunningJobsCap = None
0031
0032 self.overriddenAttrs = {}
0033
0034
0035 def add_local_disk_files(self, files):
0036 self.localDiskFiles = self.localDiskFiles.union([f.fileID for f in files])
0037
0038
0039 def add_local_tape_files(self, files):
0040 self.localTapeFiles = self.localTapeFiles.union([f.fileID for f in files])
0041
0042
0043 def add_cache_files(self, files):
0044 self.cacheFiles = self.cacheFiles.union([f.fileID for f in files])
0045
0046
0047 def add_remote_files(self, files):
0048 self.remoteFiles = self.remoteFiles.union([f.fileID for f in files])
0049
0050
0051 def getFileLocality(self, fileSpec):
0052 if fileSpec.fileID in self.localDiskFiles:
0053 return "localdisk"
0054 if fileSpec.fileID in self.localTapeFiles:
0055 return "localtape"
0056 if fileSpec.fileID in self.cacheFiles:
0057 return "cache"
0058 if fileSpec.fileID in self.remoteFiles:
0059 return "remote"
0060 return None
0061
0062
0063 def addAvailableFiles(self, fileList):
0064 if self.allFiles is None:
0065 self.allFiles = set()
0066 for tmpFileSpec in fileList:
0067 self.allFiles.add(tmpFileSpec.fileID)
0068
0069
0070 def isAvailableFile(self, tmpFileSpec):
0071
0072 if self.allFiles is None:
0073 return True
0074 return tmpFileSpec.fileID in self.allFiles
0075
0076
0077 def can_accept_jobs(self):
0078 if self.nRunningJobsCap is None or self.nQueuedJobs is None:
0079 return True
0080 if self.nRunningJobsCap > self.nQueuedJobs:
0081 return True
0082 return False
0083
0084
0085 def override_attribute(self, key, value):
0086 self.overriddenAttrs[key] = value
0087
0088
0089 def get_overridden_attribute(self, key):
0090 return self.overriddenAttrs.get(key)