From 1ef1dfeb7203242ffcc2ef4c27ed0e34f46337f7 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Mon, 15 May 2006 20:07:32 +0000 Subject: Add support for empty files git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1864 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Client/Toolset.py | 6 +++++- src/lib/Server/Plugins/Cfg.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/Client/Toolset.py b/src/lib/Client/Toolset.py index fd8e01604..ceae8dda7 100644 --- a/src/lib/Client/Toolset.py +++ b/src/lib/Client/Toolset.py @@ -366,6 +366,8 @@ class Toolset(object): perms = os.stat(filename)[ST_MODE] if entry.get('encoding', 'ascii') == 'base64': tempdata = binascii.a2b_base64(entry.text) + elif entry.get('empty', 'false') == 'true': + tempdata = '' else: tempdata = entry.text @@ -383,7 +385,7 @@ class Toolset(object): def InstallConfigFile(self, entry): '''Install ConfigFile Entry''' - if entry.text == None: + if entry.text == None and entry.get('empty', 'false') != 'true': self.logger.error( "Incomplete information for ConfigFile %s. Cannot install" % (entry.get('name'))) return False @@ -418,6 +420,8 @@ class Toolset(object): newfile = open("%s.new"%(entry.get('name')), 'w') if entry.get('encoding', 'ascii') == 'base64': filedata = binascii.a2b_base64(entry.text) + elif entry.get('empty', 'false') == 'true': + filedata = '' else: filedata = entry.text newfile.write(filedata) diff --git a/src/lib/Server/Plugins/Cfg.py b/src/lib/Server/Plugins/Cfg.py index f0f11b88e..402389663 100644 --- a/src/lib/Server/Plugins/Cfg.py +++ b/src/lib/Server/Plugins/Cfg.py @@ -200,6 +200,8 @@ class ConfigFileEntry(object): entry.attrib['paranoid'] = 'true' if entry.attrib['encoding'] == 'base64': entry.text = binascii.b2a_base64(filedata) + if filedata == '': + entry.set('empty', 'true') else: try: entry.text = filedata -- cgit v1.2.3-1-g7c22