ckp
[plewww.git] / planetlab / nodes / node.php
index 85ff68d..c4bd0c6 100644 (file)
@@ -111,23 +111,25 @@ if ( ! $peer_id  && $privileges ) {
     
   $tabs['Update'] = array ('url'=>"/db/nodes/node_actions.php",
                           'method'=>'POST',
-                          'values'=>array('action'=>'prompt-update','node_id'=>$node_id));
+                          'values'=>array('action'=>'prompt-update','node_id'=>$node_id),
+                          'bubble'=>"Update details of $hostname");
   $tabs['Delete'] = array ('url'=>"/db/nodes/node_actions.php",
                           'method'=>'POST',
                           'values'=>array('action'=>'delete','node_id'=>$node_id),
+                          'bubble'=>"Delete $hostname",
                           'confirm'=>'Are you sure to delete ' . $hostname. ' ?');
   // xxx subject to roles
   $tabs["Add Interface"]=l_interface_add($node_id);
-  $tabs["Comon"]=l_comon("node_id",$node_id);
-  $tabs["Events"]=l_event("Node","node",$node_id);
+  $tabs["Comon"]=array('url'=>l_comon("node_id",$node_id),
+                      'buble'=>"Comon page for $hostname");
+  $tabs["Events"]=array('url'=>l_event("Node","node",$node_id),
+                       'bubble'=>"Events for node $hostname");
  }
 
 $tabs["All nodes"]=l_nodes();
 
 plc_tabs($tabs);
 
-echo "<hr />";
-  
 plc_details_start ();
 plc_details_line("Hostname",$hostname);
 plc_details_line("Type",$node_type);
@@ -193,11 +195,39 @@ plc_details_line_list ("All site nodes",$nodes_area);
 
 plc_details_end ();
 
+//////////////////////////////////////////////////////////// Tags
+// get tags
+$tags=$api->GetNodeTags (array('node_id'=>$node_id));
+$tagnames = array_map ("get_tagname",$tags);
+//plc_debug('tagnames',$tagnames);
+$nodegroups_hash=plc_nodegroup_global_hash($api,$tagnames);
+//plc_debug('hash',$nodegroups_hash);
+
+plc_section("Tags");
+$headers=array("Name"=>"string",
+              "Value"=>"string",
+              "Nodegroup"=>"string");
+
+$table_options=array("notes_area"=>false,"pagesize_area"=>false,"search_width"=>10);
+plc_table_start("node-tags",$headers,0,$table_options);
+if ($tags) foreach ($tags as $tag) {
+  // does this match a nodegroup ?
+  $nodegroup_name="n/a";
+  $nodegroup_key=$tag['tagname'] . "=" . $tag['value'];
+  $nodegroup=$nodegroups_hash[$nodegroup_key];
+  if ($nodegroup) $nodegroup_name=l_nodegroup_t($nodegroup['nodegroup_id'],$nodegroup['groupname']);
+  plc_table_row_start();
+  plc_table_cell($tag['tagname']);
+  plc_table_cell($tag['value']);
+  plc_table_cell($nodegroup_name);
+  plc_table_row_end();
+}
+plc_table_end("node-tags");
+
 //////////////////////////////////////////////////////////// slices
 // display slices
 
-print "<hr/>\n";
-plc_table_title ("Slices");
+plc_section ("Slices");
 if ( ! $slices  ) {
   echo "<p><span class='plc-warning'>This node is not associated to any slice.</span></p>\n";
  } else {
@@ -205,8 +235,8 @@ if ( ! $slices  ) {
   $headers['Peer']="string";
   $headers['Name']="string";
   $headers['Slivers']="string";
-  $table_options = array('notes_area'=>false);
-  plc_table_start ("slivers",$headers,1,$table_options);
+  $table_options = array('notes_area'=>false,"search_width"=>10);
+  plc_table_start ("node-slices",$headers,1,$table_options);
 
   foreach ($slices as $slice) {
     plc_table_row_start($slice['name']);
@@ -215,7 +245,7 @@ if ( ! $slices  ) {
     plc_table_cell (l_sliver_t ($node_id,$slice['slice_id'],'view'));
     plc_table_row_end();
   }
-  plc_table_end("slivers");
+  plc_table_end("node-slices");
  }
 
 //////////////////////////////////////////////////////////// interfaces
@@ -237,10 +267,9 @@ if ( ! $peer_id ) {
     $headers["MAC"]="string";
     $headers["bw limit"]="FileSize";
 
-    print "<hr/>\n";
-    plc_table_title('Interfaces');
-    $table_options=array('search_area'=>false);
-    plc_table_start("interfaces",$headers,2,$table_options);
+    plc_section('Interfaces');
+    $table_options=array('search_area'=>false,"pagesize_area"=>false,'notes_area'=>false);
+    plc_table_start("node-interfaces",$headers,2,$table_options);
        
     foreach ( $interfaces as $interface ) {
       $interface_id= $interface['interface_id'];
@@ -279,35 +308,10 @@ if ( ! $peer_id ) {
       $button=plc_form_simple_button(l_interface_add($node_id),"Add interface","GET");
       $footers=array(plc_table_td_text($button,6,"right"));
     }
-    plc_table_end("interfaces",array("footers"=>$footers));
+    plc_table_end("node-interfaces",array("footers"=>$footers));
   }
-      
  }
-
-//////////////////////////////////////////////////////////// nodegroups
-// display node group info
-print "<hr/>\n";
-plc_table_title("Nodegroups");
-if ( ! $nodegroups ) {
-  echo "<p><span class='plc-warning'>This node is not in any nodegroup.</span></p>\n";
- } 
-$headers=array();
-$headers['Name']="string";
-$headers['Tag']="string";
-$headers['Value']="string";
-  
-$table_options = array('search_area'=>false);
-plc_table_start("nodegroups",$headers,0,$table_options);
-
-if ($nodegroups) foreach( $nodegroups as $nodegroup ) {
-  plc_table_row_start();
-  plc_table_cell(l_nodegroup_t($nodegroup_id,$nodegroup['groupname']));
-  $tag_types=$api->GetTagTypes(array($nodegroup['tag_type_id']));
-  plc_table_cell($tag_types[0]['tagname']);
-  plc_table_cell($nodegroup['value']);
-  plc_table_row_end();
-                }
-plc_table_end("nodegroups");
+      
 ////////////////////////////////////////////////////////////
 plc_peer_block_end();