summaryrefslogtreecommitdiffstats
path: root/overlord
diff options
context:
space:
mode:
authorRobin Norwood <rnorwood@redhat.com>2007-09-25 10:33:03 -0400
committerRobin Norwood <rnorwood@redhat.com>2007-09-25 10:33:03 -0400
commit5024f7f62ff32345660fae783ac7a97d506fe1da (patch)
treef27c302f2593ccd8517730a0d7d45e9832824b00 /overlord
parent7d543b6cf1d721c2e9f7ed88a230172870a9f558 (diff)
downloadthird_party-func-5024f7f62ff32345660fae783ac7a97d506fe1da.tar.gz
third_party-func-5024f7f62ff32345660fae783ac7a97d506fe1da.tar.xz
third_party-func-5024f7f62ff32345660fae783ac7a97d506fe1da.zip
Renamed server to minion and client to overlord
Diffstat (limited to 'overlord')
-rw-r--r--overlord/__init__.py0
-rwxr-xr-xoverlord/dumb_client.py50
-rw-r--r--overlord/test_func.py51
3 files changed, 101 insertions, 0 deletions
diff --git a/overlord/__init__.py b/overlord/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/overlord/__init__.py
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:])
+
diff --git a/overlord/test_func.py b/overlord/test_func.py
new file mode 100644
index 0000000..bcce45d
--- /dev/null
+++ b/overlord/test_func.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+
+
+# FIXME: should import the client lib, not XMLRPC lib, when we are done
+
+import xmlrpclib
+
+TEST_PROCESS = False
+TEST_VIRT = False
+TEST_SERVICES = False
+TEST_HARDWARE = False
+TEST_SMART = True
+
+# get a connecton (to be replaced by client lib logic)
+s = xmlrpclib.ServerProxy("http://127.0.0.1:51234")
+
+# here's the basic test...
+print s.test.add(1, 2)
+
+if TEST_SMART:
+ print s.smart.info()
+
+if TEST_PROCESS:
+ print s.process.info()
+ # print s.process.pkill("thunderbird")
+
+# here's the service module testing
+if TEST_SERVICES:
+ print s.service.restart("httpd")
+
+if TEST_HARDWARE:
+ print s.hardware.info()
+
+# this is so I can remember how the virt module works
+if TEST_VIRT:
+
+ # example of using koan to install a virtual machine
+ #s.virt_install("mdehaan.rdu.redhat.com","profileX")
+
+ # wait ...
+ vms = s.virt.list_vms()
+ # example of stopping all stopped virtual machines
+ print "list of virtual instances = %s" % vms
+ for vm in vms:
+ status = s.virt.status(vm)
+ print status
+ if status == "shutdown":
+ s.virt.start(vm)
+
+# add more tests here
+