aboutsummaryrefslogtreecommitdiffstats
path: root/tools/python/xen/xend/server/SrvConsole.py
blob: f147f2810ba7c30c1dc70766c4b9a008d8f88597 (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
# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>

from xen.xend import sxp
from xen.xend import XendConsole
from xen.web.SrvDir import SrvDir

class SrvConsole(SrvDir):
    """An individual console.
    """

    def __init__(self, info):
        SrvDir.__init__(self)
        self.info = info
        self.xc = XendConsole.instance()

    def op_disconnect(self, op, req):
        val = self.xc.console_disconnect(self.info.console_port)
        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(self.info.sxpr(), out=req)
        else:
            req.write('<html><head></head><body>')
            self.print_path(req)
            #self.ls()
            req.write('<p>%s</p>' % self.info)
            req.write('<p><a href="%s">Connect to domain %d</a></p>'
                      % (self.info.uri(), self.info.id))
            self.form(req)
            req.write('</body></html>')

    def form(self, req):
        req.write('<form method="post" action="%s">' % req.prePathURL())
        if self.info.connected():
            req.write('<input type="submit" name="op" value="disconnect">')
        req.write('</form>')