summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-10-27 19:41:18 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-10-27 19:41:18 +0000
commitf41ce12c1334e472dce9734aeb045566e96ef839 (patch)
treebb9682b6c07bfc669613d4b982760c723c5a4bc4 /src
parent694e8b7c746d4b334ea7f203d044e37d0fab7ae9 (diff)
downloadbcfg2-f41ce12c1334e472dce9734aeb045566e96ef839.tar.gz
bcfg2-f41ce12c1334e472dce9734aeb045566e96ef839.tar.bz2
bcfg2-f41ce12c1334e472dce9734aeb045566e96ef839.zip
fix race
2004/10/27 14:01:33-05:00 anl.gov!desai fix directory changed event failure (Logical change 1.120) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@531 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r--src/lib/Server/Generators/cfg.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/Server/Generators/cfg.py b/src/lib/Server/Generators/cfg.py
index a18445a03..2b1eb333c 100644
--- a/src/lib/Server/Generators/cfg.py
+++ b/src/lib/Server/Generators/cfg.py
@@ -168,7 +168,12 @@ class ConfigFileRepository(DirectoryBacked):
def AddEntry(self, name):
'''Add new entry to FAM structures'''
- if S_ISDIR(stat(name)[ST_MODE]):
+ try:
+ sdata = stat(name)[ST_MODE]
+ except OSError:
+ return
+
+ if S_ISDIR(sdata):
self.AddDirectoryMonitor(name)
else:
# file entries shouldn't contain path-to-repo
@@ -196,7 +201,10 @@ class ConfigFileRepository(DirectoryBacked):
configfile = filename[len(self.name):-(len(event.filename)+1)]
if event.filename == ':info':
event.filename = filename
- self.entries[configfile].HandleEvent(event)
+ if self.entries.has_key(configfile):
+ self.entries[configfile].HandleEvent(event)
+ else:
+ syslog(LOG_INFO, "Ignoring event for %s"%(configfile))
elif action == 'deleted':
configfile = filename[len(self.name):-(len(event.filename)+1)]
self.entries[configfile].HandleEvent(event)