diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-06-27 08:19:09 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-06-27 08:19:09 -0400 |
commit | 317d3087459538877100032733477362f456f550 (patch) | |
tree | 27fabdff3649c75bcdd9de8ccde5c5826c679e5e /src/sbin/bcfg2-test | |
parent | 9d5e8170292e17d3b087878918562dcf502f70d4 (diff) | |
parent | a519dc9298317b678bca43597892df5aa13d874d (diff) | |
download | bcfg2-317d3087459538877100032733477362f456f550.tar.gz bcfg2-317d3087459538877100032733477362f456f550.tar.bz2 bcfg2-317d3087459538877100032733477362f456f550.zip |
Merge branch 'maint'
Conflicts:
doc/server/plugins/generators/cfg.txt
doc/server/plugins/generators/tcheetah.txt
src/lib/Bcfg2/Server/Admin/Xcmd.py
src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
Diffstat (limited to 'src/sbin/bcfg2-test')
-rwxr-xr-x | src/sbin/bcfg2-test | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/sbin/bcfg2-test b/src/sbin/bcfg2-test index 2065825ec..735a6c49c 100755 --- a/src/sbin/bcfg2-test +++ b/src/sbin/bcfg2-test @@ -5,6 +5,7 @@ without failures""" import os import sys +import signal import fnmatch import logging import Bcfg2.Logger @@ -191,9 +192,23 @@ def run_child(setup, clients, queue): core.shutdown() +def get_sigint_handler(core): + """ Get a function that handles SIGINT/Ctrl-C by shutting down the + core and exiting properly.""" + + def hdlr(sig, frame): # pylint: disable=W0613 + """ Handle SIGINT/Ctrl-C by shutting down the core and exiting + properly. """ + core.shutdown() + os._exit(1) # pylint: disable=W0212 + + return hdlr + + def parse_args(): """ Parse command line arguments. """ optinfo = dict(Bcfg2.Options.TEST_COMMON_OPTIONS) + optinfo.update(Bcfg2.Options.CLI_COMMON_OPTIONS) optinfo.update(Bcfg2.Options.SERVER_COMMON_OPTIONS) setup = Bcfg2.Options.load_option_parser(optinfo) @@ -247,6 +262,7 @@ def main(): setup = parse_args() logger = logging.getLogger(sys.argv[0]) core = get_core(setup) + signal.signal(signal.SIGINT, get_sigint_handler(core)) if setup['args']: clients = setup['args'] |