Example #1
0
def validate(options):
    if not options.address:
        print 'Address must be specified'
        parser.print_help()
        sys.exit(1)
    if not options.target:
        print 'Target must be specified'
        parser.print_help()
        sys.exit(1)
    if '.' not in options.target:
        print 'Target must be: <class>.<method>'
        parser.print_help()
        sys.exit(1)
    if options.ttl:
        try:
            int(options.ttl)
        except ValueError:
            print 'TTL must be <int>'
            parser.print_help()
            sys.exit(1)
    if options.wait:
        try:
            int(options.wait)
        except ValueError:
            print 'Wait must be <int>'
            parser.print_help()
            sys.exit(1)
    if options.data:
        try:
            json.loads(options.data)
        except ValueError:
            print 'data must be valid json'
            parser.print_help()
            sys.exit(1)
    if options.input:
        try:
            document = json.loads(options.input)
            if not isinstance(document, list):
                raise ValueError()
            if len(document) != 2:
                raise ValueError()
            if not isinstance(document[0], list):
                raise ValueError()
            if not isinstance(document[1], dict):
                raise ValueError()
        except ValueError, e:
            print utf8(e)
            print 'Input must be valid json: [[], {}]'
            parser.print_help()
            sys.exit(1)
Example #2
0
def validate(options):
    if not options.address:
        print 'Address must be specified'
        parser.print_help()
        sys.exit(1)
    if not options.target:
        print 'Target must be specified'
        parser.print_help()
        sys.exit(1)
    if '.' not in options.target:
        print 'Target must be: <class>.<method>'
        parser.print_help()
        sys.exit(1)
    if options.ttl:
        try:
            int(options.ttl)
        except ValueError:
            print 'TTL must be <int>'
            parser.print_help()
            sys.exit(1)
    if options.wait:
        try:
            int(options.wait)
        except ValueError:
            print 'Wait must be <int>'
            parser.print_help()
            sys.exit(1)
    if options.data:
        try:
            json.loads(options.data)
        except ValueError:
            print 'data must be valid json'
            parser.print_help()
            sys.exit(1)
    if options.input:
        try:
            document = json.loads(options.input)
            if not isinstance(document, list):
                raise ValueError()
            if len(document) != 2:
                raise ValueError()
            if not isinstance(document[0], list):
                raise ValueError()
            if not isinstance(document[1], dict):
                raise ValueError()
        except ValueError, e:
            print utf8(e)
            print 'Input must be valid json: [[], {}]'
            parser.print_help()
            sys.exit(1)
Example #3
0
def main():
    g_opt = {}
    options, arguments, keywords = get_options()
    basicConfig(level=CRITICAL)
    validate(options)

    if options.ttl:
        g_opt['ttl'] = int(options.ttl)
    if options.wait:
        g_opt['wait'] = int(options.wait)
    if options.progress:

        def print_report(report):
            print ''.join((options.progress, str(report['details'])))

        g_opt['progress'] = print_report
    if options.data:
        g_opt['data'] = json.loads(options.data)
    if options.secret:
        g_opt['secret'] = options.secret
    if options.authenticator:
        parts = options.authenticator.split('.')
        path = '.'.join(parts[:-1])
        name = parts[-1]
        mod = __import__(path, {}, {}, [name])
        g_opt['authenticator'] = getattr(mod, name)()
    if options.user:
        g_opt['user'] = options.user
    if options.password:
        g_opt['password'] = options.password
    if options.reply:
        g_opt['reply'] = options.reply
    if options.input:
        document = json.loads(options.input)
        arguments = tuple(document[0])
        keywords = document[1]

    with Connection(options.url, retry=False):
        agent = Agent(options.url, options.address, **g_opt)
        target = options.target.split('.', 1)
        stub = getattr(agent, target[0])
        method = getattr(stub, target[1])
        retval = method(*arguments, **keywords)
        print retval
Example #4
0
def main():
    g_opt = {}
    options, arguments, keywords = get_options()
    basicConfig(level=CRITICAL)
    validate(options)

    if options.ttl:
        g_opt['ttl'] = int(options.ttl)
    if options.wait:
        g_opt['wait'] = int(options.wait)
    if options.progress:
        def print_report(report):
            print ''.join((options.progress, str(report['details'])))
        g_opt['progress'] = print_report
    if options.data:
        g_opt['data'] = json.loads(options.data)
    if options.secret:
        g_opt['secret'] = options.secret
    if options.authenticator:
        parts = options.authenticator.split('.')
        path = '.'.join(parts[:-1])
        name = parts[-1]
        mod = __import__(path, {}, {}, [name])
        g_opt['authenticator'] = getattr(mod, name)()
    if options.user:
        g_opt['user'] = options.user
    if options.password:
        g_opt['password'] = options.password
    if options.reply:
        g_opt['reply'] = options.reply
    if options.input:
        document = json.loads(options.input)
        arguments = tuple(document[0])
        keywords = document[1]

    with Connection(options.url, retry=False):
        agent = Agent(options.url, options.address, **g_opt)
        target = options.target.split('.', 1)
        stub = getattr(agent, target[0])
        method = getattr(stub, target[1])
        retval = method(*arguments, **keywords)
        print retval