X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Ftest-daemon.py;h=b759cf95503baf5883a3743d8ac3f8927dc24d2d;hb=c5cf10598f8c9f4428291e9df3ecd72a05fb1ccf;hp=98a51658088717b3931130b4f75bde9f190dc979;hpb=9c64f2384d850658985d7e18003443c196e89ae1;p=sliver-openvswitch.git diff --git a/tests/test-daemon.py b/tests/test-daemon.py index 98a516580..b759cf955 100644 --- a/tests/test-daemon.py +++ b/tests/test-daemon.py @@ -1,4 +1,4 @@ -# Copyright (c) 2010 Nicira Networks. +# Copyright (c) 2010, 2011 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,35 +12,35 @@ # See the License for the specific language governing permissions and # limitations under the License. -import getopt +import argparse +import logging +import signal import sys import time import ovs.daemon import ovs.util -def main(argv): - try: - options, args = getopt.gnu_getopt( - argv[1:], 'b', ["bail", "help"] + ovs.daemon.LONG_OPTIONS) - except getopt.GetoptError, geo: - sys.stderr.write("%s: %s\n" % (ovs.util.PROGRAM_NAME, geo.msg)) - sys.exit(1) - bail = False - for key, value in options: - if key == '--help': - usage() - elif key in ['-b', '--bail']: - bail = True - elif not ovs.daemon.parse_opt(key, value): - sys.stderr.write("%s: unhandled option %s\n" - % (ovs.util.PROGRAM_NAME, key)) - sys.exit(1) +def handler(signum, _): + raise Exception("Signal handler called with %d" % signum) + + +def main(): + + signal.signal(signal.SIGHUP, handler) + + parser = argparse.ArgumentParser( + description="Open vSwitch daemonization test program for Python.") + parser.add_argument("-b", "--bail", action="store_true", + help="Exit with an error after daemonize_start().") + + ovs.daemon.add_args(parser) + args = parser.parse_args() + ovs.daemon.handle_args(args) - ovs.daemon.die_if_already_running() ovs.daemon.daemonize_start() - if bail: + if args.bail: sys.stderr.write("%s: exiting after daemonize_start() as requested\n" % ovs.util.PROGRAM_NAME) sys.exit(1) @@ -49,18 +49,12 @@ def main(argv): while True: time.sleep(1) -def usage(): - sys.stdout.write("""\ -%s: Open vSwitch daemonization test program for Python -usage: %s [OPTIONS] -""" % ovs.util.PROGRAM_NAME) - ovs.daemon.usage() - sys.stdout.write(""" -Other options: - -h, --help display this help message - -b, --bail exit with an error after daemonize_start() -""") - sys.exit(0) if __name__ == '__main__': - main(sys.argv) + try: + main() + except SystemExit: + # Let system.exit() calls complete normally + raise + except: + sys.exit(ovs.daemon.RESTART_EXIT_CODE)