#!/usr/bin/env python
"""
    Author: John E. Vincent
	Email:	lusis.org+github.com@gmail.com
"""
import argparse

from vogeler.runner import VogelerRunner

if __name__ == '__main__':
    appdesc = 'Vogeler command runner'
    parser = argparse.ArgumentParser(description=appdesc)
    parser.add_argument('--command', '-c',
                help='Command to issue to clients',
                required=True)
    parser.add_argument('--node', '-n',
                help='Clients to get the command. Use "all" for broadcast',
                required=True)
    parser.add_argument('--qhost',
                help='Vogeler Queue Server',
                default='127.0.0.1',
                required=False)
    parser.add_argument('--quser',
                help='Vogeler Queue Server Username',
                default='guest',
                required=False)
    parser.add_argument('--qpass',
                help='Vogeler Queue Server Password',
                default='guest',
                required=False)

    args = parser.parse_args()

def run(pargs):
    command = pargs.command
    if pargs.node == 'all':
        routing_key = 'broadcasts.*'
    else:
        routing_key = pargs.node

    p = VogelerRunner(routing_key,
            host=pargs.qhost,
            username=pargs.quser,
            password=pargs.qpass)

    try:
        p.message(command)
        print "Sending %s to %s" % (pargs.command, pargs.node)
    except:
        raise

run(args)
# vim: set ts=4 et sw=4 sts=4 sta filetype=python :
