uid();
$isadmin = ISADMIN();
#
# Verify page arguments.
#
$reqargs = RequiredPageArguments("node", PAGEARG_NODE);
# Need these below
$node_id = $node->node_id();
echo "".
"Node $node_id";
#
# Admin users can look at any node, but normal users can only control
# nodes in their own experiments.
#
if (! $isadmin &&
! $node->AccessCheck($this_user, $TB_NODEACCESS_MODIFYINFO)) {
$power_id = "";
$query_result = DBQueryFatal("select power_id from outlets ".
"where node_id='$node_id'");
if (mysql_num_rows($query_result) > 0) {
$row = mysql_fetch_array($query_result);
$power_id = $row["power_id"];
}
if (STUDLY() && ($power_id == "mail")) {
SUBPAGESTART();
SUBMENUSTART("Node Options");
WRITESUBMENUBUTTON("Update Power State",
"powertime.php3?node_id=$node_id");
SUBMENUEND();
$node->Show(SHOWNODE_NOPERM);
SUBPAGEEND();
}
else {
$node->Show(SHOWNODE_NOPERM);
}
PAGEFOOTER();
return;
}
# If reserved, more menu options.
if (($experiment = $node->Reservation())) {
$pid = $experiment->pid();
$eid = $experiment->eid();
$vname = $node->VirtName();
}
if ($experiment && $vname != "") {
echo " (".
" $vname.".
" $eid.".
" $pid.".
" $OURDOMAIN".
" )";
}
echo "
\n";
SUBPAGESTART();
SUBMENUSTART("Node Options");
#
# Tip to node option
#
if ($node->HasSerialConsole()) {
WRITESUBMENUBUTTON("Connect to Serial Line " .
"(howto)",
"nodetipacl.php3?node_id=$node_id");
WRITESUBMENUBUTTON("Show Console Log",
"showconlog.php3?node_id=$node_id&linecount=500");
}
#
# SSH to option.
#
if ($experiment) {
WRITESUBMENUBUTTON("SSH to node ".
"".
"(howto)", "nodessh.php3?node_id=$node_id");
}
#
# Edit option
#
WRITESUBMENUBUTTON("Edit Node Info",
"nodecontrol_form.php3?node_id=$node_id");
if ($isadmin ||
$node->AccessCheck($this_user, $TB_NODEACCESS_REBOOT)) {
if ($experiment) {
WRITESUBMENUBUTTON("Update Node",
"updateaccounts.php3?pid=$pid&eid=$eid".
"&nodeid=$node_id");
}
WRITESUBMENUBUTTON("Reboot Node",
"boot.php3?node_id=$node_id");
WRITESUBMENUBUTTON("Show Boot Log",
"bootlog.php3?node_id=$node_id");
}
if ($node->AccessCheck($this_user, $TB_NODEACCESS_LOADIMAGE)) {
WRITESUBMENUBUTTON("Create a Disk Image",
"newimageid_ez.php3?formfields[node_id]=$node_id");
}
if (($isadmin ||
$node->AccessCheck($this_user, $TB_NODEACCESS_READINFO)) &&
($node->TypeClass() == "robot")) {
WRITESUBMENUBUTTON("Show Telemetry",
"telemetry.php3?node_id=$node_id",
"telemetry");
}
if ($isadmin || OPSGUY()) {
WRITESUBMENUBUTTON("Show Node Log",
"shownodelog.php3?node_id=$node_id");
WRITESUBMENUBUTTON("Show Node History",
"shownodehistory.php3?node_id=$node_id");
}
if ($experiment && ($isadmin || (OPSGUY()) && $pid == $TBOPSPID)) {
WRITESUBMENUBUTTON("Free Node",
"freenode.php3?node_id=$node_id");
}
if ($isadmin || STUDLY() || OPSGUY()) {
WRITESUBMENUBUTTON("Set Node Location",
"setnodeloc.php3?node_id=$node_id");
WRITESUBMENUBUTTON("Update Power State",
"powertime.php3?node_id=$node_id");
}
if ($isadmin || STUDLY() || OPSGUY()) {
WRITESUBMENUBUTTON("Modify Node Attributes",
"modnodeattributes_form.php3?node_id=$node_id");
}
if ($isadmin) {
if (!$node->reserved_pid()) {
WRITESUBMENUBUTTON("Pre-Reserve Node",
"prereserve_node.php3?node_id=$node_id");
}
else {
WRITESUBMENUBUTTON("Clear Pre-Reserve",
"prereserve_node.php3?node_id=$node_id&clear=1");
}
}
SUBMENUEND();
#
# Dump record.
#
$node->Show(SHOWNODE_NOFLAGS);
SUBPAGEEND();
#
# Standard Testbed Footer
#
PAGEFOOTER();
?>