ia64/xen-unstable

view tools/python/xen/xend/server/SrvNode.py @ 13642:ba3ec84c9423

[XEND] Add missing ConsoleController.py

Signed-off-by: Alastair Tse <atse@xensource.com>
author Alastair Tse <atse@xensource.com>
date Fri Jan 26 02:44:35 2007 +0000 (2007-01-26)
parents 26b673aeff8b
children
line source
1 #============================================================================
2 # This library is free software; you can redistribute it and/or
3 # modify it under the terms of version 2.1 of the GNU Lesser General Public
4 # License as published by the Free Software Foundation.
5 #
6 # This library is distributed in the hope that it will be useful,
7 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9 # Lesser General Public License for more details.
10 #
11 # You should have received a copy of the GNU Lesser General Public
12 # License along with this library; if not, write to the Free Software
13 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14 #============================================================================
15 # Copyright (C) 2004, 2005 Mike Wray <mike.wray@hp.com>
16 #============================================================================
19 from xen.web.SrvDir import SrvDir
20 from xen.xend import sxp
21 from xen.xend import XendNode
22 from xen.xend.Args import FormFn
24 class SrvNode(SrvDir):
25 """Information about the node.
26 """
28 def __init__(self):
29 SrvDir.__init__(self)
30 self.xn = XendNode.instance()
31 self.add('dmesg', 'SrvDmesg')
32 self.add('log', 'SrvXendLog')
34 def op_shutdown(self, _1, _2):
35 val = self.xn.shutdown()
36 return val
38 def op_reboot(self, _1, _2):
39 val = self.xn.reboot()
40 return val
42 def render_POST(self, req):
43 return self.perform(req)
45 def render_GET(self, req):
46 if self.use_sxp(req):
47 req.setHeader("Content-Type", sxp.mime_type)
48 sxp.show(['node'] + self.info(), out=req)
49 else:
50 url = req.prePathURL()
51 if not url.endswith('/'):
52 url += '/'
53 req.write('<html><head></head><body>')
54 self.print_path(req)
55 req.write('<ul>')
56 for d in self.info():
57 req.write('<li> %10s: %s' % (d[0], str(d[1])))
58 req.write('<li><a href="%sdmesg">Xen dmesg output</a>' % url)
59 req.write('<li><a href="%slog">Xend log</a>' % url)
60 req.write('</ul>')
61 req.write('</body></html>')
63 def info(self):
64 return self.xn.info()