From f41ce12c1334e472dce9734aeb045566e96ef839 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Wed, 27 Oct 2004 19:41:18 +0000 Subject: 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 --- src/lib/Server/Generators/cfg.py | 12 ++++++++++-- 1 file 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) -- cgit v1.2.3-1-g7c22