bitkeeper revision 1.1108.20.1 (41052ec5K2iTlC9jFZbnC6x-10TOpQ)

Merge labyrinth.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk
into labyrinth.cl.cam.ac.uk:/local/scratch/tw275/xeno.bk
This commit is contained in:
tw275@labyrinth.cl.cam.ac.uk committed 2004-07-26 16:18:13 +00:00
commit c81440d016
12 files changed
+161 -57

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
from xen.sv.Wizzard import Wizzard, Sheet
class CreateDomain( Wizzard ):
def __init__( self, urlWriter ):
sheets = { 0: CreatePage0,
1: CreatePage1,
2: CreatePage2,
3: CreatePage3 }
Wizzard.__init__( self, urlWriter, "Create Domain Wizzard", sheets )
class CreatePage0( Sheet ):
def __init__( self, urlWriter ):
feilds = [( 'name', 'Name')]
Sheet.__init__( self, urlWriter, feilds, "Create New Domain - 1" )
class CreatePage1( Sheet ):
def __init__( self, urlWriter ):
feilds = [( 'name', 'Name')]
Sheet.__init__( self, urlWriter, feilds, "Create New Domain - 2" )
class CreatePage2( Sheet ):
def __init__( self, urlWriter ):
feilds = [( 'name', 'Name')]
Sheet.__init__( self, urlWriter, feilds, "Create New Domain - 3" )
class CreatePage3( Sheet ):
def __init__( self, urlWriter ):
feilds = [( 'name', 'Name')]
Sheet.__init__( self, urlWriter, feilds, "Create New Domain - 4" )
+7 -11
View File
@@ -12,7 +12,7 @@ class DomInfo( GenTabbed ):
self.dom = 0;
def tabUrlWriter( tab ):
return urlWriter( "mod=info&dom=%s%s" % ( self.dom, tab ) )
return urlWriter( "&dom=%s%s" % ( self.dom, tab ) )
GenTabbed.__init__( self, "Domain Info", tabUrlWriter, [ 'General', 'SXP', 'Devices' ], [ DomGeneralTab, DomSXPTab, NullTab ] )
@@ -52,13 +52,11 @@ class DomGenTab( GeneralTab ):
def write_BODY( self, request ):
dom = request.args.get('dom')
self.dom = getVar('dom', request)
if dom is None or len(dom) != 1:
if self.dom is None:
request.write( "<p>Please Select a Domain</p>" )
return None
else:
self.dom = dom[0]
self.dict = getDomInfoHash( self.dom )
@@ -72,17 +70,15 @@ class DomSXPTab( PreTab ):
def write_BODY( self, request ):
dom = request.args.get('dom')
self.dom = getVar('dom', request)
if dom is None or len(dom) != 1:
if self.dom is None:
request.write( "<p>Please Select a Domain</p>" )
return None
else:
self.dom = dom[0]
domInfo = server.xend_domain( self.dom )
self.source = sxp2string( domInfo )
self.source = sxp2prettystring( domInfo )
PreTab.write_BODY( self, request )
+1 -1
View File
@@ -43,7 +43,7 @@ class DomList( HTMLBase ):
def write_DOMAIN( self, request, domInfoHash, long=True ):
request.write( "<td class='domainInfo' align='center'>%(dom)-4d</td>\n" % domInfoHash )
url = self.urlWriter( "mod=info&dom=%(dom)-4d" % domInfoHash )
url = self.urlWriter( "&mod=info&dom=%(dom)-4d" % domInfoHash )
request.write( "<td class='domainInfo' align='center'><a href='%s'>%s</a></td>\n" % ( url, domInfoHash['name'] ) )
if long:
+7 -16
View File
@@ -2,35 +2,31 @@ import types
from xen.sv.HTMLBase import HTMLBase
from xen.sv.TabView import TabView
from xen.sv.util import getVar
class GenTabbed( HTMLBase ):
def __init__( self, title, urlWriter, tabStrings, tabObjects ):
HTMLBase.__init__(self)
self.tab = 0;
self.tabStrings = tabStrings
self.tabObjects = tabObjects
self.urlWriter = urlWriter
self.title = title
def write_BODY( self, request, urlWriter = None ):
tab = request.args.get('tab')
if tab is None or len( tab) != 1:
self.tab = 0
else:
self.tab = int( tab[0] )
tab = int( getVar( 'tab', request, 0 ) )
request.write( "<table style='' width='100%' border='0' cellspacing='0' cellpadding='0'>" )
request.write( "<tr><td>" )
request.write( "<p align='center'><u>%s</u></p>" % self.title )
TabView( self.tab, self.tabStrings, self.urlWriter ).write_BODY( request )
TabView( tab, self.tabStrings, self.urlWriter ).write_BODY( request )
request.write( "</td></tr><tr><td>" )
render_tab = self.tabObjects[ self.tab ]
render_tab = self.tabObjects[ tab ]
if render_tab is None:
request.write( "<p>Bad Tab</p>" )
@@ -41,14 +37,9 @@ class GenTabbed( HTMLBase ):
request.write( "</td></tr></table>" )
def perform( self, request ):
tab = request.args.get('tab')
if tab is None or len( tab) != 1:
self.tab = 0
else:
self.tab = int( tab[0] )
tab = int( getVar( 'tab', request, 0 ) )
op_tab = self.tabObjects[ self.tab ]
op_tab = self.tabObjects[ tab ]
if op_tab:
op_tab().perform( request )
+23 -19
View File
@@ -2,35 +2,40 @@ from xen.sv.HTMLBase import HTMLBase
from xen.sv.DomList import DomList
from xen.sv.NodeInfo import NodeInfo
from xen.sv.DomInfo import DomInfo
from xen.sv.CreateDomain import CreateDomain
from xen.sv.util import getVar
class Main( HTMLBase ):
isLeaf = True
def __init__( self, urlWriter = None ):
self.modules = { "node": ( "Node details", NodeInfo ),
"list": ( "Domain summary", DomList ),
"info": ( "Domain info", DomInfo ) }
self.modules = { "node": NodeInfo,
"list": DomList,
"info": DomInfo,
"create": CreateDomain }
HTMLBase.__init__(self)
def render_POST( self, request ):
#decide what module post'd the action
mod = request.args.get('mod')
mod = getVar( 'mod', request )
if not mod is None and len(mod) == 1:
modTup = self.modules[ mod[0] ]
if not mod is None:
module = self.modules[ mod ]
#check module exists
if modTup:
(modName, module) = modTup
if module:
module( self.mainUrlWriter ).perform( request )
return self.render_GET( request )
def mainUrlWriter( self, s ):
return "Main.rpy?%s" % s
def mainUrlWriter( self, module ):
def fun( f ):
return "Main.rpy?mod=%s%s" % ( module, f )
return fun
def write_BODY( self, request ):
request.write( "\n<table style='border:0px solid black; background: url(images/orb_01.jpg) no-repeat' cellspacing='0' cellpadding='0' border='0' width='780px' height='536px'>\n" )
@@ -43,8 +48,8 @@ class Main( HTMLBase ):
request.write( " <tr><td height='60px' align='center'><p class='small'>SV Web Interface<br/>(C) <a href='mailto:tw275@cam.ac.uk'>Tom Wilkie</a> 2004</p></td></tr>")
request.write( " <tr><td align='center' valign='top'>" )
for (modName, (modTitle, module)) in self.modules.items():
module( self.mainUrlWriter ).write_MENU( request )
for (modName, module) in self.modules.items():
module( self.mainUrlWriter( modName ) ).write_MENU( request )
request.write( " </td></tr>" )
request.write( " </table>" )
@@ -56,15 +61,14 @@ class Main( HTMLBase ):
request.write( " <tr><td height='20px'></td></tr>" )
request.write( " <tr><td align='center' valign='top'>" )
mod = request.args.get('mod')
modName = getVar('mod', request)
if mod is None or len(mod) != 1:
if modName is None:
request.write( '<p>Please select a module</p>' )
else:
modTup = self.modules[ mod[0] ]
if modTup:
(modName, module) = modTup
module( self.mainUrlWriter ).write_BODY( request )
module = self.modules[ modName ]
if module:
module( self.mainUrlWriter( modName ) ).write_BODY( request )
else:
request.write( '<p>Invalid module. Please select another</p>' )
+1 -4
View File
@@ -7,10 +7,7 @@ class NodeInfo( GenTabbed ):
def __init__( self, urlWriter ):
def newUrlWriter( url ):
return urlWriter( "mod=node%s" % url )
GenTabbed.__init__( self, "Node Details", newUrlWriter, [ 'General', 'Dmesg', ], [ NodeGeneralTab, NodeDmesgTab ] )
GenTabbed.__init__( self, "Node Details", urlWriter, [ 'General', 'Dmesg', ], [ NodeGeneralTab, NodeDmesgTab ] )
def write_MENU( self, request ):
request.write( "<p class='small'><a href='%s'>Node details</a></p>" % self.urlWriter( '' ) )
+66
View File
@@ -0,0 +1,66 @@
from xen.sv.util import *
from xen.sv.HTMLBase import HTMLBase
from xen.xend import sxp
class Wizzard( HTMLBase ):
def __init__( self, urlWriter, title, sheets ):
HTMLBase.__init__( self )
self.title = title
self.sheets = sheets
self.currSheet = 0
self.urlWriter = urlWriter
def write_MENU( self, request ):
request.write( "<p class='small'><a href='%s'>%s</a></p>" % (self.urlWriter( '' ), self.title) )
def write_BODY( self, request ):
request.write( "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td>" )
request.write( "<p align='center'><u>%s</u></p></td></tr><tr><td>" % self.title )
currSheet = getVar( 'sheet', request )
if not currSheet is None:
self.currSheet = int( currSheet )
self.sheets[ self.currSheet ]( self.urlWriter ).write_BODY( request )
request.write( "</td></tr><tr><td><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>" )
request.write( "<td width='80%'></td><td width='20%' align='center'>" )
request.write( "<p align='center'><img src='images/previous.png' onclick='doOp( \"prev\" )' onmouseover='update( \"wizText\", \"Previous\" )' onmouseout='update( \"wizText\", \"&nbsp;\" )'>&nbsp;" )
request.write( "<img src='images/next.png' onclick='doOp( \"next\" )' onmouseover='update( \"wizText\", \"Next\" )' onmouseout='update( \"wizText\", \"&nbsp;\" )'></p>" )
request.write( "<p align='center'><span id='wizText'></span></p></td></tr></table>" )
request.write( "</td></tr></table>" )
class Sheet( HTMLBase ):
def __init__( self, urlWriter, feilds, title ):
HTMLBase.__init__( self )
self.urlWriter = urlWriter
self.feilds = feilds
self.title = title
def parseForm( self, request ):
return sxp.toString( request.args )
def write_BODY( self, request ):
request.write( "<p>%s</p>" % self.title )
previous_values = request.args
for (feild, name) in self.feilds:
value = sxp.child_value( previous_values, feild )
if value is None:
value = ''
request.write( "<p>%s<input type='text' name='%s' value='%s'></p>" % (name, feild, value) )
def op_next( self, request ):
pass
def op_prev( self, request ):
pass
+6 -6
View File
@@ -18,9 +18,9 @@ def sxp2hash( s ):
else:
sxphash[ child[0] ] = child[1]
return sxphash
return sxphash
def sxp2string( sxp ):
def sxp2prettystring( sxp ):
class tmp:
def __init__( self ):
self.str = ""
@@ -30,14 +30,14 @@ def sxp2string( sxp ):
PrettyPrint.prettyprint( sxp, out=temp )
return temp.str
def getVar( var, request ):
def getVar( var, request, default=None ):
arg = request.args.get( var )
if arg is None or len(arg) != 1:
return None
if arg is None:
return default
else:
return arg[0]
return arg[ len( arg )-1 ]
def bigTimeFormatter( time ):
time = float( time )
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.