summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-05 08:00:20 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-05 08:00:20 -0400
commit98fa4b4978ebd63b4a108cb7d366f11edd60d6a2 (patch)
tree5f3505fa0cd86d035a6875564a2270330c8431df
parent864dd26107e6ab8dcd78096b66883d6ab0e5fdde (diff)
downloadbcfg2-98fa4b4978ebd63b4a108cb7d366f11edd60d6a2.tar.gz
bcfg2-98fa4b4978ebd63b4a108cb7d366f11edd60d6a2.tar.bz2
bcfg2-98fa4b4978ebd63b4a108cb7d366f11edd60d6a2.zip
updated various scripts/components to reflect updated Core invocation for thread-safety
-rw-r--r--src/lib/Bcfg2/Server/BuiltinCore.py4
-rw-r--r--src/lib/Bcfg2/Server/Core.py10
-rwxr-xr-xsrc/sbin/bcfg2-info21
-rwxr-xr-xsrc/sbin/bcfg2-server2
-rwxr-xr-xtools/bcfg2-profile-templates.py5
5 files changed, 12 insertions, 30 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py
index df25a24a8..4e15f85d4 100644
--- a/src/lib/Bcfg2/Server/BuiltinCore.py
+++ b/src/lib/Bcfg2/Server/BuiltinCore.py
@@ -19,8 +19,8 @@ class NoExposedMethod (Exception):
class Core(BaseCore):
name = 'bcfg2-server'
- def __init__(self, setup, start_fam_thread=False):
- BaseCore.__init__(self, setup, start_fam_thread=start_fam_thread)
+ def __init__(self, setup):
+ BaseCore.__init__(self, setup)
self.server = None
self.context = daemon.DaemonContext()
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 8b9cd4916..13be70731 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -73,7 +73,7 @@ class BaseCore(object):
Bcfg2 Server logic and modules.
"""
- def __init__(self, setup, start_fam_thread=False):
+ def __init__(self, setup):
self.datastore = setup['repo']
if setup['debug']:
@@ -192,7 +192,6 @@ class BaseCore(object):
threading.Thread(name="%sFAMThread" % setup['filemonitor'],
target=self._file_monitor_thread)
self.lock = threading.Lock()
- self.start_fam_thread = start_fam_thread
self.stats = Statistics()
@@ -458,11 +457,10 @@ class BaseCore(object):
open(self.setup['daemon'], "w").write("%s\n" % os.getpid())
self._run()
-
+
self.fam.start()
- if self.start_fam_thread:
- self.fam_thread.start()
- self.fam.AddMonitor(self.cfile, self.setup)
+ self.fam_thread.start()
+ self.fam.AddMonitor(self.cfile, self.setup)
self._block()
diff --git a/src/sbin/bcfg2-info b/src/sbin/bcfg2-info
index 9fb183776..f188131f0 100755
--- a/src/sbin/bcfg2-info
+++ b/src/sbin/bcfg2-info
@@ -170,17 +170,9 @@ def load_interpreters():
class infoCore(cmd.Cmd, Bcfg2.Server.Core.BaseCore):
"""Main class for bcfg2-info."""
- def __init__(self, repo, plgs, passwd, encoding, event_debug,
- filemonitor='default', setup=None):
+ def __init__(self, setup):
cmd.Cmd.__init__(self)
- try:
- Bcfg2.Server.Core.BaseCore.__init__(self, setup=setup)
- if event_debug:
- self.fam.debug = True
- except Bcfg2.Server.Core.CoreInitError:
- msg = sys.exc_info()[1]
- print("Core load failed: %s" % msg)
- raise SystemExit(1)
+ Bcfg2.Server.Core.BaseCore.__init__(self, setup=setup)
self.prompt = '> '
self.cont = True
self.fam.handle_events_in_interval(4)
@@ -694,16 +686,11 @@ if __name__ == '__main__':
sys.exit(0)
elif setup['profile'] and have_profile:
prof = profile.Profile()
- loop = prof.runcall(infoCore, setup['repo'], setup['plugins'],
- setup['password'], setup['encoding'],
- setup['debug'], setup['filemonitor'],
- setup)
+ loop = prof.runcall(infoCore, setup)
displayTrace(prof)
else:
if setup['profile']:
print("Profiling functionality not available.")
- loop = infoCore(setup['repo'], setup['plugins'], setup['password'],
- setup['encoding'], setup['debug'],
- setup['filemonitor'], setup)
+ loop = infoCore(setup)
loop.Run(setup['args'])
diff --git a/src/sbin/bcfg2-server b/src/sbin/bcfg2-server
index 32c97b63d..fe16866cf 100755
--- a/src/sbin/bcfg2-server
+++ b/src/sbin/bcfg2-server
@@ -37,7 +37,7 @@ if __name__ == '__main__':
from Bcfg2.Server.BuiltinCore import Core
try:
- core = Core(setup, start_fam_thread=True)
+ core = Core(setup)
core.run()
except CoreInitError:
msg = sys.exc_info()[1]
diff --git a/tools/bcfg2-profile-templates.py b/tools/bcfg2-profile-templates.py
index d60d7584a..fe7146d27 100755
--- a/tools/bcfg2-profile-templates.py
+++ b/tools/bcfg2-profile-templates.py
@@ -54,10 +54,7 @@ def main():
setup.parse(sys.argv[1:])
logger = get_logger(setup)
- core = Bcfg2.Server.Core.Core(setup['repo'],
- setup['plugins'],
- setup['password'],
- setup['encoding'])
+ core = Bcfg2.Server.Core.BaseCore(setup)
logger.info("Bcfg2 server core loaded")
core.fam.handle_events_in_interval(4)
logger.debug("Repository events processed")