Revision 78d12585 lib/jqueue.py
b/lib/jqueue.py | ||
---|---|---|
1123 | 1123 |
self.UpdateJobUnlocked(job) |
1124 | 1124 |
|
1125 | 1125 |
@_RequireOpenQueue |
1126 |
def _ArchiveJobUnlocked(self, job_id):
|
|
1126 |
def _ArchiveJobUnlocked(self, job): |
|
1127 | 1127 |
"""Archives a job. |
1128 | 1128 |
|
1129 |
@type job_id: string |
|
1130 |
@param job_id: the ID of job to be archived |
|
1129 |
@type job: L{_QueuedJob} |
|
1130 |
@param job: Job object |
|
1131 |
@rtype bool |
|
1132 |
@return Whether job was archived |
|
1131 | 1133 |
|
1132 | 1134 |
""" |
1133 |
logging.info("Archiving job %s", job_id) |
|
1134 |
|
|
1135 |
job = self._LoadJobUnlocked(job_id) |
|
1136 |
if not job: |
|
1137 |
logging.debug("Job %s not found", job_id) |
|
1138 |
return |
|
1139 |
|
|
1140 | 1135 |
if job.CalcStatus() not in (constants.JOB_STATUS_CANCELED, |
1141 | 1136 |
constants.JOB_STATUS_SUCCESS, |
1142 | 1137 |
constants.JOB_STATUS_ERROR): |
1143 | 1138 |
logging.debug("Job %s is not yet done", job.id) |
1144 |
return |
|
1139 |
return False
|
|
1145 | 1140 |
|
1146 | 1141 |
old = self._GetJobPath(job.id) |
1147 | 1142 |
new = self._GetArchivedJobPath(job.id) |
... | ... | |
1150 | 1145 |
|
1151 | 1146 |
logging.debug("Successfully archived job %s", job.id) |
1152 | 1147 |
|
1148 |
return True |
|
1149 |
|
|
1153 | 1150 |
@utils.LockedMethod |
1154 | 1151 |
@_RequireOpenQueue |
1155 | 1152 |
def ArchiveJob(self, job_id): |
... | ... | |
1159 | 1156 |
|
1160 | 1157 |
@type job_id: string |
1161 | 1158 |
@param job_id: Job ID of job to be archived. |
1159 |
@rtype: bool |
|
1160 |
@return: Whether job was archived |
|
1162 | 1161 |
|
1163 | 1162 |
""" |
1164 |
return self._ArchiveJobUnlocked(job_id) |
|
1163 |
logging.info("Archiving job %s", job_id) |
|
1164 |
|
|
1165 |
job = self._LoadJobUnlocked(job_id) |
|
1166 |
if not job: |
|
1167 |
logging.debug("Job %s not found", job_id) |
|
1168 |
return False |
|
1169 |
|
|
1170 |
return self._ArchiveJobUnlocked(job) |
|
1165 | 1171 |
|
1166 | 1172 |
@utils.LockedMethod |
1167 | 1173 |
@_RequireOpenQueue |
... | ... | |
1180 | 1186 |
logging.info("Archiving jobs with age more than %s seconds", age) |
1181 | 1187 |
|
1182 | 1188 |
now = time.time() |
1183 |
for jid in self._GetJobIDsUnlocked(archived=False): |
|
1184 |
job = self._LoadJobUnlocked(jid) |
|
1185 |
if job.CalcStatus() not in (constants.OP_STATUS_SUCCESS, |
|
1186 |
constants.OP_STATUS_ERROR, |
|
1187 |
constants.OP_STATUS_CANCELED): |
|
1189 |
for job_id in self._GetJobIDsUnlocked(archived=False): |
|
1190 |
# Returns None if the job failed to load |
|
1191 |
job = self._LoadJobUnlocked(job_id) |
|
1192 |
if not job: |
|
1188 | 1193 |
continue |
1194 |
|
|
1189 | 1195 |
if job.end_timestamp is None: |
1190 | 1196 |
if job.start_timestamp is None: |
1191 | 1197 |
job_age = job.received_timestamp |
... | ... | |
1195 | 1201 |
job_age = job.end_timestamp |
1196 | 1202 |
|
1197 | 1203 |
if age == -1 or now - job_age[0] > age: |
1198 |
self._ArchiveJobUnlocked(jid)
|
|
1204 |
self._ArchiveJobUnlocked(job)
|
|
1199 | 1205 |
|
1200 | 1206 |
def _GetJobInfoUnlocked(self, job, fields): |
1201 | 1207 |
"""Returns information about a job. |
Also available in: Unified diff