diff options
Diffstat (limited to 'tools/python/xen/xend/server/SrvNode.py')
-rw-r--r-- | tools/python/xen/xend/server/SrvNode.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/python/xen/xend/server/SrvNode.py b/tools/python/xen/xend/server/SrvNode.py new file mode 100644 index 0000000000..69747d80c1 --- /dev/null +++ b/tools/python/xen/xend/server/SrvNode.py @@ -0,0 +1,54 @@ +# Copyright (C) 2004 Mike Wray <mike.wray@hp.com> + +import os +from SrvDir import SrvDir +from xen.xend import sxp +from xen.xend import XendNode + +class SrvNode(SrvDir): + """Information about the node. + """ + + def __init__(self): + SrvDir.__init__(self) + self.xn = XendNode.instance() + + def op_shutdown(self, op, req): + val = self.xn.shutdown() + return val + + def op_reboot(self, op, req): + val = self.xn.reboot() + return val + + def op_cpu_rrobin_slice_set(self, op, req): + fn = FormFn(self.xn.cpu_rrobin_slice_set, + [['slice', 'int']]) + val = fn(req.args, {}) + return val + + def op_cpu_bvt_slice_set(self, op, req): + fn = FormFn(self.xn.cpu_bvt_slice_set, + [['slice', 'int']]) + val = fn(req.args, {}) + return val + + def render_POST(self, req): + return self.perform(req) + + def render_GET(self, req): + if self.use_sxp(req): + req.setHeader("Content-Type", sxp.mime_type) + sxp.show(['node'] + self.info(), out=req) + else: + req.write('<html><head></head><body>') + self.print_path(req) + req.write('<ul>') + for d in self.info(): + req.write('<li> %10s: %s' % (d[0], str(d[1]))) + req.write('</ul>') + req.write('</body></html>') + return '' + + def info(self): + return self.xn.info() |