summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSol Jerome <solj@ices.utexas.edu>2010-06-16 13:50:32 +0000
committerSol Jerome <sol.jerome@gmail.com>2010-06-16 08:52:05 -0500
commitc19c638a5cc23f1166eb21fa3814e0d53d563d23 (patch)
treeee64f53293ada9165187a84075120ce2166f4f97
parent841b9201412aaf00d0c74a60ec21544e5c2c6c10 (diff)
downloadbcfg2-c19c638a5cc23f1166eb21fa3814e0d53d563d23.tar.gz
bcfg2-c19c638a5cc23f1166eb21fa3814e0d53d563d23.tar.bz2
bcfg2-c19c638a5cc23f1166eb21fa3814e0d53d563d23.zip
POSIX: Don't set perms for unspecified entries (Resolves ticket #893)
We were previously setting permissions to '0000' for entries that were incorrectly specified (missing 'perms' attribute). This fixes that and requests the user run bcfg2-repo-validate. Signed-off-by: Sol Jerome <sol.jerome@gmail.com> git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5939 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r--src/lib/Client/Tools/POSIX.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/Client/Tools/POSIX.py b/src/lib/Client/Tools/POSIX.py
index 19dd34b1a..03f29d9e9 100644
--- a/src/lib/Client/Tools/POSIX.py
+++ b/src/lib/Client/Tools/POSIX.py
@@ -168,6 +168,8 @@ class POSIX(Bcfg2.Client.Tools.Tool):
def VerifyDirectory(self, entry, modlist):
"""Verify Directory entry."""
+ if entry.get('perms') == None:
+ return False
while len(entry.get('perms', '')) < 4:
entry.set('perms', '0' + entry.get('perms', ''))
try:
@@ -375,6 +377,12 @@ class POSIX(Bcfg2.Client.Tools.Tool):
def InstallPermissions(self, entry):
"""Install POSIX permissions"""
+ if entry.get('perms') == None or \
+ entry.get('owner') == None or \
+ entry.get('group') == None:
+ self.logger.error('Entry %s not completely specified. '
+ 'Try running bcfg2-repo-validate.' % (entry.get('name')))
+ return False
try:
os.chown(entry.get('name'), normUid(entry), normGid(entry))
os.chmod(entry.get('name'), calcPerms(S_IFDIR, entry.get('perms')))