From f504983c5a4874dd953c112b1d62b5db71d336d9 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Fri, 16 Oct 2009 03:07:16 +0000 Subject: POSIX: Add support for all new POSIX types in the client code The client should now understand old and new POSIX entries. It is compatible with 0.9.6, 1.0 using POSIXCompat, and new 1.0 Path entries. Signed-off-by: Sol Jerome git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5485 ce84e21b-d406-0410-9b95-82705330c041 --- schemas/types.xsd | 7 +++++- src/lib/Client/Tools/POSIX.py | 51 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/schemas/types.xsd b/schemas/types.xsd index f04c3140f..92b38ecea 100644 --- a/schemas/types.xsd +++ b/schemas/types.xsd @@ -24,12 +24,17 @@ - + + + + + + diff --git a/src/lib/Client/Tools/POSIX.py b/src/lib/Client/Tools/POSIX.py index 7457ca480..73fc64af1 100644 --- a/src/lib/Client/Tools/POSIX.py +++ b/src/lib/Client/Tools/POSIX.py @@ -89,12 +89,17 @@ class POSIX(Bcfg2.Client.Tools.Tool): __handles__ = [('ConfigFile', None), ('Directory', None), ('Path', 'ConfigFile'), - ('Path', 'device'), ('Path', 'Directory'), ('Path', 'HardLink'), ('Path', 'Permissions'), ('Path', 'SymLink'), + ('Path', 'device'), + ('Path', 'directory'), + ('Path', 'file'), + ('Path', 'hardlink'), ('Path', 'nonexistent'), + ('Path', 'permissions'), + ('Path', 'symlink'), ('Permissions', None), ('SymLink', None)] __req__ = {'ConfigFile': ['name', 'owner', 'group', 'perms'], @@ -324,7 +329,7 @@ class POSIX(Bcfg2.Client.Tools.Tool): return False return self.InstallPermissions(entry) - def VerifyHardLink(self, entry, _): + def VerifyhardLink(self, entry, _): '''Verify HardLink Entry''' try: if os.path.samefile(entry.get('name'), entry.get('to')): @@ -342,7 +347,7 @@ class POSIX(Bcfg2.Client.Tools.Tool): entry.get('to'))) return False - def InstallHardLink(self, entry): + def InstallhardLink(self, entry): '''Install HardLink Entry''' self.logger.info("Installing Hardlink %s" % (entry.get('name'))) if os.path.lexists(entry.get('name')): @@ -678,6 +683,46 @@ class POSIX(Bcfg2.Client.Tools.Tool): print(err) return False + def Verifydirectory(self, entry, _): + ret = getattr(self, 'VerifyDirectory') + return ret(entry, _) + + def Installdirectory(self, entry): + ret = getattr(self, 'InstallDirectory') + return ret(entry) + + def Verifyfile(self, entry, _): + ret = getattr(self, 'VerifyConfigFile') + return ret(entry, _) + + def Installfile(self, entry): + ret = getattr(self, 'InstallConfigFile') + return ret(entry) + + def Verifynonexistent(self, entry, _): + # FIXME: not implemented + return True + + def Installnonexistent(self, entry): + # FIXME: not implemented + return True + + def Verifypermissions(self, entry, _): + ret = getattr(self, 'VerifyPermissions') + return ret(entry, _) + + def Installpermissions(self, entry): + ret = getattr(self, 'InstallPermissions') + return ret(entry) + + def Verifysymlink(self, entry, _): + ret = getattr(self, 'VerifySymLink') + return ret(entry, _) + + def Installsymlink(self, entry): + ret = getattr(self, 'InstallSymLink') + return ret(entry) + def InstallPath(self, entry): ret = getattr(self, 'Install%s' % entry.get('type')) return ret(entry) -- cgit v1.2.3-1-g7c22