<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?python
-layout_params['page_title'] = "Monitor Node List"
+layout_params['page_title'] = "MyOps Node List"
from monitor.util import diff_time
from time import mktime
from links import *
</script>
<center>
- <b py:content="'BOOT-PROD: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'boot'])"></b> |
- <b py:content="'BOOT-SAFEBOOT: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'safeboot'])"></b> |
- <b py:content="'BOOT-REINSTALL: %d' % len([node for node in query if node.plc_node_stats['boot_state'] == 'reinstall'])"></b><br/>
+ <!-- NOTE: agg.node is a FindbadNodeRecord not a HistoryNodeRecord, so there is not 'status' attribute -->
+ <!--b py:content="'UP: %d' % len([agg for agg in query if agg.node.status in ('online', 'good')])"></b> |
+ <b py:content="'DOWN: %d' % len([agg for agg in query if agg.node.status not in ('online', 'good')])"></b><br/-->
</center>
-<table id="nodelist" cellpadding="0" border="0" class="plekit_table sortable-onload-0 rowstyle-alt colstyle-alt no-arrow paginationcallback-nodelist_paginator max-pages-10 paginate-25">
+<table id="nodelist" cellpadding="0" border="0" class="plekit_table sortable-onload-2 colstyle-alt no-arrow paginationcallback-nodelist_paginator max-pages-10 paginate-999">
<thead>
- <tr class='pagesize_area'><td class='pagesize_area' colspan='8'>
+ <tr class='pagesize_area'><td class='pagesize_area' colspan='10'>
<form class='pagesize' action='satisfy_xhtml_validator'><fieldset>
<input class='pagesize_input' type='text' id="nodelist_pagesize" value='25'
onkeyup='plekit_pagesize_set("nodelist","nodelist_pagesize", 25);'
size='3' maxlength='3' />
<label class='pagesize_label'> items/page </label>
<img class='reset' src="/planetlab/icons/clear.png" alt="reset visible size"
- onmousedown='plekit_pagesize_reset("nodelist","nodelist_pagesize", 25);' />
+ onmousedown='plekit_pagesize_reset("nodelist","nodelist_pagesize", 999);' />
</fieldset></form></td></tr>
- <tr class='search_area'><td class='search_area' colspan='8'>
+ <tr class='search_area'><td class='search_area' colspan='10'>
<div class='search'><fieldset>
- <label class='search_label'> Search </label>
+ <label class='search_label'> Refine List</label>
<input class='search_input' type='text' id='nodelist_search'
onkeyup='plekit_table_filter("nodelist","nodelist_search","nodelist_search_and");'
size='self.search_width' maxlength='256' />
</fieldset></div></td></tr>
<tr>
- <th class="sortable plekit_table">Site</th>
- <th class="sortable plekit_table">Ping</th>
- <th class="sortable plekit_table">SSH</th>
- <th class="sortable plekit_table">Status</th>
- <th class="sortable plekit_table">pcu</th>
- <th class="sortable plekit_table">Hostname</th>
- <th class="sortable plekit_table">kernel</th>
- <th class="sortable plekit_table">last_contact</th>
+ ${nodewidget.display(node=None, header=True)}
</tr>
</thead>
<tbody>
- <tr py:for="i,node in enumerate(query)" class="${i%2 and 'odd' or 'even'}" >
+ <tr py:for="i,node in enumerate(query)">
${nodewidget.display(node=node, header=None)}
</tr>