Revision 3d6c5566 lib/jqueue.py

b/lib/jqueue.py
985 985
      logging.debug("Found job %s in memcache", job_id)
986 986
      return job
987 987

  
988
    job = self._LoadJobFromDisk(job_id)
988
    try:
989
      job = self._LoadJobFromDisk(job_id)
990
    except errors.JobFileCorrupted:
991
      old_path = self._GetJobPath(job_id)
992
      new_path = self._GetArchivedJobPath(job_id)
993
      if old_path == new_path:
994
        # job already archived (future case)
995
        logging.exception("Can't parse job %s", job_id)
996
      else:
997
        # non-archived case
998
        logging.exception("Can't parse job %s, will archive.", job_id)
999
        self._RenameFilesUnlocked([(old_path, new_path)])
1000
      return None
989 1001

  
990 1002
    self._memcache[job_id] = job
991 1003
    logging.debug("Added job %s to the cache", job_id)
......
1015 1027
      data = serializer.LoadJson(raw_data)
1016 1028
      job = _QueuedJob.Restore(self, data)
1017 1029
    except Exception, err: # pylint: disable-msg=W0703
1018
      new_path = self._GetArchivedJobPath(job_id)
1019
      if filepath == new_path:
1020
        # job already archived (future case)
1021
        logging.exception("Can't parse job %s", job_id)
1022
      else:
1023
        # non-archived case
1024
        logging.exception("Can't parse job %s, will archive.", job_id)
1025
        self._RenameFilesUnlocked([(filepath, new_path)])
1026
      return None
1030
      raise errors.JobFileCorrupted(err)
1027 1031

  
1028 1032
    return job
1029 1033

  

Also available in: Unified diff