From 4e92a9128b5f1224a53989b38a3acdb3ae01e2e4 Mon Sep 17 00:00:00 2001 From: David Shrewsbury Date: Tue, 25 Sep 2012 16:05:36 -0400 Subject: [PATCH] Worker now supports multiple servers specified in config file. --- libra/worker/worker.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libra/worker/worker.py b/libra/worker/worker.py index f2c3b305..71ed3cce 100644 --- a/libra/worker/worker.py +++ b/libra/worker/worker.py @@ -163,6 +163,17 @@ def main(): logger = setup_logging('libra_worker', args) + if not args.server: + # NOTE(shrews): Can't set a default in argparse method because the + # value is appended to the specified default. + args.server.append('localhost:4730') + elif not isinstance(args.server, list): + # NOTE(shrews): The Options object cannot intelligently handle + # creating a list from an option that may have multiple values. + # We convert it to the expected type here. + svr_list = args.server.split() + args.server = svr_list + # Import the device driver we are going to use. This will be sent # along to the Gearman task that will use it to communicate with # the device. @@ -171,9 +182,6 @@ def main(): driver_class = import_class(known_drivers[args.driver]) driver = driver_class() - if not args.server: - args.server.append('localhost:4730') - logger.debug("Job server list: %s" % args.server) server = Server(args.server, args.reconnect_sleep) server.logger = logger