If the ACL for a locker isn't accessible, assume it's empty (closes #82)
[invirt/packages/invirt-web.git] / code / getafsgroups.py
index 13f8cf7..c775a01 100644 (file)
@@ -48,10 +48,15 @@ def getCell(locker):
     return p.stdout.read().split()[-1][1:-1]
 
 def getLockerAcl(locker):
     return p.stdout.read().split()[-1][1:-1]
 
 def getLockerAcl(locker):
-    p = subprocess.Popen(["fs", "listacl", getLockerPath(locker)], 
-                         stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-    if p.wait():
-        raise AfsProcessError(p.stderr.read())
+    try:
+        p = subprocess.Popen(["fs", "listacl", getLockerPath(locker)], 
+                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        if p.wait():
+            raise AfsProcessError(p.stderr.read())
+    except AfsProcessError, e:
+        if e.message.startswith("fs: You don't have the required access rights on"):
+            return []
+        raise
     lines = p.stdout.readlines()
     values = []
     for line in lines[1:]:
     lines = p.stdout.readlines()
     values = []
     for line in lines[1:]: