#from skeleton import skeleton #extends skeleton #import datetime #def title VM List #end def #def createForm() #if $cant_add_vm <p>$cant_add_vm</p> #else <h2>Create a new VM</h2> #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> #filter None $errorRow('create', $err) #end filter <tr> <td>Name</td> <td><input type="text" name="name" value="$defaults.name"/>.${config.dns.domains[0]}</td> </tr> #filter None $errorRow('name', $err) #end filter <tr> <td>Description</td> <td><textarea name="description" rows="4" cols="60">$defaults.description</textarea></td> </tr> #filter None $errorRow('description', $err) #end filter <tr> <td>Memory</td> <td><input type="text" name="memory" value="$defaults.memory" size=3/> MiB ($max_memory max)</td> </tr> #filter None $errorRow('memory', $err) #end filter <tr> <td>Disk</td> <td><input type="text" name="disksize" value="$defaults.disk" size=3/> GiB (${"%0.1f" % ($max_disk-0.05)} max)</td> </tr> #filter None $errorRow('disk', $err) #end filter <tr> <td>HVM/ParaVM#slurp #filter None $helppopup('HVM/ParaVM')#slurp #end filter </td> <td> #filter None $vmTypeList($defaults.type) #end filter </td> </tr> #filter None $errorRow('vmtype', $err) #end filter #filter None $errorRow('autoinstall', $err) #end filter <tr> <td>Autoinstall#slurp #filter None $helppopup('Autoinstall')#slurp #end filter </td> <td><input type="radio" name="cd_or_auto" id="cd_or_auto_auto"> #filter None $autoList($defaults.cdrom, "document.getElementById('cd_or_auto_auto').checked = true;document.getElementById('cdromlist').value = ''") (experimental; 1-2 minutes, and you have a machine with empty root password.) #end filter </input> </tr> <tr> <td>Boot CD</td> <td><input type="radio" name="cd_or_auto" id="cd_or_auto_cd" checked> #filter None $cdromList($defaults.cdrom, "document.getElementById('cd_or_auto_cd').checked = true;document.getElementById('autoinstalllist').value = ''") #end filter </td> </input> </tr> $errorRow('cdrom', $err) $errorRow('cdrom', $err) <tr> <td>Owner</td> <td><input type="text" name="owner" value="$defaults.owner"/></td> </tr> #filter None $errorRow('owner', $err) #end filter </table> <input type="submit" class="button" value="Create it!"/><br /> Windows notes: #slurp #filter None $helppopup('Windows')#slurp #end filter </form> #end if #end def #def machineRow($machine) <tr> <td rowspan="2"> <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="power #slurp #if $machine.uptime then 'on' else 'off' " name="action" value="#slurp #if $machine.uptime then 'Power off' else 'Power on' "/> </form> </td> <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 ${datetime.timedelta(seconds=int(machine.uptime))}#slurp #end if </td> <td>#slurp #if $has_vnc[$machine] == True <a href="vnc?machine_id=$machine.machine_id">Console</a>#slurp #else if $has_vnc[$machine] != 'Off' #filter None $has_vnc[$machine] #end filter #end if </td> </tr> <tr> <td colspan="7" style="padding-left: 1em; color: #666">$machine.description</td> </tr> #end def #def machineList($machines) <table cellspacing="0" cellpadding="2"> <tr> <th></th> <th>Name</th> <th>Memory</th> <th>Owner#slurp #filter None $helppopup('Owner')#slurp #end filter </th> <th>Administrator#slurp #filter None $helppopup('Administrator')#slurp #end filter </th> <th>IP</th> <th>Uptime</th> <th>VNC</th> </tr> #for $machine in $machines: #filter None $machineRow($machine) #end filter #end for </table> <script type="text/javascript" src="/static/stripe.js"></script> <script type="text/javascript"> document.observe("dom:loaded", function() { stripe(\$('machinelist').getElementsByTagName('table')[0], 'stripedrow'); }); </script> #end def #def body <p style="font-size: 125%;">SIPB Virtual Servers is an <strong>alpha service</strong>. <a href="/static/about.html">What does this mean?</a></p> #if not $machines <p>You don't currently control any VMs.</p> #end if <p><a href="list">refresh</a></p> <div id="machinelist"> #filter None $machineList($machines) #end filter </div> #filter None $createForm() #end filter #end def