LGTM
On Tue, Jun 24, 2014 at 1:55 PM, 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote: > The task of archiving jobs is now done by luxid. > > Signed-off-by: Klaus Aehlig <[email protected]> > --- > lib/jqueue/__init__.py | 76 > -------------------------------------------------- > 1 file changed, 76 deletions(-) > > diff --git a/lib/jqueue/__init__.py b/lib/jqueue/__init__.py > index 1f61d58..5897ab9 100644 > --- a/lib/jqueue/__init__.py > +++ b/lib/jqueue/__init__.py > @@ -2338,82 +2338,6 @@ class JobQueue(object): > self._UpdateQueueSizeUnlocked() > return len(archive_jobs) > > - @locking.ssynchronized(_LOCK) > - def ArchiveJob(self, job_id): > - """Archives a job. > - > - This is just a wrapper over L{_ArchiveJobsUnlocked}. > - > - @type job_id: int > - @param job_id: Job ID of job to be archived. > - @rtype: bool > - @return: Whether job was archived > - > - """ > - logging.info("Archiving job %s", job_id) > - > - job = self._LoadJobUnlocked(job_id) > - if not job: > - logging.debug("Job %s not found", job_id) > - return False > - > - return self._ArchiveJobsUnlocked([job]) == 1 > - > - @locking.ssynchronized(_LOCK) > - def AutoArchiveJobs(self, age, timeout): > - """Archives all jobs based on age. > - > - The method will archive all jobs which are older than the age > - parameter. For jobs that don't have an end timestamp, the start > - timestamp will be considered. The special '-1' age will cause > - archival of all jobs (that are not running or queued). > - > - @type age: int > - @param age: the minimum age in seconds > - > - """ > - logging.info("Archiving jobs with age more than %s seconds", age) > - > - now = time.time() > - end_time = now + timeout > - archived_count = 0 > - last_touched = 0 > - > - all_job_ids = self._GetJobIDsUnlocked() > - pending = [] > - for idx, job_id in enumerate(all_job_ids): > - last_touched = idx + 1 > - > - # Not optimal because jobs could be pending > - # TODO: Measure average duration for job archival and take number of > - # pending jobs into account. > - if time.time() > end_time: > - break > - > - # Returns None if the job failed to load > - job = self._LoadJobUnlocked(job_id) > - if job: > - if job.end_timestamp is None: > - if job.start_timestamp is None: > - job_age = job.received_timestamp > - else: > - job_age = job.start_timestamp > - else: > - job_age = job.end_timestamp > - > - if age == -1 or now - job_age[0] > age: > - pending.append(job) > - > - # Archive 10 jobs at a time > - if len(pending) >= 10: > - archived_count += self._ArchiveJobsUnlocked(pending) > - pending = [] > - > - if pending: > - archived_count += self._ArchiveJobsUnlocked(pending) > - > - return (archived_count, len(all_job_ids) - last_touched) > - > def _Query(self, fields, qfilter): > qobj = query.Query(query.JOB_FIELDS, fields, qfilter=qfilter, > namefield="id") > -- > 2.0.0.526.g5318336 > >
