Blob Blame History Raw
From e086b7a3d1de694d3335304442a3564c277acc30 Mon Sep 17 00:00:00 2001
From: Yeela Kaplan <ykaplan@redhat.com>
Date: Mon, 9 Sep 2013 11:04:39 +0200
Subject: [PATCH] remoteFileHandler: Add create exclusive option for
 truncateFile

Change-Id: Idfeff348e0f6fc240954e7d304b794dd99ea098c
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=979193
Signed-off-by: Yeela Kaplan <ykaplan@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/19022
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/20062
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>
Tested-by: Federico Simoncelli <fsimonce@redhat.com>
---
 vdsm/storage/remoteFileHandler.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/vdsm/storage/remoteFileHandler.py b/vdsm/storage/remoteFileHandler.py
index abe9915..47b237b 100644
--- a/vdsm/storage/remoteFileHandler.py
+++ b/vdsm/storage/remoteFileHandler.py
@@ -334,8 +334,13 @@ def directWriteLines(path, lines):
         return f.writelines(lines)
 
 
-def truncateFile(path, size, mode=None):
-    with open(path, "w") as f:
+def truncateFile(path, size, mode=None, creatExcl=False):
+    flags = os.O_CREAT | os.O_WRONLY
+    if creatExcl:
+        flags |= os.O_EXCL
+
+    fd = os.open(path, flags)
+    with os.fdopen(fd, 'w') as f:
         if mode is not None:
             os.chmod(path, mode)
         f.truncate(size)
-- 
1.8.3.1