X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=tests%2Ftest-daemon.py;h=63c1f708d83fd2869234585af8eb450322683945;hb=600766e877efa2713b9c87d127f7190d8ab48da9;hp=3c757f30861330bd049cff7f044b5bcbb924cb6b;hpb=991559357f6a03c3a5b70c053c8c2554aa8d5ee4;p=cascardo%2Fovs.git diff --git a/tests/test-daemon.py b/tests/test-daemon.py index 3c757f308..63c1f708d 100644 --- a/tests/test-daemon.py +++ b/tests/test-daemon.py @@ -1,46 +1,45 @@ -# 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. # You may obtain a copy of the License at: -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import getopt +import argparse +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 +48,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)