summaryrefslogtreecommitdiffstats
path: root/src/sbin/bcfg2-server
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-21 10:20:19 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-21 10:20:19 -0400
commitfdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c (patch)
tree5bed1930ce1edac533317749daba26680934f640 /src/sbin/bcfg2-server
parent29f98cdba4d7babc9fa8c0d479059060edc9aa2b (diff)
parent1690cf04ca2b63f8312670dc6f9067fae5c8cd73 (diff)
downloadbcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.tar.gz
bcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.tar.bz2
bcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.zip
Merge branch 'maint'
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 33ee327fc..95413d6cf 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()