#from skeleton import skeleton
#extends skeleton


#def title
List of your VMs
#end def

#def createTable()
#if $cant_add_vm
<p>$cant_add_vm</p>
#else
<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>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>
	</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>
	<td>$machine.owner</td>
	<td>$machine.administrator</td>
#if $machine.nics
#set $nic = $machine.nics[0]
	<td>$nic.ip</td>
#else
	<td></td>
#end if
<td>#slurp
#if $machine.uptime
$machine.uptime#slurp
#else
Off#slurp
#end if
</td>
	<td>#slurp
#if $has_vnc[$machine] == True
<a href="vnc?machine_id=$machine.machine_id">Console</a>#slurp
#else
$has_vnc[$machine]
#end if
</td>
	<td>
	  <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" 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>Administrator</td>
	<td>IP</td>
	<td>Uptime</td>
	<td>VNC</td>
	<td></td>
      #for $machine in $machines:
	$machineRow($machine)
      #end for
    </table>
#end def


#def body
<p style="font-size: 125%;"><strong>Note:</strong> sipb-xen is a very alpha service. <a href="/static/about.html">What does this mean?</a></p>
#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