From 82b22e198ae657d09033ffc2e5116e9a40755734 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ren=C3=A9=20Nussbaumer?= 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=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: René Nussbaumer Reviewed-by: Michael Hanselmann --- 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 bdb4b00..0c023c5 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 198c721..2375b45 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 f61a79c..1570cb9 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 -- 1.7.10.4