diff --git a/lib/backend.py b/lib/backend.py index bdb4b0050ac13f4c3f83e49a3020b349eb66a2de..0c023c5f505f8acda7cc1ad570e99c0e2b870442 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 198c7219993350e1eda41f662cccccd8662cd022..2375b4550d8634df468d31530820ae61b534718e 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 f61a79cebd8c8be0e584c1fae7e32762817f37fb..1570cb986581112c6c096a051a9e9c6e967edaaf 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