- <h4>Convenience Calls</h4>
- <?python
- if len(pcuquery) == 0: pcu = None
- ?>
- <div py:if="pcu is not None" class="code">
- <span py:for="port,state in pcu.ports">
- <span class="code" py:if="port == 22 and state == 'open'">
- ssh -o PasswordAuthentication=yes -o PubkeyAuthentication=no
- ${pcu.plc_pcu_stats['username']}@${pcu_name(pcu.plc_pcu_stats)}
- </span>
- <span class="code" py:if="port == 23 and state == 'open'">
- telnet ${pcu_name(pcu.plc_pcu_stats)}
- </span>
- <span class="code" py:if="port == 80 and state == 'open'">
- <a href="http://${pcu_name(pcu.plc_pcu_stats)}">http://${pcu_name(pcu.plc_pcu_stats)}</a>
- </span>
- <span class="code" py:if="port == 443 and state == 'open'">
- <a href="https://${pcu_name(pcu.plc_pcu_stats)}">https://${pcu_name(pcu.plc_pcu_stats)}</a>
- <br/>
- /usr/share/monitor/racadm.py -r ${pcu.plc_pcu_stats['ip']}
- -u ${pcu.plc_pcu_stats['username']} -p '${pcu.plc_pcu_stats['password']}'
- <br/>
- /usr/share/monitor/pcucontrol/models/hpilo/locfg.pl
- -f /usr/share/monitor/pcucontrol/models/hpilo/iloxml/Reset_Server.xml
- -s ${pcu_name(pcu.plc_pcu_stats)}
- -u ${pcu.plc_pcu_stats['username']}
- -p '${pcu.plc_pcu_stats['password']} ' | grep MESSAGE"
- </span>
- <span class="code" py:if="port == 16992 and state == 'open'">
- /usr/share/monitor/pcucontrol/models/intelamt/remoteControl -A
- -verbose 'http://${pcu_name(pcu.plc_pcu_stats)}:16992/RemoteControlService'
- -user admin -pass '${pcu.plc_pcu_stats['password']}'
- </span>
- </span>
- </div>
- <h3>Controls</h3>
- <table id="sortable_table" class="datagrid" border="1" width="100%">
+ <div class="oneline" id="legend" py:if="len(pcuquery) == 0">
+ <em>There no PCUs associated with this host.</em>
+ </div>
+ <div class="oneline" id="legend" py:if="len(pcuquery) > 0">
+ <em>Legend: </em>
+ <a class="info" href="#">DNS Status<span>
+ <table border="1" align="center" width="100%">
+ <tr><th colspan="2">Legend for 'DNS Status'</th></tr>
+
+ <tr><td id="dns-DNS-OK">DNS-OK</td>
+ <td>This indicates that the DNS name and registered IP address match.</td>
+ </tr>
+ <tr><td id="dns-DNS-MISMATCH">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 id="dns-DNS-NOENTRY">DNS-NOENTRY</td>
+ <td>While a hostname is provided in the registration, the hostname is not actually registered in DNS.</td>
+ </tr>
+ <tr><td id="dns-NOHOSTNAME">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>
+ </span> </a>
+ <a class="info" href="#">Port Status<span>
+ <table border="1" align="center" width="100%">
+ <tr><th colspan="2">Legend for 'Port Status'</th></tr>
+
+ <tr><td id="portopen">Open</td>
+ <td>Green port numbers are believed to be open.</td>
+ </tr>
+ <tr><td id="portfiltered">Filtered</td>
+ <td>Gold port numbers are believed to be filtered or simply offline.</td>
+ </tr>
+ <tr><td id="portclosed">Closed</td>
+ <td>Finally, red ports appear to be closed.</td>
+ </tr>
+ </table>
+ </span> </a>
+ <a class="info" href="#">Test Results<span>
+ <table border="1" align="center" width="100%">
+ <tr><th colspan="2">Legend for 'Test Results'</th></tr>
+
+ <tr><td id="status-0">OK</td>
+ <td>The PCU is accessible, and short of actually rebooting the node, everything appears to work.</td>
+ </tr>
+ <tr><td id="status-NetDown">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 id="status-Not_Run">Not_Run</td>
+ <td>Previous errors, such as DNS or an incomplete configuration prevented the actual test from begin performed.</td>
+ </tr>
+ <tr><td id="status-error">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>
+ </span> </a>
+ </div>
+ <h3>Nodes</h3>
+ <p py:if="len(nodequery) == 0">
+ There are no registered nodes for this site.
+ </p>
+ <table py:if="len(nodequery) > 0" id="sortable_table" class="datagrid" border="1" width="100%">