[node-patches] Change in ovirt-node[master]: persist: fix owner/group copy to /config

dougsland at redhat.com dougsland at redhat.com
Tue Mar 24 05:26:28 UTC 2015


Douglas Schilling Landgraf has uploaded a new change for review.

Change subject: persist: fix owner/group copy to /config
......................................................................

persist: fix owner/group copy to /config

In commit 9a1986a8 the ovirt_store_config has been ported
to new ovirt/node package. This new persist function uses
shutil.copy2() to copy the new persisted file to /config but
on POSIX platforms[1], this means that file owner and
group are lost as well as ACLs affecting the permissions
of the persisted file during the mount bind.
This patch make sure the owner/group is correct when
ovirt-node store a peristed file for later use with correct
attributes.
[1] https://docs.python.org/2/library/shutil.html

Change-Id: I4ec3dc1773a0e84eb82c2682f9e145c15216dd91
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1204535
Signed-off-by: Douglas Schilling Landgraf <dougsland at redhat.com>
---
M src/ovirt/node/utils/fs/__init__.py
1 file changed, 5 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/68/39068/1

diff --git a/src/ovirt/node/utils/fs/__init__.py b/src/ovirt/node/utils/fs/__init__.py
index b46572f..550fde5 100644
--- a/src/ovirt/node/utils/fs/__init__.py
+++ b/src/ovirt/node/utils/fs/__init__.py
@@ -27,6 +27,7 @@
 import shutil
 import errno
 import os
+import stat
 import StringIO
 import re
 import hashlib
@@ -484,7 +485,11 @@
                     self._logger.error('Failed to clean up persisted file '
                                        '"%s": %s', abspath, ose.message)
         self._prepare_dir(abspath, persisted_path)
+        abspath_stat = os.stat(abspath)
+        owner = abspath_stat[stat.ST_UID]
+        group = abspath_stat[stat.ST_GID]
         shutil.copy2(abspath, persisted_path)
+        os.chown(persisted_path, owner, group)
         mount.mount(persisted_path, abspath, flags=mount.MS_BIND)
         self._logger.info('File "%s" successfully persisted', abspath)
         self._add_path_entry(abspath)


-- 
To view, visit https://gerrit.ovirt.org/39068
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ec3dc1773a0e84eb82c2682f9e145c15216dd91
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-node
Gerrit-Branch: master
Gerrit-Owner: Douglas Schilling Landgraf <dougsland at redhat.com>



More information about the node-patches mailing list