X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fnodes%2Fnodes.php;h=9336d86409629586237b7407d9dcc7058b1168ac;hb=61556d062d4419b54810e4420803a219f2c44a39;hp=7800b31b7d4754ab01629af08f1dc177a03559ea;hpb=fa425f537d2e4aced1a2362672791aed274dd903;p=plewww.git diff --git a/planetlab/nodes/nodes.php b/planetlab/nodes/nodes.php index 7800b31..9336d86 100644 --- a/planetlab/nodes/nodes.php +++ b/planetlab/nodes/nodes.php @@ -1,7 +1,5 @@ GetPersonTags (array('person_id'=>$plc->person['person_id'])); //print_r($PersonTags); @@ -91,6 +92,11 @@ foreach ($PersonTags as $ptag) { $column_configuration = $ptag['value']; $conf_tag_id = $ptag['person_tag_id']; } + if ($ptag['tagname'] == 'showconf') + { + $show_configuration = $ptag['value']; + $show_tag_id = $ptag['person_tag_id']; + } } //print("column configuration = ".$column_configuration); @@ -98,6 +104,7 @@ foreach ($PersonTags as $ptag) { $nodesconf_exists = false; if ($column_configuration == "") { + $first_time_configuration = true; $column_configuration = "nodes;default"; $nodesconf_exists = true; } @@ -134,7 +141,7 @@ else //print("full configuration = ".$full_configuration); // fetch nodes -$node_fixed_columns=array('hostname','node_type','site_id','node_id','boot_state','last_contact','interface_ids','peer_id', 'slice_ids'); +$node_fixed_columns=array('node_type','site_id','boot_state','last_contact','interface_ids','peer_id', 'slice_ids'); $fix_columns = array(); if (plc_is_admin()) @@ -142,18 +149,59 @@ $fix_columns[]=array('tagname'=>'node_id', 'header'=>'ID', 'type'=>'string', 'ti $fix_columns[]=array('tagname'=>'hostname', 'header'=>'hostname', 'type'=>'string', 'title'=>'The name of the node'); $fix_columns[]=array('tagname'=>'peer_id', 'header'=>'AU', 'type'=>'string', 'title'=>'Authority'); $fix_columns[]=array('tagname'=>'run_level', 'header'=>'ST', 'type'=>'string', 'title'=>'Status'); -//$fix_columns[]=array('tagname'=>'node_type', 'header'=>'RES', 'type'=>'string', 'title'=>'Reservable'); +$fix_columns[]=array('tagname'=>'node_type', 'header'=>'RES', 'type'=>'string', 'title'=>'Reservable'); $visibletags = new VisibleTags ($api, 'node'); $visibletags->columns(); $tag_columns = $visibletags->headers(); +//columns that are not defined as extra myslice tags $extra_columns = array(); -$extra_columns[]=array('tagname'=>'sitename', 'header'=>'SN', 'type'=>'string', 'title'=>'Site name', 'fetched'=>true); -$extra_columns[]=array('tagname'=>'domain', 'header'=>'DN', 'type'=>'string', 'title'=>'Toplevel domain name', 'fetched'=>true); -$extra_columns[]=array('tagname'=>'ipaddress', 'header'=>'IP', 'type'=>'string', 'title'=>'IP Address', 'fetched'=>true); -$extra_columns[]=array('tagname'=>'fcdistro', 'header'=>'OS', 'type'=>'string', 'title'=>'Operating system', 'fetched'=>false); +//MyPLC columns +$extra_columns[]=array('tagname'=>'sitename', 'header'=>'SN', 'type'=>'string', 'title'=>'Site name', 'fetched'=>true, 'source'=>'myplc'); +$extra_columns[]=array('tagname'=>'domain', 'header'=>'DN', 'type'=>'string', 'title'=>'Toplevel domain name', 'fetched'=>true, 'source'=>'myplc'); +$extra_columns[]=array('tagname'=>'ipaddress', 'header'=>'IP', 'type'=>'string', 'title'=>'IP Address', 'fetched'=>true, 'source'=>'myplc'); +$extra_columns[]=array('tagname'=>'fcdistro', 'header'=>'OS', 'type'=>'string', 'title'=>'Operating system', 'fetched'=>false, 'source'=>'myplc'); +$extra_columns[]=array('tagname'=>'date_created', 'header'=>'DA', 'source'=>'myplc', 'type'=>'date', 'title'=>'Date added', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'arch', 'header'=>'A', 'source'=>'myplc', 'type'=>'string', 'title'=>'Architecture', 'fetched'=>false); +if (plc_is_admin()) { +$extra_columns[]=array('tagname'=>'deployment', 'header'=>'DL', 'source'=>'myplc', 'type'=>'string', 'title'=>'Deployment', 'fetched'=>false); +} + +//CoMon Live data +//NOTE: Uncomment these lines if CoMon provides information for your nodes + +if (MYSLICE_COMON_AVAILABLE) +{ +$extra_columns[]=array('tagname'=>'bwlimit', 'header'=>'BW', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Bandwidth limit', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'numcores', 'header'=>'CC', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Number of CPU Cores', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'cpuspeed', 'header'=>'CR', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'CPU clock rate', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'disksize', 'header'=>'DS', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Disk size', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'gbfree', 'header'=>'DF', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Currently available disk space', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'memsize', 'header'=>'MS', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Memory size', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'numslices', 'header'=>'SM', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Number of slices in memory', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'uptime', 'header'=>'UT', 'source'=>'comon', 'type'=>'sortAlphaNumericTop', 'title'=>'Continuous uptime until now', 'fetched'=>false); +} + +//TopHat Live data + +if (MYSLICE_TOPHAT_AVAILABLE) +{ +$extra_columns[]=array('tagname'=>'asn', 'header'=>'AS', 'source'=>'tophat', 'type'=>'string', 'title'=>'AS Number', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'city', 'header'=>'LCY', 'source'=>'tophat', 'type'=>'string', 'title'=>'City', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'region', 'header'=>'LRN', 'source'=>'tophat', 'type'=>'string', 'title'=>'Region', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'country', 'header'=>'LCN', 'source'=>'tophat', 'type'=>'string', 'title'=>'Country', 'fetched'=>false); +$extra_columns[]=array('tagname'=>'continent', 'header'=>'LCT', 'source'=>'tophat', 'type'=>'string', 'title'=>'Continent', 'fetched'=>false); +//$extra_columns[]=array('tagname'=>'hopcount', 'header'=>'HC', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Hop count from reference node', 'fetched'=>false); +////$extra_columns[]=array('tagname'=>'rtt', 'header'=>'RTT', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Round trip time from reference node', 'fetched'=>false); +////$extra_columns[]=array('tagname'=>'agents', 'header'=>'MA', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Co-located measurement agents', 'fetched'=>true); +////$extra_columns[]=array('tagname'=>'agents_sonoma', 'header'=>'MAS', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Co-located SONoMA agents', 'fetched'=>true); +////$extra_columns[]=array('tagname'=>'agents_etomic', 'header'=>'MAE', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Co-located ETOMIC agents', 'fetched'=>true); +////$extra_columns[]=array('tagname'=>'agents_tdmi', 'header'=>'MAT', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Co-located TDMI agents', 'fetched'=>true); +////$extra_columns[]=array('tagname'=>'agents_dimes', 'header'=>'MAD', 'source'=>'tophat', 'type'=>'sortAlphaNumericTop', 'title'=>'Co-located DIMES agents', 'fetched'=>true); +} + $ConfigureColumns =new PlekitColumns($full_configuration, $fix_columns, $tag_columns, $extra_columns); @@ -217,8 +265,24 @@ if ($person_id) { } // go +//print("getting nodes ".$node_columns); +//print_r($node_columns); $nodes=$api->GetNodes($node_filter,$node_columns); +//print("

