<?php
+function plc_site_link($site_name)
+{
+ return "https://www.planet-lab.org/db/sites/index.php?site_pattern=" . $site_name;
+}
function pcu_link($pcu)
{
return "https://www.planet-lab.org/db/sites/pcu.php?id=" . $pcu['pcu_id'];
}
+function pcu_site($pcu)
+{
+ if ( array_key_exists('plcsite', $pcu) ):
+ return $pcu['plcsite']['login_base'];
+ else:
+ return "none";
+ endif;
+}
+
function pcu_name($pcu)
{
if ( $pcu['hostname'] != NULL and $pcu['hostname'] != "" ):
$portstat = $pcu['portstatus'];
#foreach ( array('22', '23', '80', '443') $portstat as $port => $state)
- foreach ( array('22', '23', '80', '443') as $port)
+ foreach ( array('22', '23', '80', '443', '9100', '16992') as $port)
{
$state = $portstat[$port];
switch ($state)
}
return 'white';
}
+function reboot_to_str($reboot)
+{
+ $ret = $reboot;
+ switch ($reboot)
+ {
+ case "0":
+ $ret = "OK";
+ break;
+ default:
+ break;
+ }
+ return $ret;
+}
function reboot_to_color($reboot)
{
return "<a href='printbadpcus.php?category=$category'>$header</a>";
}
-include 'soltesz.php';
+include 'database.php';
$p = new Pickle();
$findbad = $p->load("findbadpcus");
$findbadpcus = array_keys($findbad['nodes']);
$total = count($pculist);
-## Sort the pculist
-
-#$pcu_ids = array_map('get_pcuid', $pculist);
-#array_multisort($pcu_ids, SORT_ASC, SORT_NUMERIC, $pculist);
-#$dns_ids = array_map('get_dns', $pculist);
-#array_multisort($dns_ids, SORT_ASC, SORT_STRING, $pculist);
-
-#$dry_ids = array_map('get_dryrun', $pculist);
-#array_multisort($dry_ids, SORT_ASC, SORT_STRING, $pculist);
if ( $_GET['category'] )
{
$category = $_GET['category'];
if ( $category == "node_ids" )
{
$newfunc = create_function('$pcu', 'return count($pcu[\'' . $category . '\']);');
+ } else if ( $category == "login_base" )
+ {
+ $newfunc = create_function('$pcu', 'return $pcu[\'plcsite\'][\'' . $category . '\'];');
} else {
$newfunc = create_function('$pcu', 'return $pcu[\'' . $category . '\'];');
}
}
}
-if ( $_GET['auth'] )
+if ( $_REQUEST['id'] )
{
- $auth = True;
-} else {
- $auth = False;
+ $id = $_REQUEST['id'];
+} else{
+ $id = "all";
}
-
+#print print_r($_SERVER) . "<BR>";
//array_multisort($protocols, SORT_ASC, SORT_STRING, $pculist);
?>
<html>
<body>
-Total PCUs : <?= $total ?>
-<table border=1>
- <tr>
- <th>Count</th>
- <th><?= get_category_link("pcu_id", "PCU ID") ?></th>
- <th><?= get_category_link("hostname", "Hostname") ?></th>
- <th><?= get_category_link("complete_entry", "Incomplete Fields") ?></th>
- <th><?= get_category_link("dnsmatch", "DNS Status") ?></th>
- <th><?= get_category_link("portstatus", "Port Status") ?></th>
- <th><?= get_category_link("reboot", "Dry Run Results") ?></th>
- <th><?= get_category_link("model", "Model") ?></th>
- <th><?= get_category_link("node_ids", "Nodes") ?></th>
- <?php if ( $auth ): ?>
- <th>Username</th>
- <th>Password</th>
- <th>Notes</th>
- <?php endif; ?>
+<?php if ( $id == "all" ): ?>
+ Total PCUs : <?= $total ?>
+ <table border=1>
+ <tr>
+ <th>Count</th>
+ <th><?= get_category_link("pcu_id", "PCU ID") ?></th>
+ <th><?= get_category_link("login_base", "Site") ?></th>
+ <th><?= get_category_link("hostname", "PCU Name") ?></th>
+ <th><?= get_category_link("complete_entry", "Incomplete Fields") ?></th>
+ <th><?= get_category_link("dnsmatch", "DNS Status") ?></th>
+ <th><?= get_category_link("portstatus", "Port Status") ?></th>
+ <th><?= get_category_link("reboot", "Test Results") ?></th>
+ <th><?= get_category_link("model", "Model") ?></th>
+ <th><?= get_category_link("node_ids", "Nodes") ?></th>
+ </tr>
+ <?php $count = 0; ?>
+ <?php $reachable_nodes = 0; ?>
+ <?php foreach ( $pculist as $pcu ): ?>
+ <tr>
+ <td><?= $count ?></td>
+ <td id='id<?= $pcu['pcu_id'] ?>'><a href='<?= pcu_link($pcu) ?>'><?= $pcu['pcu_id'] ?></a></td>
+ <td><a href='<?= plc_site_link(pcu_site($pcu)) ?>'><?= pcu_site($pcu) ?></a></td>
+ <td><?= pcu_name($pcu) ?></td>
+ <td><?= pcu_entry($pcu) ?></td>
+ <td bgcolor='<?= DNS_to_color($pcu['dnsmatch']) ?>'><?= $pcu['dnsmatch'] ?></td>
+ <td><?= format_ports($pcu) ?></td>
+ <td bgcolor='<?= reboot_to_color($pcu['reboot']) ?>'><?= reboot_to_str($pcu['reboot']) ?></td>
+ <td nowrap><?= $pcu['model'] ?></td>
+ <td><?= count( $pcu['node_ids'] ) ?></td>
+ </tr>
+
+ <?php if ( $pcu['reboot'] == "0" ) $reachable_nodes+=count($pcu['node_ids']); ?>
+ <?php $count += 1; ?>
+ <?php endforeach; ?>
+ </table>
+ <b>Reachable Nodes:</b> <?= $reachable_nodes ?>
+<?php else: ?>
+ <table align=center border=1>
+ <tr>
+ <th><?= get_category_link("pcu_id", "PCU ID") ?></th>
+ <th><?= get_category_link("login_base", "Site") ?></th>
+ <th><?= get_category_link("hostname", "PCU Name") ?></th>
+ <th><?= get_category_link("complete_entry", "Incomplete Fields") ?></th>
+ <th><?= get_category_link("dnsmatch", "DNS Status") ?></th>
+ <th><?= get_category_link("portstatus", "Port Status") ?></th>
+ <th><?= get_category_link("reboot", "Test Results") ?></th>
+ <th><?= get_category_link("model", "Model") ?></th>
+ <th><?= get_category_link("node_ids", "Nodes") ?></th>
+ </tr>
+ <?php $count = 0; ?>
+ <?php $reachable_nodes = 0; ?>
+ <?php foreach ( $pculist as $pcu ): ?>
+ <?php if ( $pcu['pcu_id'] == $id ): ?>
+ <tr>
+ <td id='id<?= $pcu['pcu_id'] ?>'><a href='<?= pcu_link($pcu) ?>'><?= $pcu['pcu_id'] ?></a></td>
+ <td><a href='<?= plc_site_link(pcu_site($pcu)) ?>'><?= pcu_site($pcu) ?></a></td>
+ <td><?= pcu_name($pcu) ?></td>
+ <td><?= pcu_entry($pcu) ?></td>
+ <td bgcolor='<?= DNS_to_color($pcu['dnsmatch']) ?>'><?= $pcu['dnsmatch'] ?></td>
+ <td><?= format_ports($pcu) ?></td>
+ <td bgcolor='<?= reboot_to_color($pcu['reboot']) ?>'><?= reboot_to_str($pcu['reboot']) ?></td>
+ <td nowrap><?= $pcu['model'] ?></td>
+ <td><?= count( $pcu['node_ids'] ) ?></td>
+ </tr>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ </table>
+ <br>
+ <table border=1 align=center>
+ <tr><th colspan=2>Legend for 'DNS Status'</th></tr>
+
+ <tr><td bgcolor=lightgreen>DNS-OK</td>
+ <td>This indicates that the DNS name and registered IP address match.</td>
</tr>
-<?php $count = 0; ?>
-<?php foreach ( $pculist as $pcu ): ?>
- <tr>
- <td><?= $count ?></td>
- <td id='id<?= $pcu['pcu_id'] ?>'><a href='<?= pcu_link($pcu) ?>'><?= $pcu['pcu_id'] ?></a></td>
- <td><?= pcu_name($pcu) ?></td>
- <td><?= pcu_entry($pcu) ?></td>
- <td bgcolor='<?= DNS_to_color($pcu['dnsmatch']) ?>'><?= $pcu['dnsmatch'] ?></td>
- <td><?= format_ports($pcu) ?></td>
- <td bgcolor='<?= reboot_to_color($pcu['reboot']) ?>'><?= $pcu['reboot'] ?></td>
- <td nowrap><?= $pcu['model'] ?></td>
- <td><?= count( $pcu['node_ids'] ) ?></td>
- <?php if ( $auth ): ?>
- <td><?= ( $pcu['username'] ? $pcu['username'] : " " ) ?></td>
- <td><?= $pcu['password'] ?></td>
- <td><?= $pcu['notes'] ?></td>
- <?php endif; ?>
+ <tr><td bgcolor=lightgrey>DNS-MISMATCH</td>
+ <td>Sometimes, the registered IP and DNS IP address do not match. In these cases it is not clear which is correct,
+ so an error is flagged.</td>
+ </tr>
+ <tr><td bgcolor=lightgrey>DNS-NOENTRY</td>
+ <td>While a hostname is provided in the registration, the hostname is not actually registered in DNS.</td>
+ </tr>
+ <tr><td bgcolor=white>NOHOSTNAME</td>
+ <td>While we prefer that a hostname be registered, it is not
+ strictly required, since simply the IP address, if it is static, is enough to access the PCU.</td>
+ </tr>
+ <!--/table>
+ <table border=1-->
+ <tr><th colspan=2>Legend for 'Port Status'</th></tr>
+
+ <tr><td bgcolor=lightgreen>Open</td>
+ <td>Green port numbers are believed to be open.</td>
</tr>
-<?php $count += 1; ?>
-<?php endforeach; ?>
-</table>
+ <tr><td bgcolor=gold>Filtered</td>
+ <td>Gold port numbers are believed to be filtered or simply offline.</td>
+ </tr>
+ <tr><td bgcolor=indianred>Closed</td>
+ <td>Finally, red ports appear to be closed.</td>
+ </tr>
+ <!--/table>
+ <table border=1-->
+ <tr><th colspan=2>Legend for 'Test Results'</th></tr>
+
+ <tr><td bgcolor=darkseagreen>OK</td>
+ <td>The PCU is accessible, and short of actually rebooting the node, everything appears to work.</td>
+ </tr>
+ <tr><td bgcolor=lightgrey>NetDown</td>
+ <td>The PCU is inaccessible from the PlanetLab address block 128.112.139.0/25, or it is simply offline.</td>
+ </tr>
+ <tr><td bgcolor=lightgrey>Not_Run</td>
+ <td>Previous errors, such as DNS or an incomplete configuration prevented the actual test from begin performed.</td>
+ </tr>
+ <tr><td bgcolor=indianred>Other Errors</td>
+ <td>Other errors are reported by the test that are more specific to the block encountered by the script.</td>
+ </tr>
+ </table>
+<?php endif; ?>
+
</body>
</html>