person;
$_roles= $_person['role_ids'];
//print_r( $_person );
// if no id ... redirect to slice index
if( !$_GET['id'] && !$_POST['id'] ) {
header( "location: index.php" );
exit();
}
// get slice id from GET or POST
if( $_GET['id'] )
$slice_id= intval( $_GET['id'] );
elseif ( $_POST['id'] )
$slice_id= intval( $_POST['id'] );
else
echo "no slice_id
\n";
// if add node submitted add the nodes to slice
if( $_POST['add'] ) {
$add_nodes= $_POST['add_nodes'];
foreach( $add_nodes as $nodes) {
$new_nodes[]= intval( $nodes );
}
// update it!
$api->AddSliceToNodes( $slice_id, $new_nodes );
$errors= $api->error();
if( empty( $errors ) )
$added= "Nodes Added.
";
else
$added= "Error: '$errors'
";
}
// if rem node submitted remove the nodes from slice
if( $_POST['remove'] ) {
$rem_nodes= $_POST['rem_nodes'];
foreach( $rem_nodes as $nodes) {
$new_nodes[]= intval( $nodes );
}
// Delete them!
$api->DeleteSliceFromNodes( $slice_id, $new_nodes );
$errors= $api->error();
if( empty( $errors ) )
$removed= "Nodes Removed.
";
else
$removed= "Error: '$errors'
";
}
// get slice info
$slice_info= $adm->GetSlices( array( $slice_id ), array( "name", "node_ids", "peer_id" ) );
$slice_readonly = $slice_info[0]['peer_id'];
drupal_set_title("Slice " . $slice_info[0]['name'] . " - Nodes");
// get node info
if( !empty( $slice_info[0]['node_ids'] ) )
$node_info= $adm->GetNodes( $slice_info[0]['node_ids'], array( "hostname", "node_id", "site_id" , "peer_id") );
// get site names and ids
$site_info= $adm->GetSites( NULL, array( "site_id", "name", "peer_id" ) );
sort_sites( $site_info );
// if site_id is in post use it, if not use the user's primary
if( $_POST['site_id'] )
$site_id= $_POST['site_id'];
else
$site_id= $_person['site_ids'][0];
// get site nodes for $site_id
if( $site_id == 'all_site' ) {
$full_node_info= $adm->GetNodes( array("node_type","regular"),
array( "hostname", "node_id" , "peer_id", "boot_state","last_updated") );
$snode_info= array();
foreach( $full_node_info as $full_node ) {
if( !in_array( $full_node['node_id'], $slice_info[0]['node_ids'] ) )
$snode_info[]= $full_node;
}
}
else {
$sid= intval( $site_id );
$site_node_info= $adm->GetSites( array( $sid ), array( "node_ids" ) );
$site_nodes= $site_node_info[0]['node_ids'];
// gets all node_ids from site that arent already associated with the slice
foreach( $site_nodes as $snode) {
if( !in_array( $snode, $slice_info[0]['node_ids'] ) )
$snodes[]= $snode;
}
// Get node info from new list
if( !empty( $snodes ) )
$snode_info= $adm->GetNodes( $snodes, array( "hostname", "node_id" , "peer_id", "boot_state","last_updated" ) );
}
// start form
if ( $slice_readonly)
echo "