diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-05-21 10:20:19 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-05-21 10:20:19 -0400 |
commit | fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c (patch) | |
tree | 5bed1930ce1edac533317749daba26680934f640 /src/sbin | |
parent | 29f98cdba4d7babc9fa8c0d479059060edc9aa2b (diff) | |
parent | 1690cf04ca2b63f8312670dc6f9067fae5c8cd73 (diff) | |
download | bcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.tar.gz bcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.tar.bz2 bcfg2-fdeba3b8f2cea7ecb2200cab42ce28fd1e1e6a5c.zip |
Merge branch 'maint'
Diffstat (limited to 'src/sbin')
-rwxr-xr-x | src/sbin/bcfg2-server | 31 |
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() |