mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1108.33.1 (4107e4f004yd2JnROkCCAkhrBNNhaw)
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:
commit
777879f45c
1 file changed
+65
-5
@@ -1,5 +1,10 @@
|
||||
from xen.sv.Wizard import *
|
||||
from xen.sv.util import *
|
||||
from xen.sv.GenTabbed import PreTab
|
||||
|
||||
from xen.xm.create import make_config
|
||||
|
||||
from xen.xend.XendClient import server
|
||||
|
||||
class CreateDomain( Wizard ):
|
||||
def __init__( self, urlWriter ):
|
||||
@@ -17,15 +22,17 @@ class CreatePage0( Sheet ):
|
||||
|
||||
def __init__( self, urlWriter ):
|
||||
Sheet.__init__( self, urlWriter, "General", 0 )
|
||||
self.addControl( InputControl( 'vm_name', 'VM Name', 'VM Name:' ) )
|
||||
self.addControl( InputControl( 'name', 'VM Name', 'VM Name:' ) )
|
||||
self.addControl( InputControl( 'memory', '64', 'Memory (Mb):' ) )
|
||||
self.addControl( InputControl( 'cpu', '0', 'CPU:' ) )
|
||||
|
||||
class CreatePage1( Sheet ):
|
||||
|
||||
def __init__( self, urlWriter ):
|
||||
Sheet.__init__( self, urlWriter, "Setup Kernel Image", 1 )
|
||||
self.addControl( InputControl( 'kernel_image', '/boot/vmlinuz-2.4.26-xenU', 'Kernel Image:' ) )
|
||||
self.addControl( InputControl( 'kernel_params', '', 'Kernel Command Line Parame:' ) )
|
||||
self.addControl( InputControl( 'builder', 'linux', 'Kernel Type:' ) )
|
||||
self.addControl( InputControl( 'kernel', '/boot/vmlinuz-2.4.26-xenU', 'Kernel Image:' ) )
|
||||
self.addControl( InputControl( 'extra', '', 'Kernel Command Line Parame:' ) )
|
||||
|
||||
class CreatePage2( Sheet ):
|
||||
|
||||
@@ -45,8 +52,9 @@ class CreatePage3( Sheet ):
|
||||
for i in range( int( num_vbds ) ):
|
||||
self.addControl( InputControl( 'vbd%s_dom0' % i, '/dev/sda%i' % i, 'Device %s name:' % i ) )
|
||||
self.addControl( InputControl( 'vbd%s_domU' % i, '/dev/sda%i' % i, 'Virtualized device %s:' % i ) )
|
||||
self.addControl( InputControl( 'vbd%s_mode' % i, 'w', 'Device %s mode:' % i ) )
|
||||
|
||||
self.addControl( InputControl( 'root_dev', '/dev/sda1', 'Root device (in VM):' ) )
|
||||
self.addControl( InputControl( 'root', '/dev/sda1', 'Root device (in VM):' ) )
|
||||
|
||||
Sheet.write_BODY( self, request )
|
||||
|
||||
@@ -65,6 +73,58 @@ class CreateFinish( Sheet ):
|
||||
Sheet.__init__( self, urlWriter, "All Done", 5 )
|
||||
|
||||
def write_BODY( self, request ):
|
||||
request.write( "<pre>%s</pre>" % sxp2prettystring( string2sxp( self.passback ) ) )
|
||||
fin_sxp = string2sxp( self.passback )
|
||||
|
||||
xend_sxp = self.translate_sxp( fin_sxp )
|
||||
|
||||
pt = PreTab( sxp2prettystring( xend_sxp ) )
|
||||
pt.write_BODY( request )
|
||||
|
||||
server.xend_domain_create( xend_sxp )
|
||||
|
||||
request.write( "<input type='hidden' name='passback' value=\"%s\"></p>" % self.passback )
|
||||
request.write( "<input type='hidden' name='sheet' value='%s'></p>" % self.location )
|
||||
|
||||
def translate_sxp( self, fin_sxp ):
|
||||
fin_hash = ssxp2hash( fin_sxp )
|
||||
|
||||
vals = OptVals()
|
||||
|
||||
setattr(vals, "name", fin_hash.get( 'name' ) )
|
||||
setattr(vals, "memory", fin_hash.get( 'memory' ) )
|
||||
setattr(vals, "cpu", fin_hash.get( 'cpu' ) )
|
||||
|
||||
setattr(vals, "builder", fin_hash.get( 'builder' ) )
|
||||
setattr(vals, "kernel", fin_hash.get( 'kernel' ) )
|
||||
setattr(vals, "root", fin_hash.get( 'root' ) )
|
||||
setattr(vals, "extra", fin_hash.get( 'extra' ) )
|
||||
|
||||
vbds = []
|
||||
|
||||
for i in range( int( fin_hash.get( 'num_vbds' ) ) ):
|
||||
vbds.append( ( fin_hash.get('vbd%s_domU' % i ), fin_hash.get( 'vbd%s_dom0' % i ), fin_hash.get( 'vbd%s_mode' % i ) ) )
|
||||
|
||||
vals.disk = vbds
|
||||
|
||||
vals.pci = []
|
||||
|
||||
vals.vif = []
|
||||
vals.nics = 1
|
||||
|
||||
vals.blkif = None
|
||||
vals.netif = None
|
||||
vals.restart = None
|
||||
vals.console = None
|
||||
vals.ramdisk = None
|
||||
|
||||
#todo: setup ip addr stuff
|
||||
|
||||
vals.cmdline_ip = None
|
||||
|
||||
return make_config( vals )
|
||||
|
||||
|
||||
class OptVals:
|
||||
"""Class to hold option values.
|
||||
"""
|
||||
pass
|
||||