GOT NODES

"); +//print_r($nodes); + +$ConfigureColumns->fetch_live_data($nodes); + +$show_columns_message = TRUE; +$show_conf = explode(";",$show_configuration); +foreach ($show_conf as $ss) { + if ($ss =="columns") + $show_columns_message = FALSE; +} + + + // build site_ids - interface_ids $site_ids=array(); $interface_ids=array(); @@ -255,37 +319,10 @@ if ( ! $nodes ) { $nifty=new PlekitNifty ('','objects-list','big'); $nifty->start(); -$headers = array (); $offset=0; +$headers = array (); $notes=array(); $notes [] = "For information about the different columns please see the node table layout tab above or mouse over the column headers"; - -/* -// fixed columns -if (plc_is_admin()) { - $short="I"; $long="node_id"; $type='int'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; - $offset=1; - } -$short="P"; $long="Peer"; $type='string'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; -$short="D"; $long="toplevel domain name"; $type='string'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; -$headers["Site"]="string"; -$headers["Hostname"]="string"; -$short="IP"; $long="IP Address"; $type='sortIPAddress'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; -$short="ST"; $long=Node::status_footnote(); $type='string'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; -$short="SL"; $long="Number of slivers"; $type='int'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; - -$headers=array_merge($headers,$visibletags->headers()); -$notes=array_merge($notes,$visibletags->notes()); -$short="?"; $long="extra status info"; $type='string'; - $headers[$short]=array('type'=>$type,'title'=>$long); $notes []= "$short = $long"; -*/ - $info_header = array(); $short="?"; $long="extra status info"; $type='string'; $info_header[$short]=array('type'=>$type,'title'=>$long, 'label'=>'?', 'header'=>'?', 'visible'=>true); @@ -293,21 +330,39 @@ $info_header[$short]=array('type'=>$type,'title'=>$long, 'label'=>'?', 'header'= //$info_header["?"] = "none"; $headers = array_merge($ConfigureColumns->get_headers(),$info_header); -//print("

