Support autoinstalls table for creation list.
authorEric Price <ecprice@mit.edu>
Tue, 22 Apr 2008 02:50:54 +0000 (22:50 -0400)
committerEric Price <ecprice@mit.edu>
Tue, 22 Apr 2008 02:50:54 +0000 (22:50 -0400)
svn path=/trunk/packages/sipb-xen-www/; revision=443

code/main.py
code/templates/functions.tmpl
code/templates/info.tmpl
code/templates/list.tmpl

index f1ff5ac..3fe04d5 100755 (executable)
@@ -37,7 +37,7 @@ sys.path.append('/home/ecprice/.local/lib/python2.5/site-packages')
 import templates
 from Cheetah.Template import Template
 import sipb_xen_database
-from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type
+from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall
 import validation
 from webcommon import InvalidInput, CodeError, g
 import controls
@@ -98,6 +98,7 @@ class Defaults:
     memory = 256
     disk = 4.0
     cdrom = ''
+    autoinstall = ''
     name = ''
     def __init__(self, max_memory=None, max_disk=None, **kws):
         self.type = Type.get('linux-hvm')
@@ -221,8 +222,7 @@ def getListDict(user):
              defaults=defaults,
              machines=machines,
              has_vnc=has_vnc,
-             uptimes=g.uptimes,
-             cdroms=CDROM.select())
+             uptimes=g.uptimes)
     return d
 
 def listVms(user, fields):
@@ -571,7 +571,6 @@ def infoDict(user, machine):
     defaults.disk = "%0.2f" % (machine.disks[0].size/1024.)
     checkpoint.checkpoint('Got defaults')
     d = dict(user=user,
-             cdroms=CDROM.select(),
              on=status is not None,
              machine=machine,
              defaults=defaults,
index a746145..0854e6f 100644 (file)
@@ -1,18 +1,33 @@
-#def cdromList($cdroms, $default="")
-<select name="cdrom" id="cdromlist">
+#def databaseList($lst, $default, $onchange, $name, $id, $valueattr, $descattr)
+<select name="$name" id="$id"#slurp
+#if $onchange is not None
+onchange="$onchange"#slurp
+#end if
+>
   <option #slurp
 #if $default then '' else 'selected'
  value="">None</option>
-  #for $cdrom in $cdroms
+  #for $item in $lst
   <option #slurp
-#if $default == $cdrom.cdrom_id then 'selected' else ''
- value="$cdrom.cdrom_id">
-    $cdrom.description
+#if $default == getattr(item, valueattr) then 'selected' else ''
+ value="${getattr(item, valueattr)}">
+    ${getattr(item, descattr)}
   </option>
   #end for
 </select>
 #end def
 
+#def cdromList($default="", $onchange=None)
+$databaseList(sorted($sipb_xen_database.CDROM.select(), key=lambda x: x.description),
+              default, onchange, 'cdrom', 'cdromlist', 'cdrom_id', 'description')
+#end def
+
+#def autoList($default="", $onchange=None)
+$databaseList(sorted($sipb_xen_database.Autoinstall.select(), key=lambda x: x.description),
+              default, onchange, 'autoinstall', 'autoinstalllist', 'autoinstall_id', 'description')
+## $databaseList(autos, default, onchange, 'autoinstall', 'autoinstalllist', 'autoinstall_id', 'description')
+#end def
+
 #def vmTypeList($default=None)
 #for $vmtype in sorted($sipb_xen_database.Type.select(), key=lambda x: x.description)
 <label>
index 743034f..fa815ca 100644 (file)
@@ -40,7 +40,7 @@ Info on $machine.name
        <td><input type="submit" class="button" name="action" value="Power on"/></td>
        #end if
       <td>Boot CD:</td>
-      <td>$cdromList($cdroms)</td>
+      <td>$cdromList()</td>
   </tr>
     <tr>
       <td><input type="submit" class="button" name="action" value="Delete VM" onclick="return confirm('Are you sure that you want to delete this VM?');"/></td>
index 5c0bc74..71f36ea 100644 (file)
@@ -41,17 +41,18 @@ $errorRow('disk', $err)
         </tr>
 $errorRow('vmtype', $err)
        <tr>
-         <td>Boot CD</td>
-         <td>$cdromList($cdroms, $defaults.cdrom)</td>
+         <td>Autoinstall$helppopup('autoinstall')</td>
+         <td><input type="radio" name="cd_or_auto" id="cd_or_auto_auto">$autoList($defaults.cdrom, "document.getElementById('cd_or_auto_auto').checked = true;document.getElementById('cdromlist').value = ''")
+             (experimental; 1-2 minutes, and you have a machine; root pw is 'password'.)
+         </input>
        </tr>
-$errorRow('cdrom', $err)
        <tr>
-         <td>Clone image?</td>
-         <td><input type="checkbox" name="clone_from" id="clone_from" value="ice3" onchange="onclone(event)"/>
-             (experimental; 1-2 minutes, and you have an etch machine; root pw is 'password'.)
-             <script type='text/javascript'>function onclone(e){ document.getElementById('cdromlist').value = ''; }</script></td>
+         <td>Boot CD</td>
+         <td><input type="radio" name="cd_or_auto" id="cd_or_auto_cd" checked>$cdromList($defaults.cdrom, "document.getElementById('cd_or_auto_cd').checked = true;document.getElementById('autoinstalllist').value = ''")</td>
+         </input>
        </tr>
 $errorRow('cdrom', $err)
+$errorRow('cdrom', $err)
        <tr>
          <td>Owner</td>
          <td><input type="text" name="owner" value="$defaults.owner"/></td>