diff options
Diffstat (limited to 'overlord/dumb_client.py')
-rwxr-xr-x | overlord/dumb_client.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/overlord/dumb_client.py b/overlord/dumb_client.py new file mode 100755 index 0000000..c6a31ed --- /dev/null +++ b/overlord/dumb_client.py @@ -0,0 +1,50 @@ +#!/usr/bin/python + + +# all the cool kids would use optparse instead +import getopt +import sys +import xmlrpclib + +myname, argv = sys.argv[0], sys.argv[1:] + +def usage(): + return "Usage: %s [ --help ] [ --verbose ] [ --server=http://hostname:port ] method arg1 [ ... ]" % myname + +verbose = 0 +server = "http://127.0.0.1:51234" + +try: + opts, args = getopt.getopt(argv, "hvs:", + ["help", + "verbose", + "server="]) +except getopt.error, e: + print _("Error parsing list arguments: %s") % e + print usage() + sys.exit() + +for (opt, val) in opts: + print "opt = %s, val = %s" % (opt, val) + if opt in ["-h", "--help"]: + print usage() + sys.exit() + if opt in ["-v", "--verbose"]: + verbose = verbose + 1 + if opt in ["-s", "--server"]: + server = val + +if len(args) < 1: + print usage() + sys.exit() + +s = xmlrpclib.ServerProxy(server) + +method = args[0] +print "calling %s with args: %s" % (method, args[1:]) + +# thats some pretty code right there aint it? -akl +# we can't call "call" on s, since thats a rpc, so +# we call gettatr around it. +print getattr(s, method)(*args[1:]) + |