summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-04-17 11:45:20 -0700
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-04-17 11:45:20 -0700
commit748cf2497e2bb41d29d298a4ae08e6dfd5a05ca9 (patch)
tree59c976204b8605cf304af02903cad5b749b79600 /src
parentb950aaa6f3452b2b5a14f6f01331f94e66ee3313 (diff)
parentd7fbb6d325796954c461fad71c15873d71d79fef (diff)
downloadbcfg2-748cf2497e2bb41d29d298a4ae08e6dfd5a05ca9.tar.gz
bcfg2-748cf2497e2bb41d29d298a4ae08e6dfd5a05ca9.tar.bz2
bcfg2-748cf2497e2bb41d29d298a4ae08e6dfd5a05ca9.zip
Merge pull request #68 from kincl/block-while-event-processing
Adding option to force server to wait until all FAM events are processed
Diffstat (limited to 'src')
-rw-r--r--src/lib/Bcfg2/Options.py5
-rw-r--r--src/lib/Bcfg2/Server/Core.py5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py
index 3197d2682..1519e2603 100644
--- a/src/lib/Bcfg2/Options.py
+++ b/src/lib/Bcfg2/Options.py
@@ -534,6 +534,11 @@ SERVER_FAM_IGNORE = \
'SCCS', '.svn', '4913', '.gitignore'],
cf=('server', 'ignore_files'),
cook=list_split)
+SERVER_FAM_BLOCK = \
+ Option('FAM blocks on startup until all events are processed',
+ default=False,
+ cook=get_bool,
+ cf=('server', 'fam_blocking'))
SERVER_LISTEN_ALL = \
Option('Listen on all interfaces',
default=False,
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 382f11e50..f2af2fa87 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -761,6 +761,11 @@ class BaseCore(object):
self.shutdown()
raise
+ if setup['fam_blocking']:
+ time.sleep(1)
+ while self.fam.pending() != 0:
+ time.sleep(1)
+
self.set_debug(None, self.debug_flag)
self._block()