summaryrefslogtreecommitdiffstats
path: root/src/sbin/bcfg2-server
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-20 12:54:39 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-20 12:54:39 -0400
commitb5615eeb855d756be8aa3f1e995d9f0f3a6b410e (patch)
tree50b1dff85c37b9678a43b67c5d50ac84043ef9f9 /src/sbin/bcfg2-server
parent02a3da1e1233b3ebcc1e3aa97431c318c0b4ce3e (diff)
downloadbcfg2-b5615eeb855d756be8aa3f1e995d9f0f3a6b410e.tar.gz
bcfg2-b5615eeb855d756be8aa3f1e995d9f0f3a6b410e.tar.bz2
bcfg2-b5615eeb855d756be8aa3f1e995d9f0f3a6b410e.zip
added multiprocessing server core
Diffstat (limited to 'src/sbin/bcfg2-server')
-rwxr-xr-xsrc/sbin/bcfg2-server31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/sbin/bcfg2-server b/src/sbin/bcfg2-server
index cdca71e74..21f7842ec 100755
--- a/src/sbin/bcfg2-server
+++ b/src/sbin/bcfg2-server
@@ -24,18 +24,29 @@ def main():
print("Could not read %s" % setup['configfile'])
sys.exit(1)
- if setup['backend'] not in ['best', 'cherrypy', 'builtin']:
+ # TODO: normalize case of various core modules so we can add a new
+ # core without modifying this script
+ backends = dict(cherrypy='CherryPyCore',
+ builtin='BuiltinCore',
+ best='BuiltinCore',
+ multiprocessing='MultiprocessingCore')
+
+ if setup['backend'] not in backends:
print("Unknown server backend %s, using 'best'" % setup['backend'])
setup['backend'] = 'best'
- if setup['backend'] == 'cherrypy':
- try:
- from Bcfg2.Server.CherryPyCore import Core
- except ImportError:
- err = sys.exc_info()[1]
- print("Unable to import CherryPy server core: %s" % err)
- raise
- elif setup['backend'] == 'builtin' or setup['backend'] == 'best':
- from Bcfg2.Server.BuiltinCore import Core
+
+ coremodule = backends[setup['backend']]
+ try:
+ Core = getattr(__import__("Bcfg2.Server.%s" % coremodule).Server,
+ coremodule).Core
+ except ImportError:
+ err = sys.exc_info()[1]
+ print("Unable to import %s server core: %s" % (setup['backend'], err))
+ raise
+ except AttributeError:
+ err = sys.exc_info()[1]
+ print("Unable to load %s server core: %s" % (setup['backend'], err))
+ raise
try:
core = Core(setup)