From 82b22e198ae657d09033ffc2e5116e9a40755734 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com>
Date: Mon, 16 Aug 2010 10:32:18 +0200
Subject: [PATCH] Move job queue to new ganeti.runtime
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: RenΓ© Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
---
 lib/backend.py |  5 ++++-
 lib/jqueue.py  | 10 ++++++++--
 lib/jstore.py  |  6 ++++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/lib/backend.py b/lib/backend.py
index bdb4b0050..0c023c5f5 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -59,6 +59,7 @@ from ganeti import objects
 from ganeti import ssconf
 from ganeti import serializer
 from ganeti import netutils
+from ganeti import runtime
 
 
 _BOOT_ID_PATH = "/proc/sys/kernel/random/boot_id"
@@ -2403,9 +2404,11 @@ def JobQueueUpdate(file_name, content):
 
   """
   _EnsureJobQueueFile(file_name)
+  getents = runtime.GetEnts()
 
   # Write and replace the file atomically
-  utils.WriteFile(file_name, data=_Decompress(content))
+  utils.WriteFile(file_name, data=_Decompress(content), uid=getents.masterd_uid,
+                  gid=getents.masterd_gid)
 
 
 def JobQueueRename(old, new):
diff --git a/lib/jqueue.py b/lib/jqueue.py
index 198c72199..2375b4550 100644
--- a/lib/jqueue.py
+++ b/lib/jqueue.py
@@ -53,6 +53,7 @@ from ganeti import mcpu
 from ganeti import utils
 from ganeti import jstore
 from ganeti import rpc
+from ganeti import runtime
 from ganeti import netutils
 from ganeti import compat
 
@@ -1070,7 +1071,9 @@ class JobQueue(object):
     @param replicate: whether to spread the changes to the remote nodes
 
     """
-    utils.WriteFile(file_name, data=data)
+    getents = runtime.GetEnts()
+    utils.WriteFile(file_name, data=data, uid=getents.masterd_uid,
+                    gid=getents.masterd_gid)
 
     if replicate:
       names, addrs = self._GetNodeIp()
@@ -1314,8 +1317,11 @@ class JobQueue(object):
     @param drain_flag: Whether to set or unset the drain flag
 
     """
+    getents = runtime.GetEnts()
+
     if drain_flag:
-      utils.WriteFile(constants.JOB_QUEUE_DRAIN_FILE, data="", close=True)
+      utils.WriteFile(constants.JOB_QUEUE_DRAIN_FILE, data="", close=True,
+                      uid=getents.masterd_uid, gid=getents.masterd_gid)
     else:
       utils.RemoveFile(constants.JOB_QUEUE_DRAIN_FILE)
 
diff --git a/lib/jstore.py b/lib/jstore.py
index f61a79ceb..1570cb986 100644
--- a/lib/jstore.py
+++ b/lib/jstore.py
@@ -25,6 +25,7 @@ import errno
 
 from ganeti import constants
 from ganeti import errors
+from ganeti import runtime
 from ganeti import utils
 
 
@@ -73,8 +74,7 @@ def InitAndVerifyQueue(must_lock):
            locking mode.
 
   """
-  dirs = [(d, constants.JOB_QUEUE_DIRS_MODE) for d in constants.JOB_QUEUE_DIRS]
-  utils.EnsureDirs(dirs)
+  getents = runtime.GetEnts()
 
   # Lock queue
   queue_lock = utils.FileLock.Open(constants.JOB_QUEUE_LOCK_FILE)
@@ -99,6 +99,7 @@ def InitAndVerifyQueue(must_lock):
       if version is None:
         # Write new version file
         utils.WriteFile(constants.JOB_QUEUE_VERSION_FILE,
+                        uid=getents.masterd_uid, gid=getents.masterd_gid,
                         data="%s\n" % constants.JOB_QUEUE_VERSION)
 
         # Read again
@@ -112,6 +113,7 @@ def InitAndVerifyQueue(must_lock):
       if serial is None:
         # Write new serial file
         utils.WriteFile(constants.JOB_QUEUE_SERIAL_FILE,
+                        uid=getents.masterd_uid, gid=getents.masterd_gid,
                         data="%s\n" % 0)
 
         # Read again
-- 
GitLab