support for multiple secop servers

- server port can be given as cmd line argument
- multiple cfg files may be merged on one server

needed for the way how frappy is planned to be used at PSI

+ add --test option in bin/secop-server

Change-Id: I1e77f65891b15a70b191cbac8168e69715ace3dc
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22947
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
2020-04-14 08:38:53 +02:00
parent f3ecd912da
commit bd56481276
2 changed files with 123 additions and 72 deletions

View File

@ -46,14 +46,31 @@ def parseArgv(argv):
action='store_true', default=False)
parser.add_argument("name",
type=str,
help="Name of the instance.\n"
" Uses etc/name.cfg for configuration\n",)
help="Name of the instance.\n",)
parser.add_argument('-d',
'--daemonize',
action='store_true',
help='Run as daemon',
default=False)
return parser.parse_args()
parser.add_argument('-p',
'--port',
action='store',
help='server port or uri',
default=None)
parser.add_argument('-c',
'--cfgfiles',
action='store',
help="comma separated list of cfg files\n"
"defaults to <name_of_the_instance>\n"
"cfgfiles given without '.cfg' extension are searched in the configuration directory,"
"else they are treated as path names",
default=None)
parser.add_argument('-t',
'--test',
action='store_true',
help='Check cfg files only',
default=False)
return parser.parse_args(argv)
def main(argv=None):
@ -65,7 +82,7 @@ def main(argv=None):
loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info')
mlzlog.initLogging('secop', loglevel, getGeneralConfig()['logdir'])
srv = Server(args.name, mlzlog.log)
srv = Server(args.name, mlzlog.log, cfgfiles=args.cfgfiles, interface=args.port, testonly=args.test)
if args.daemonize:
srv.start()