merged changeset:11572 in trunk
[plewww.git] / planetlab / nodes / index.php
index 94e23f1..11b2636 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-// $Id: index.php 1175 2008-02-07 16:20:15Z thierry $
+// $Id$
 
 // Require login
 require_once 'plc_login.php';
@@ -26,10 +26,10 @@ $_roles= $_person['role_ids'];
 // The set of columns to fetch
 // and the filter applied for fetching sites
 $columns = array( "node_id", "hostname", "boot_state", "peer_id" ) ;
-$filter = array();
+$filter = array("node_type"=>"regular");
 if ( in_array( '10', $_roles ) || in_array('20', $_roles) || in_array('40',$_roles)) {
-  // admins, PIs and techs can see nodenetwork details
-  $columns [] = "nodenetwork_ids";
+  // admins, PIs and techs can see interface details
+  $columns [] = "interface_ids";
  }
 
 //////////////////
@@ -38,9 +38,9 @@ if ( in_array( '10', $_roles ) || in_array('20', $_roles) || in_array('40',$_rol
 // performs in-place replacement, so passes a reference
 function layout_node ($node) {
 
-  // we need the 'nodenetwork_ids' field to do this
+  // we need the 'interface_ids' field to do this
   // so regular users wont run this
-  if ( ! array_key_exists ('nodenetwork_ids', $node))
+  if ( ! array_key_exists ('interface_ids', $node))
     return $node;
     
   $messages=array();
@@ -48,12 +48,12 @@ function layout_node ($node) {
   // do all this stuff on local nodes only
   if ( ! $node['peer_id'] ) {
     // check that the node has keys
-    if (count($node['nodenetwork_ids']) == 0)
-      $messages [] = "No nodenetwork";
+    if (count($node['interface_ids']) == 0)
+      $messages [] = "No interface";
     
   }
   // but always cleanup $node columns
-  unset ($node['nodenetwork_ids']);
+  unset ($node['interface_ids']);
   $node['status'] = plc_make_table('plc-warning',$messages);
   $node['comon'] = plc_comon_button("node_id",$node['node_id']);
   return $node;
@@ -63,31 +63,19 @@ function layout_node ($node) {
 // we use GET rather than POST so paginate can display the right contents on subsequent pages
 // can be useful for writing bookmarkable URL's as well
 if( $_GET['nodepattern'] || $_GET['peerscope']) {
+
+  // nodepattern
   $nodepattern= $_GET['nodepattern'];
+  // need to use a hash filter for patterns to be properly handled
   if (empty($nodepattern)) { 
     $nodepattern="*";
   }
   $filter = array_merge (array( "hostname"=>$nodepattern ), $filter);
-  switch ($_GET['peerscope']) {
-  case '':
-    $peer_label="all peers";
-    break;
-  case 'local':
-    $filter=array_merge(array("peer_id"=>NULL),$filter);
-    $peer_label="local peer";
-    break;
-  case 'foreign':
-    $filter=array_merge(array("~peer_id"=>NULL),$filter);
-    $peer_label="foreign peers";
-    break;
-  default:
-    $peer_id=intval($_GET['peerscope']);
-    $filter=array_merge(array("peer_id"=>$peer_id),$filter);
-    $peer=$api->GetPeers(array("peer_id"=>$peer_id));
-    $peer_label='peer "' . $peer[0]['peername'] . '"';
-    break;
-  }
-  // need to use a hash filter for patterns to be properly handled
+
+  // peerscope
+  list ( $peer_filter, $peer_label) = plc_peer_info($api,$_GET['peerscope']);
+  $filter=array_merge($filter,$peer_filter);
+
   $nodes= $api->GetNodes($filter, $columns);
   $nodes_count = count ($nodes);
   if ( $nodes_count == 1) {
@@ -132,7 +120,7 @@ else if( $_GET['slice_id'] ) {
 
   // Get slice infos
   $slice_info= $api->GetSlices( array( intval( $slice_id ) ), array( "name", "node_ids" ) );
-  drupal_set_title($slice_info[0]['name']."run on");
+  drupal_set_title("nodes where " . $slice_info[0]['name'] . " is running");
 
   // Get slice nodes
   $nodes= $api->GetNodes( array_merge(array('node_id'=>$slice_info[0]['node_ids']),$filter), $columns);
@@ -145,7 +133,7 @@ else if( $_GET['slice_id'] ) {
     sort_nodes( $nodes );      
 
     echo paginate( $nodes, "node_id", "Nodes", 25, "hostname");
-    echo "<br /><p><a href='/db/slices/index.php?id=".$slice_id.">Back to slice page</a></div>";
+    echo "<br /><p><a href='/db/slices/index.php?id=" . $slice_id . "'>Go to slice page</a></p>";
   }
   
  }
@@ -162,9 +150,9 @@ elseif( !$_GET['id'] ) {
     $nodes = array_map(layout_node,$nodes);
     sort_nodes( $nodes );
 
-    drupal_set_html_head('<script type="text/javascript" src="/planetlab/includes/js/bsn.Ajax.js"></script>
-    <script type="text/javascript" src="/planetlab/includes/js/bsn.DOM.js"></script>
-    <script type="text/javascript" src="/planetlab/includes/js/bsn.AutoSuggest.js"></script>');
+    drupal_set_html_head('<script type="text/javascript" src="/planetlab/bsn/bsn.Ajax.js"></script>
+    <script type="text/javascript" src="/planetlab/bsn/bsn.DOM.js"></script>
+    <script type="text/javascript" src="/planetlab/bsn/bsn.AutoSuggest.js"></script>');
 
     echo "<div>\n
         <form method=get action='index.php'>\n";
@@ -181,8 +169,7 @@ elseif( !$_GET['id'] ) {
          </tr></table></form></div>\n
           <br />\n";
 
-
-echo paginate( $nodes, "node_id", "Nodes", 25, "hostname" );
+    echo paginate( $nodes, "node_id", "Nodes", 25, "hostname" );
 
     echo "<script type=\"text/javascript\">\n
 var options = {\n
@@ -216,7 +203,7 @@ if ( $_GET['id'] ) {
     // arrays of ids of node info
     $slice_ids= $node_info[0]['slice_ids'];
     $conf_file_ids= $node_info[0]['conf_file_ids'];
-    $nodenetwork_ids= $node_info[0]['nodenetwork_ids'];
+    $interface_ids= $node_info[0]['interface_ids'];
     $nodegroup_ids= $node_info[0]['nodegroup_ids'];
     $pcu_ids= $node_info[0]['pcu_ids'];
     $ports= $node_info[0]['ports'];
@@ -246,9 +233,9 @@ if ( $_GET['id'] ) {
     if( !empty( $conf_file_ids ) )
       $conf_files= $api->GetConfFiles( $conf_file_ids );
 
-    // get node network info
-    if( !empty( $nodenetwork_ids ) )
-      $node_networks= $api->GetNodeNetworks( $nodenetwork_ids );
+    // get interface info
+    if( !empty( $interface_ids ) )
+      $interfaces= $api->GetInterfaces( $interface_ids );
 
     // gets nodegroup info
     if( !empty( $nodegroup_ids ) )
@@ -380,10 +367,10 @@ if ( $_GET['id'] ) {
 
       echo "<hr />\n";
 
-      // display node networks
-      if( $node_networks ) {
+      // display interfaces
+      if( $interfaces ) {
        echo "<p><table class='list_set' border=0 cellpadding=2>\n";
-       echo "<caption class='list_set'>Node Networks</caption>\n";
+       echo "<caption class='list_set'>Interfaces</caption>\n";
        echo "<thead><tr class='list_set'>";
        // placeholder for the delete buttons
        if ( $is_admin || ($is_pi && $in_site)) {
@@ -391,35 +378,35 @@ if ( $_GET['id'] ) {
        }
        echo "<th class='list_set'>IP Address</th><th class='list_set'>Method</th><th class='list_set'>Type</th><th class='list_set'>MAC</th><th class='list_set'>Bandwidth Limit</th></tr></thead><tbody>\n";
 
-       foreach( $node_networks as $node_network ) {
-         $nn_id= $node_network['nodenetwork_id'];
-         $nn_ip= $node_network['ip'];
-         $nn_broad= $node_network['broadcast'];
-         $nn_primary= $node_network['is_primary'];
-         $nn_network= $node_network['network'];
-         $nn_dns1= $node_network['dns1'];
-         $nn_dns2= $node_network['dns2'];
-         $nn_hostname= $node_network['hostname'];
-         $nn_netmaks= $node_network['netmask'];
-         $nn_gatewary= $node_network['gateway'];
-         $nn_mac= $node_network['mac'];
-         $nn_bwlimit= $node_network['bwlimit'];
-         $nn_type= $node_network['type'];
-         $nn_method= $node_network['method'];
+       foreach( $interfaces as $interface ) {
+         $nn_id= $interface['interface_id'];
+         $nn_ip= $interface['ip'];
+         $nn_broad= $interface['broadcast'];
+         $nn_primary= $interface['is_primary'];
+         $nn_network= $interface['network'];
+         $nn_dns1= $interface['dns1'];
+         $nn_dns2= $interface['dns2'];
+         $nn_hostname= $interface['hostname'];
+         $nn_netmaks= $interface['netmask'];
+         $nn_gatewary= $interface['gateway'];
+         $nn_mac= $interface['mac'];
+         $nn_bwlimit= $interface['bwlimit'];
+         $nn_type= $interface['type'];
+         $nn_method= $interface['method'];
 
          echo "<tr class='list_set'>";
          if ( $is_admin || ($is_pi && $in_site)) {
            echo "<td class='list_set'>";
            if (!$nn_primary) {
-             echo plc_delete_link_button('node_networks.php?id=' . $nn_id . '&delete=1&submitted=1', '\\nNode Network ' . $nn_ip);
+             echo plc_delete_link_button('interfaces.php?id=' . $nn_id . '&delete=1&submitted=1', '\\nInterface ' . $nn_ip);
            } else {
-             echo '<span title="This node network is primary"> P </span>';
+             echo '<span title="This interface is primary"> P </span>';
            }
            echo "</td>";
          }
          echo "<td class='list_set'>";
          if( $is_admin || $is_pi || $is_tech ) {
-           echo "<a href='node_networks.php?id=$nn_id'>$nn_ip</a>";
+           echo "<a href='interfaces.php?id=$nn_id'>$nn_ip</a>";
          } else {
            echo "</td><td class='list_set'>$nn_ip</td>";
          }
@@ -429,10 +416,10 @@ if ( $_GET['id'] ) {
        echo "</tbody></table>\n";
 
       } else {
-       echo "<p><span class='plc-warning'>No Node Network</span>.  Please add a node network to make this a usable PLC node</p>.\n";
+       echo "<p><span class='plc-warning'>No interface</span>.  Please add an interface to make this a usable PLC node</p>.\n";
       }
 
-      echo "<br /><a href='node_networks.php?node_id=$node_id'>Add a node network</a>.\n";
+      echo "<br /><a href='interfaces.php?node_id=$node_id'>Add an interface</a>.\n";
       echo "<br /><hr />\n";
     }