require_once 'toggle.php';
require_once 'plc_objects.php';
-// --------------------
+// --------------------
// recognized URL arguments
$node_id=intval(get_array($_GET, 'id'));
if ( ! $node_id ) { plc_error('Malformed URL - id not set'); return; }
if( !empty( $site_node_ids ) ) {
// get site node info basics
$site_nodes= $api->GetNodes( $site_node_ids );
-
+
foreach( $site_nodes as $site_node ) {
$site_node_hash[$site_node['node_id']]= $site_node['hostname'];
}
}
-
+
// gets slice info for each slice
if( !empty( $slice_ids ) )
$slices= $api->GetSlices( $slice_ids, array( "slice_id", "name" , "peer_id" ) );
$nodegroups= $api->GetNodeGroups( $nodegroup_ids, array("groupname","tag_type_id","value"));
// Thierry : remaining stuff
-// (*) events: xxx todo xxx for admins xxx
+// (*) events: xxx todo xxx for admins xxx
// should display the latest events relating to that node.
// historically we had to turn this off at some point as GetEvents was getting the session deleted in the DB
// (*) conf_files: xxx todo xxx for admins xxx
drupal_set_title("Details for node " . $hostname);
$local_peer= ! $peer_id;
-
+
// extra privileges to admins, and (pi||tech) on this site
$admin_privileges=(plc_is_admin () && $local_peer);
$privileges = $admin_privileges || ( plc_in_site($site_id) && ( plc_is_pi() || plc_is_tech()));
-
+
$tabs=array();
// available actions
$tabs [] = tab_nodes_site($site_id);
//$tabs [] = tab_nodes();
if ( $local_peer && $privileges ) {
-
+
$tabs["Add Interface"]=array('url'=>l_interface_add($node_id),
'bubble'=>"Define new network interface on $hostname");
$tabs['Delete'] = array ('url'=>l_actions(),
// show gray background on foreign objects : start a <div> with proper class
$peers->block_start ($peer_id);
-
+
$toggle = new PlekitToggle ('node',"Details",
array('bubble'=>'Display and modify details for that node',
'visible'=>get_arg('show_details')));
$details->form_start(l_actions(),array("action"=>"update-node", "node_id"=>$node_id, "hostname"=>$hostname));
// xxx can hostname really be changed like this without breaking the rest, bootcd .. ?
-//$details->th_td("Hostname",$hostname,"hostname");
-$details->th_td("Hostname",$hostname);
+//$details->th_td("Hostname",$hostname,"hostname");
+$details->th_td("Hostname",$hostname);
if ($hrn) $details->th_td("SFA hrn",$hrn);
else $details->tr("SFA hrn not set","center");
$details->th_td("Model",$model,"model");
}
$site_pcus = $api->GetPCUs(array('site_id'=>$site_id));
// not sure what the exact semantics is, but I expect pcu_ids and ports should have same cardinality
- if (count ($pcu_ids) != count ($ports))
+ if (count ($pcu_ids) != count ($ports))
$pcu_string = plc_error_html("Unexpected condition: " . count($pcu_ids) . " pcu_ids and " . count($ports) . " ports");
- else if (count($pcu_ids) == 0)
+ else if (count($pcu_ids) == 0)
$pcu_string = plc_warning_html("No PCU !");
else if (count($pcu_ids) == 1) {
$pcu_id=$pcu_ids[0];
$display_reboot_button = TRUE;
}
}
- } else
+ } else
$pcu_string = plc_warning_html("More than one PCU attached ? ");
// in the regular case, pcu_string is not set here
-
+
$details->form_start(l_actions(),array("action"=>"attach-pcu","node_id"=>$node_id));
// prepare selectors
if (! $site_pcus) {
$pcu_add_link = href (l_pcu_add(),plc_add_icon() . "Add new");
// first option in pcus
- if ($pcu_ids)
+ if ($pcu_ids)
$none_detach = 'Detach';
- else
+ else
$none_detach='None';
$pcu_selectors = array(array('display'=>$none_detach,'value'=>-1));
// one option per site pcu
}
$pcu_chooser = $details->form()->select_html('pcu_id',$pcu_selectors);
- function port_selector ($i,$port) {
- $selector = array ('display'=>'port ' . $i, 'value'=>$i);
+ function port_selector ($i,$port) {
+ $selector = array ('display'=>'port ' . $i, 'value'=>$i);
if ($i == $port) $selector['selected'] = true;
return $selector;
}
$port_selectors = array () ;
$available_ports =range(1,8);
- foreach ($available_ports as $available_port)
+ foreach ($available_ports as $available_port)
$port_selectors []= port_selector ($available_port,$port);
$port_chooser = $details->form()->select_html('port',$port_selectors);
- $pcu_attach_button =
+ $pcu_attach_button =
$details->form()->submit_html('attach_pcu',"Attach PCU");
$pcu_update_area = $pcu_add_link . "<br>Or, select existing " . $pcu_chooser . " " . $port_chooser . " " . $pcu_attach_button;
}
- if ($pcu_string)
+ if ($pcu_string)
$pcu_value_area=plc_vertical_table(array($pcu_string,$pcu_update_area));
- else
+ else
$pcu_value_area=$pcu_update_area;
-
+
$details->th_td("PCU",$pcu_value_area);
$details->form_end();
}
//////////////////// Reboot Node
-if ( $display_reboot_button )
+if ( $display_reboot_button )
{
if ( ! empty($_SESSION['messages']) ) {
$msg = $_SESSION['messages']['status'][0];
This message is a template from the 'Report a problem' link on the node details page.
-I've experienced a problem rebooting $hostname with the pcu_id $pcu_id;
+I've experienced a problem rebooting $hostname with the pcu_id $pcu_id;
http://".PLC_WWW_HOST."/db/sites/pcu.php?id=$pcu_id
http://".PLC_WWW_HOST."/db/nodes/node.php?id=$node_id\n\n";
$boot_form = new PlekitForm (l_actions(), array("node_id"=>$node_id,
"action"=>"node-boot-state"));
$boot_value .= $boot_form->start_html();
- $states = array( 'boot'=>'Boot', 'safeboot'=>'SafeBoot',
+ $states = array( 'boot'=>'Boot', 'safeboot'=>'SafeBoot',
'disabled' => 'Disabled', 'reinstall'=>'Reinstall',
'upgrade' => 'Upgrade');
$selectors=array();
- foreach ($states as $dbname=>$displayname) {
+ foreach ($states as $dbname=>$displayname) {
$selector=array("display"=>$displayname, "value"=>$dbname);
if ($dbname == $boot_state) $selector['selected']=true;
$selectors []= $selector;
$download_value="";
$download_form = new PlekitForm (l_actions_download(),array("node_id"=>$node_id));
$download_value .= $download_form->start_html();
- $selectors = array(
+ $selectors = array(
array("display"=>"-- All in one images --","disabled"=>true),
array("value"=>"download-node-iso","display"=>"Download ISO image for $hostname"),
array("value"=>"download-node-usb","display"=>"Download USB image for $hostname"),
// site info and all site nodes
$details->space ();
$details->th_td("Site",l_site_t($site_id,$site_name));
-
+
// build list of node links
$nodes_area=array();
foreach ($site_node_hash as $hash_node_id => $hash_hostname) {
//////////////////////////////////////////////////////////// Tags
// tags section
if ( $local_peer ) {
-
+
$tags=$api->GetNodeTags (array('node_id'=>$node_id));
function get_tagname ($tag) { return $tag['tagname'];}
- // xxx looks like tech-only see an error here,
+ // xxx looks like tech-only see an error here,
// might be that GetNodeTags is not accessible or something
$tagnames = array_map ("get_tagname",$tags);
$nodegroups_hash=plc_nodegroup_global_hash($api,$tagnames);
-
+
$toggle = new PlekitToggle ('tags',count_english($tags,'tag'),
array('bubble'=>'Inspect and set tags on that node',
'visible'=>get_arg('show_tags')));
"Nodegroup"=>"string",
);
if (plc_is_admin()) $headers[plc_delete_icon()]="none";
-
+
$table_options=array("notes_area"=>false,"pagesize_area"=>false,"search_width"=>10);
$table=new PlekitTable("node_tags",$headers,0,$table_options);
$table->start();
if (plc_is_admin()) $table->cell ($form->checkbox_html('node_tag_ids[]',$tag['node_tag_id']));
$table->row_end();
}
-
+
if ($privileges) {
$table->tfoot_start();
- // remove tag
+ // remove tag
$table->row_start();
$table->cell($form->submit_html("delete-node-tags","Remove Tags"),
// use the whole columns and right adjust
// set tag area
$table->row_start();
- // get list of tag names in the node/* category
+ // get list of tag names in the node/* category
$all_tags= $api->GetTagTypes( array ("category"=>"node*","-SORT"=>"tagname"), array("tagname","tag_type_id"));
- // xxx cannot use onchange=submit() - would need to somehow pass action name
+ // xxx cannot use onchange=submit() - would need to somehow pass action name
function tag_selector ($tag) { return array("display"=>$tag['tagname'],"value"=>$tag['tag_type_id']); }
$selector=array_map("tag_selector",$all_tags);
$table->cell($form->select_html("tag_type_id",$selector,array('label'=>"Choose")));
$table->cell($form->submit_html("set-tag-on-node","Set Tag"),array('columns'=>2,'align'=>'left'));
$table->row_end();
}
-
+
$table->end();
$toggle->end();
}
$table_options=array('search_area'=>false,"pagesize_area"=>false,'notes_area'=>false);
$table=new PlekitTable("node_interfaces",$headers,$sort_column,$table_options);
$table->start();
-
+
if ($interfaces) foreach ( $interfaces as $interface ) {
$interface_id= $interface['interface_id'];
$interface_ip= $interface['ip'];
// we should have 6 cols, use 3 for the left (new) and the rest for the right (remove)
//$add_button=new PlekitFormButton (l_interface_add($node_id),"add","Add Interface","GET");
//$table->cell($add_button->html(),array('columns'=> 3,'align'=>'left'));
- $table->cell($form->submit_html("new-interface","Add Interface"),
+ $table->cell($form->submit_html("new-interface","Add Interface"),
array('columns'=> 3,'align'=>'left'));
- $table->cell($form->submit_html("delete-interfaces","Remove Interfaces"),
+ $table->cell($form->submit_html("delete-interfaces","Remove Interfaces"),
array('columns'=>$table->columns()-3,'align'=>'right'));
$table->row_end();
}