diff --git a/tools/simulator.py b/tools/simulator.py index e77a75c78..872ac0edd 100755 --- a/tools/simulator.py +++ b/tools/simulator.py @@ -333,12 +333,15 @@ def main(): parser.add_argument('-d', '--debug', dest='debug', type=bool, default=False, help="Turn on DEBUG logging level instead of WARN") - parser.add_argument('-tp', '--topics', dest='topics', nargs="+", - default=["profiler_topic"], + parser.add_argument('-tp', '--topic', dest='topic', + default="profiler_topic", help="Topics to publish/receive messages to/from.") parser.add_argument('-s', '--server', dest='server', default="profiler_server", - help="Server to publish/receive messages to/from.") + help="Servers to publish/receive messages to/from.") + parser.add_argument('-tg', '--targets', dest='targets', nargs="+", + default=["profiler_topic.profiler_server"], + help="Targets to publish/receive messages to/from.") parser.add_argument('-l', dest='duration', type=int, help='send messages for certain time') parser.add_argument('--config-file', dest='config_file', type=str, @@ -407,10 +410,9 @@ def main(): cfg.CONF.project = 'oslo.messaging' if args.mode == 'rpc-server': - target = messaging.Target(topic=args.topics[0], server=args.server) + target = messaging.Target(topic=args.topic, server=args.server) if args.url.startswith('zmq'): cfg.CONF.rpc_zmq_matchmaker = "redis" - transport._driver.matchmaker._redis.flushdb() rpc_server(transport, target, args.wait_before_answer, args.executor, args.show_stats, args.duration) elif args.mode == 'notify-server': @@ -422,10 +424,10 @@ def main(): args.wait_after_msg, args.timeout) elif args.mode == 'rpc-client': init_msg(args.messages) - + targets = [target.partition('.')[::2] for target in args.targets] start = datetime.datetime.now() - targets = [messaging.Target(topic=topic, server=args.server) for topic - in args.topics] + targets = [messaging.Target(topic=topic, server=server_name) for topic, + server_name in targets] spawn_rpc_clients(args.threads, transport, targets, args.wait_after_msg, args.timeout, args.is_cast, args.messages, args.duration)