filter()); $title .= ' - ' . $peerscope->label(); if ($site_id) { $sites=$api->GetSites(array($site_id)); $site=$sites[0]; $name=$site['name']; $login_base=$site['login_base']; $title .= t_site($site); $tabs []= tab_site($site); $node_filter['site_id']=array($site_id); } if ($slice_id) { $slices=$api->GetSlices(array($slice_id),array('node_ids','name')); $slice=$slices[0]; $title .= t_slice($slice); $tabs []= tab_slice($slice); $node_filter['node_id'] = $slice['node_ids']; } // go $nodes=$api->GetNodes($node_filter,$node_columns); // build site_ids - interface_ids $site_ids=array(); $interface_ids=array(); if ($nodes) foreach ($nodes as $node) { $site_ids []= $node['site_id']; $interface_ids = array_merge ($interface_ids,$node['interface_ids']); } // fetch related interfaces $interface_columns=array('ip','node_id','interface_id'); $interface_filter=array('is_primary'=>TRUE,'interface_id'=>$interface_ids); $interfaces=$api->GetInterfaces($interface_filter,$interface_columns); $interface_hash=array(); foreach ($interfaces as $interface) $interface_hash[$interface['node_id']]=$interface; // fetch related sites $site_columns=array('site_id','login_base'); $site_filter=array('site_id'=>$site_ids); $sites=$api->GetSites($site_filter,$site_columns); $site_hash=array(); foreach ($sites as $site) $site_hash[$site['site_id']]=$site; // -------------------- drupal_set_title($title); plekit_linetabs($tabs); if ( ! $nodes ) { drupal_set_message ('No node found'); return; } $nifty=new PlekitNifty ('','objects-list','big'); $nifty->start(); $headers = array (); $offset=0; if (plc_is_admin()) { $headers["I"]="int"; $offset=1; } $headers["P"]="string"; $headers["R"]="string"; $headers["Site"]="string"; $headers["State"]="string"; $headers["Hostname"]="string"; $headers["Type"]="string"; $headers["IP"]="IPAddress"; $headers["A"]="string"; $headers["S"]='int'; $headers["?"]="string"; # initial sort on hostnames $table=new PlekitTable ("nodes",$headers,4+$offset); $table->start(); $peers = new Peers ($api); // write rows foreach ($nodes as $node) { $hostname=$node['hostname']; $node_id=$node['node_id']; $site_id=$node['site_id']; $site=$site_hash[$site_id]; $login_base = $site['login_base']; $ip=$interface_hash[$node['node_id']]['ip']; $interface_id=$interface_hash[$node['node_id']]['interface_id']; $peer_id=$node['peer_id']; $node_type = $node['node_type']; $table->row_start(); if (plc_is_admin()) $table->cell(l_node_t($node_id,$node_id)); $peers->cell ($table,$peer_id); $table->cell (topdomain($hostname)); $table->cell (l_site_t($site_id,$login_base)); $table->cell ($node['boot_state']); $table->cell (l_node_t($node_id,$hostname)); $table->cell ($node_type); $table->cell (l_interface_t($interface_id,$ip),array('only-if'=> !$peer_id)); $table->cell ($node['arch'],array('only-if'=> !$peer_id)); $table->cell (count($node['slice_ids'])); $table->cell (node_status($node)); $table->row_end(); } $notes=array(); if (plc_is_admin()) $notes []= "I = node_id"; $notes []= "R = region"; $notes []= "A = arch"; $notes []= "S = number of slivers"; $notes []= "? = status"; $table->end(array('notes'=>$notes)); $nifty->end(); //plekit_linetabs ($tabs,"bottom"); // Print footer include 'plc_footer.php'; ?>