<?php
-// $Id: index.php 1175 2008-02-07 16:20:15Z thierry $
+// $Id$
// Require login
require_once 'plc_login.php';
// 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";
}
//////////////////
// 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();
// 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;
// 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) {
// 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);
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>";
}
}
$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";
</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
// 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'];
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 ) )
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)) {
}
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>";
}
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";
}