aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xen/lib/xend/server/SrvNode.py
blob: 69747d80c133723952e817ed790d094a167b81cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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()