From 31efe81b13d6761cf153e71f7ac150751b2d4090 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Mon, 7 Feb 2011 01:32:57 +0000 Subject: syncdaemon: add "setattr" server method, needed to synchronize metadata of links/dirs Signed-off-by: Csaba Henk Signed-off-by: Anand V. Avati BUG: 2318 (gsyncd.py :chmod on directory not working) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2318 --- xlators/features/marker/utils/syncdaemon/resource.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'xlators/features/marker/utils/syncdaemon/resource.py') diff --git a/xlators/features/marker/utils/syncdaemon/resource.py b/xlators/features/marker/utils/syncdaemon/resource.py index f484d1de5..7ba7cb9d4 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -1,6 +1,7 @@ import re import os import sys +import stat import time import errno import struct @@ -156,6 +157,18 @@ class Server(object): def set_xtime(cls, path, uuid, mark): Xattr.lsetxattr(path, '.'.join([cls.GX_NSPACE, uuid, 'xtime']), struct.pack('!II', *mark)) + @staticmethod + def setattr(path, adct): + own = adct.get('own') + if own: + os.lchown(path, *own) + mode = adct.get('mode') + if mode: + os.chmod(path, stat.S_IMODE(mode)) + times = adct.get('times') + if times: + os.utime(path, times) + @staticmethod def pid(): return os.getpid() -- cgit