diff options
author | Andrew Brestick <brestick@mcs.anl.gov> | 2008-06-23 16:18:04 +0000 |
---|---|---|
committer | Andrew Brestick <brestick@mcs.anl.gov> | 2008-06-23 16:18:04 +0000 |
commit | c746bdc6f47d023ff13fae99f218aac0cd54003e (patch) | |
tree | 6696729c06427c60e22a0b53a09fa3ea7ed4002d /src/lib/Server/Plugins | |
parent | f26f2426d1b73b5bfddaef7b1700201876b64151 (diff) | |
download | bcfg2-c746bdc6f47d023ff13fae99f218aac0cd54003e.tar.gz bcfg2-c746bdc6f47d023ff13fae99f218aac0cd54003e.tar.bz2 bcfg2-c746bdc6f47d023ff13fae99f218aac0cd54003e.zip |
Resolves clients.xml overwrite issue in #567, fixes configuration issues with certain bcfg2-admin modes
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4706 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins')
-rw-r--r-- | src/lib/Server/Plugins/Metadata.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/Server/Plugins/Metadata.py b/src/lib/Server/Plugins/Metadata.py index 996ba29f6..faa92ef50 100644 --- a/src/lib/Server/Plugins/Metadata.py +++ b/src/lib/Server/Plugins/Metadata.py @@ -105,6 +105,7 @@ class Metadata(Bcfg2.Server.Plugin.MetadataPlugin, self.passwords = {} self.session_cache = {} self.clientdata = None + self.clientdata_original = None self.default = None self.pdirty = False try: @@ -137,6 +138,7 @@ class Metadata(Bcfg2.Server.Plugin.MetadataPlugin, return included = [ent.get('href') for ent in \ xdata.findall('./{http://www.w3.org/2001/XInclude}include')] + xdata_original = copy.deepcopy(xdata) if included: for name in included: if name not in self.extra[dest]: @@ -154,6 +156,7 @@ class Metadata(Bcfg2.Server.Plugin.MetadataPlugin, self.secure = [] self.floating = [] self.addresses = {} + self.clientdata_original = xdata_original self.clientdata = xdata for client in xdata.findall('.//Client'): clname = client.get('name').lower() @@ -271,7 +274,7 @@ class Metadata(Bcfg2.Server.Plugin.MetadataPlugin, fd = datafile.fileno() while self.locked(fd) == True: pass - datafile.write(lxml.etree.tostring(self.clientdata.getroot())) + datafile.write(lxml.etree.tostring(self.clientdata_original.getroot())) fcntl.lockf(fd, fcntl.LOCK_UN) datafile.close() |