summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/Cfg.py
diff options
context:
space:
mode:
authorRobert Gogolok <gogo@cs.uni-sb.de>2007-12-28 17:50:15 +0000
committerRobert Gogolok <gogo@cs.uni-sb.de>2007-12-28 17:50:15 +0000
commit1b53eefe575e63d8995e7fc9065bec99dbe38927 (patch)
treeae47c17d13cd98436c97e97b66c86f98c0dfd318 /src/lib/Server/Plugins/Cfg.py
parent6501531fd4c2d866613d66532e5bd5a209659b98 (diff)
downloadbcfg2-1b53eefe575e63d8995e7fc9065bec99dbe38927.tar.gz
bcfg2-1b53eefe575e63d8995e7fc9065bec99dbe38927.tar.bz2
bcfg2-1b53eefe575e63d8995e7fc9065bec99dbe38927.zip
fix case: info file gets moved as part of an upper directory, e.g. mv Cfg/etc/passwd /tmp
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4119 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins/Cfg.py')
-rw-r--r--src/lib/Server/Plugins/Cfg.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/Server/Plugins/Cfg.py b/src/lib/Server/Plugins/Cfg.py
index b273d1751..3c550391e 100644
--- a/src/lib/Server/Plugins/Cfg.py
+++ b/src/lib/Server/Plugins/Cfg.py
@@ -93,7 +93,18 @@ class ConfigFileEntry(object):
self.interpolate = False
self.paranoid = False
filename = "%s/%s" % (self.repopath, name)
- for line in open(filename).readlines():
+
+ # case: info file gets moved as part of an upper directory,
+ # e.g. mv Cfg/etc/passwd /tmp.
+ # Then comes first the event 'changed' for the info file
+ # and afterwards events 'changed' and 'deleted' for the
+ # actual config file and directory.
+ try:
+ lines = open(filename).readlines()
+ except IOError:
+ return
+
+ for line in lines:
match = self.info.match(line)
if not match:
if not self.iignore.match(line):