From 0cb941052557db55e91e5bed86a1aa60b2cd2140 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Thu, 24 Jul 2008 11:32:46 +0000
Subject: [PATCH] Add directory for archived jobs

Reviewed-by: iustinp
---
 lib/constants.py |  1 +
 lib/jqueue.py    | 16 ++++++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/lib/constants.py b/lib/constants.py
index 61b9e5bf3..e85bd4868 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -253,6 +253,7 @@ JOB_QUEUE_VERSION = 1
 JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock"
 JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version"
 JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial"
+JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive"
 
 JOB_ID_TEMPLATE = r"\d+"
 
diff --git a/lib/jqueue.py b/lib/jqueue.py
index eb4ebde84..ed81ff784 100644
--- a/lib/jqueue.py
+++ b/lib/jqueue.py
@@ -303,12 +303,13 @@ class DiskJobStorage(JobStorageBase):
     self._memcache = {}
     self._my_hostname = utils.HostInfo().name
 
-    # Make sure our directory exists
-    try:
-      os.mkdir(constants.QUEUE_DIR, 0700)
-    except OSError, err:
-      if err.errno not in (errno.EEXIST, ):
-        raise
+    # Make sure our directories exists
+    for path in (constants.QUEUE_DIR, constants.JOB_QUEUE_ARCHIVE_DIR):
+      try:
+        os.mkdir(path, 0700)
+      except OSError, err:
+        if err.errno not in (errno.EEXIST, ):
+          raise
 
     # Get queue lock
     self.lock_fd = open(constants.JOB_QUEUE_LOCK_FILE, "w")
@@ -419,6 +420,9 @@ class DiskJobStorage(JobStorageBase):
   def _GetJobPath(self, job_id):
     return os.path.join(constants.QUEUE_DIR, "job-%s" % job_id)
 
+  def _GetArchivedJobPath(self, job_id):
+    return os.path.join(constants.JOB_QUEUE_ARCHIVE_DIR, "job-%s" % job_id)
+
   def _GetJobIDsUnlocked(self, archived=False):
     """Return all known job IDs.
 
-- 
GitLab