From bb02155ed040efabaef93d351bd48981177a2439 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Petre <jean-baptiste.petre@nexedi.com>
Date: Wed, 24 Apr 2013 13:59:12 +0200
Subject: [PATCH] fix recursif

---
 slapprepare/slapprepare/slapprepare.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/slapprepare/slapprepare/slapprepare.py b/slapprepare/slapprepare/slapprepare.py
index 02acae6..868d178 100644
--- a/slapprepare/slapprepare/slapprepare.py
+++ b/slapprepare/slapprepare/slapprepare.py
@@ -625,22 +625,23 @@ def chownSlaposDirectory():
     uid = getpwnam('%s%s' % (slapformat_user_base_name, i) )[2]
     gid = getpwnam('%s%s' % (slapformat_user_base_name, i) )[3]
     item = '%s%s' % (slapformat_partition_base_name, i)
-    itempath = os.path.join(path, item)
-    os.chown(itempath, uid, gid)
+    if not os.path.islink(os.path.join(path, item)):
+      os.chown(os.path.join(path, item), uid, gid)
 
   for i in range(int(slapformat_partition)):
    path = "%s/%s%s" % ( slapos_slapgrid_instance, slapformat_partition_base_name, i)
    for root, dirs, files in os.walk(path):
     for items in dirs, files:
      for item in items:
-       if not os.path.islink(item):
+       if not os.path.islink(os.path.join(root, item)):
          os.chown(os.path.join(root, item), getpwnam('%s%s' % (slapformat_user_base_name, i) )[2], getpwnam('%s%s' % (slapformat_user_base_name, i) )[3])
 
   # chown of software root (/opt/slapgrid)
   for root, dirs, files in os.walk(slapos_slapgrid_software):
     for items in dirs, files:
       for item in items:
-        os.chown(os.path.join(root, item), getpwnam('slapsoft')[2], getpwnam('slapsoft')[3])
+        if not os.path.islink(os.path.join(root, item)):
+          os.chown(os.path.join(root, item), getpwnam('slapsoft')[2], getpwnam('slapsoft')[3])
 
 
 def slapprepare():
-- 
2.30.9