#from skeleton import skeleton
#extends skeleton
+
#def title
List of your VMs
#end def
-#def body
-#if not $machines
-
+#def createTable()
+#if $cant_add_vm
+<p>$cant_add_vm</p>
#else
- <p>You have the following VMs:</p>
- <table>
- <tr>
- <td>Name</td>
- <td>Memory</td>
- <td>owner</td>
- <td>IP</td>
- <td>MAC Address</td>
- <td>Hostname</td>
- <td>Uptime</td>
- <td>VNC</td>
- <td>Restart?</td>
- #for $machine in $machines:
+<p>Create a new VM:</p>
+#if $err
+<p class="error">We had a problem with your request:</p>
+#else if $varExists('new_machine')
+<p>Congratulations! You successfully created a new VM called $new_machine.</p>
+#end if
+ <form action="create" method="POST">
+ <input type="hidden" name="back" value="list"/>
+ <table>
+ $errorRow('create', $err)
+ <tr>
+ <td>Name</td>
+ <td><input type="text" name="name" value="$defaults.name"/></td>
+ </tr>
+$errorRow('name', $err)
+ <tr>
+ <td>Memory</td>
+ <td><input type="text" name="memory" value="$defaults.memory" size=3/> MiB ($max_memory max)</td>
+ </tr>
+$errorRow('memory', $err)
+ <tr>
+ <td>Disk</td>
+ <td><input type="text" name="disk" value="$defaults.disk" size=3/> GiB (${"%0.1f" % ($max_disk-0.05)} max)</td>
+ </tr>
+$errorRow('disk', $err)
+ <tr>
+ <td>HVM/ParaVM$helppopup('hvm_paravm')</td>
+ <td>
+#for $value, $name in (('hvm', 'HVM'), ('paravm', 'ParaVM'))
+ <input #slurp
+#if $defaults.vmtype == $value then 'checked' else ''
+ type="radio" name="vmtype" value="$value">$name</input>
+#end for
+ </td>
+ </tr>
+$errorRow('vmtype', $err)
+ <tr>
+ <td>Boot CD</td>
+ <td>$cdromList($cdroms, $defaults.cdrom)</td>
+ </tr>
+$errorRow('cdrom', $err)
+ <tr>
+ <td>Owner</td>
+ <td><input type="text" name="owner" value="$defaults.owner"/></td>
+ </tr>
+ $errorRow('owner', $err)
+ </table>
+ <input type="submit" class="button" value="Create it!"/>
+ </form>
+#end if
+#end def
+
+#def machineRow($machine)
<tr>
<td><a href="info?machine_id=$machine.machine_id">$machine.name</a></td>
<td>${machine.memory}M</td>
#if $machine.nics
#set $nic = $machine.nics[0]
<td>$nic.ip</td>
- <td>$nic.mac_addr</td>
- <td>$nic.hostname</td>
#else
<td></td>
- <td></td>
- <td></td>
#end if
<td>#slurp
-#if $uptimes.get($machine.name)
-$uptimes[$machine.name]#slurp
+#if $machine.uptime
+$machine.uptime#slurp
#else
Off#slurp
#end if
</td>
<td>#slurp
-#if $has_vnc.get($machine.name)
+#if $has_vnc[$machine] == True
<a href="vnc?machine_id=$machine.machine_id">Console</a>#slurp
#else
-off#slurp
+$has_vnc[$machine]
#end if
</td>
<td>
- <form action="command">
+ <form action="command" method="post">
+ <input type="hidden" name="back" value="list"/>
<input type="hidden" name="machine_id"
value="$machine.machine_id"/>
- <input type="submit" class="button"
- value="Reboot"/>
+<input type="submit" class="button" name="action" value="#slurp
+#if $machine.uptime then 'Power off' else 'Power on'
+"/>
</form>
</td>
</tr>
+#end def
+
+#def machineList($machines)
+ <table>
+ <tr>
+ <td>Name</td>
+ <td>Memory</td>
+ <td>Owner</td>
+ <td>IP</td>
+ <td>Uptime</td>
+ <td>VNC</td>
+ <td></td>
+ #for $machine in $machines:
+ $machineRow($machine)
#end for
</table>
-#end if
+#end def
- <p>Create a new VM:</p>
- <form action="create" method="POST">
- <table>
- <tr>
- <td>Name</td>
- <td>${user.username}_<input type="text" name="name" value=""/></td>
- </tr>
- <tr>
- <td>Memory</td>
- <td><input type="text" name="memory" value="$maxmem" size=3/> megabytes ($maxmem max)</td>
- </tr>
- <tr>
- <td>Disk</td>
- <td><input type="text" name="disk" value="$maxdisk" size=3/> gigabytes ($maxdisk max)</td>
- </tr>
- <tr>
- <td>HVM/ParaVM</td>
- <td>
- <input checked type="radio" name="vmtype" value="hvm">HVM</input>
- <input type="radio" name="vmtype" value="paravm">ParaVM</input>
- </td>
- </tr>
- <tr>
- <td>Boot CD</td>
- <td>
- <select name="cdrom">
- <option selected value="">None</option>
- #for $cdrom in $cdroms
- <option value="$cdrom.cdrom_id">
- $cdrom.description
- </option>
- #end for
- </select>
- </td>
- </tr>
- </table>
- <input type="submit" class="button" value="Create it!"/>
- </form>
+#def body
+#if not $machines
+<p>You don't currently control any VMs.</p>
+#else
+ <p>You have the following VMs:</p>
+#end if
+ <p><a href="list">refresh</a></p>
+ <div id="machinelist">
+ $machineList($machines)
+ </div>
+<div id="createtable">
+$createTable()
+</div>
#end def