HEADERS"); -//print_r($headers); - -$toggle_nodes=new PlekitToggle('nodes-column-configuration', +if ($first_time_configuration) +$column_conf_visible = '1'; +else +$column_conf_visible = '0'; + +$layout_help=' +This tab allows you to customize the columns in the node tables, +below. Information on the nodes comes from a variety of monitoring +sources. If you, as either a user or a provider of monitoring data, +would like to see additional columns made available, please send us +your request in mail to support@myslice.info. You can +find more information about the MySlice project at http://trac.myslice.info. +'; +$toggle_nodes=new PlekitToggle('nodes-layout', "Node table layout", - array('visible'=>'1')); + array('visible'=>$column_conf_visible, + 'info-text'=>$layout_help, + 'info-visible'=>$show_columns_message)); $toggle_nodes->start(); print("

"); print(""); print(""); print(""); +print(""); +print(""); print(""); print("
"); -//print(""); print(""); + +////////// end + $ConfigureColumns->configuration_panel_html(true); $ConfigureColumns->javascript_init(); $toggle_nodes->end(); @@ -318,13 +373,14 @@ $table_options = array('notes'=>$notes, 'configurable'=>true); # initial sort on hostnames -$table=new PlekitTable ("nodes",$headers,3+$offset, $table_options); +$table=new PlekitTable ("nodes",$headers,3, $table_options); $table->start(); $peers = new Peers ($api); // write rows foreach ($nodes as $node) { //$node_obj = new Node ($node); + $hostname=$node['hostname']; $node_id=$node['node_id']; $site_id=$node['site_id']; @@ -339,14 +395,18 @@ foreach ($nodes as $node) { if (plc_is_admin()) $table->cell(l_node_t($node_id,$node_id)); $table->cell (l_node_t($node_id,$hostname)); $peers->cell ($table,$peer_id); - //$table->cell (topdomain($hostname)); + + //prefetch some columns $node['domain'] = topdomain($hostname); - //$table->cell (l_site_t($site_id,$login_base)); $node['sitename'] = l_site_t($site_id,$login_base); - //$table->cell (l_interface_t($interface_id,$ip),array('only-if'=> !$peer_id)); - $node['ipaddress'] = l_interface_t($interface_id,$ip); + if ($interface_id) + $node['ipaddress'] = l_interface_t($interface_id,$ip); + else + $node['ipaddress'] = "n/a"; + list($label,$class) = Node::status_label_class_($node); $table->cell ($label,array('class'=>$class)); + $table->cell( ($node['node_type']=='reservable')?reservable_mark():"" ); //$table->cell (count($node['slice_ids'])); //foreach ($visiblecolumns as $tagname) $table->cell($node[$tagname]); $ConfigureColumns->cells($table, $node); @@ -358,6 +418,7 @@ foreach ($nodes as $node) { $table->end(); $nifty->end(); + //plekit_linetabs ($tabs,"bottom"); // Print footer