From c54cf38556731fbd7f7b5dbe8f02a8f994637932 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Sat, 23 Jan 2010 23:12:40 +0000 Subject: Metadata: Write out proper file when clients.xml is a symlink Signed-off-by: Sol Jerome git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5701 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Metadata.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/lib/Server/Plugins/Metadata.py') diff --git a/src/lib/Server/Plugins/Metadata.py b/src/lib/Server/Plugins/Metadata.py index 94e3cfe26..c610cc955 100644 --- a/src/lib/Server/Plugins/Metadata.py +++ b/src/lib/Server/Plugins/Metadata.py @@ -5,6 +5,7 @@ import copy import fcntl import lxml.etree import os +import os.path import socket import time import Bcfg2.Server.Plugin @@ -501,9 +502,14 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, raise MetadataRuntimeError datafile.close() + # check if clients.xml is a symlink + clientsxml = "%s/%s" % (self.data, 'clients.xml') + if os.path.islink(clientsxml): + clientsxml = os.readlink(clientsxml) + try: os.rename("%s/%s" % (self.data, 'clients.xml.new'), - "%s/%s" % (self.data, 'clients.xml')) + "%s/%s" % (clientsxml)) except: self.logger.error("Metadata: Failed to rename clients.xml.new") raise MetadataRuntimeError -- cgit v1.2.3-1-g7c22