-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathkatcp_start.py
More file actions
executable file
·85 lines (68 loc) · 2.28 KB
/
katcp_start.py
File metadata and controls
executable file
·85 lines (68 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env python
from argparse import (
ArgumentParser,
ArgumentDefaultsHelpFormatter)
import logging
import signal
import sys
import tornado
from meerkat_backend_interface.katcp_server import BLBackendInterface
from meerkat_backend_interface.logger import set_logger
def cli(prog=sys.argv[0]):
usage = "{} [options]".format(prog)
description = 'start BLUSE KATCP server'
parser = ArgumentParser(usage=usage,
description=description,
formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument(
'--ip',
type=str,
default="localhost",
help='fixed IP of localhost system')
parser.add_argument(
'-p', '--port',
type=int,
default=5000,
help='port number to bind to')
parser.add_argument(
'--nodeset',
dest='nodeset',
type=str,
default="effelsberg",
help='name of the nodeset to use')
# Options for development and testing
title = "development and testing"
description = "additional convenience settings"
group = parser.add_argument_group(title=title,
description=description)
group.add_argument(
'--debug',
action='store_true',
help='verbose logger output for debugging')
args = parser.parse_args()
main(ip=args.ip, port=args.port, debug=args.debug)
@tornado.gen.coroutine
def on_shutdown(ioloop, server, log):
log.info("Shutting down server")
yield server.stop()
ioloop.stop()
def main(ip, port, debug):
if debug:
# note: debug logging will only go to logfile
log_level = logging.DEBUG
else:
log_level = logging.INFO
log = set_logger(log_level=log_level)
log.info("Starting BLBackendInterface instance")
ioloop = tornado.ioloop.IOLoop.current()
server = BLBackendInterface(ip, port)
signal.signal(signal.SIGINT,
lambda sig, frame: ioloop.add_callback_from_signal(
on_shutdown, ioloop, server, log))
def start():
server.start()
log.info("Listening at {0}, Ctrl-C to terminate server".format(server.bind_address))
ioloop.add_callback(start)
ioloop.start()
if __name__ == "__main__":
cli()