getClusterName(); $view = $httpvars->getHttpVar( "view" ); $filter = array(); if( !isset($view) ) $view = "overview"; if( !isset($sortorder) ) $sortorder = "asc"; if( !isset($sortby) ) $sortby = "id"; if( isset($queue) && ($queue!='')) $filter[queue]=$queue; if( isset($state) && ($state!='')) $filter[state]=$state; if( isset($user) && ($user!='')) $filter[user]=$user; if( isset($id) && ($id!='')) $filter[id]=$id; function makeHeader() { global $tpl, $grid, $context, $initgrid; global $jobrange, $jobstart, $title; global $page, $gridwalk, $clustername; global $parentgrid, $physical, $hostname; global $self, $filter, $cluster_url, $get_metric_string; global $metrics, $reports, $m, $default_metric; global $default_refresh; if( isset($default_metric) and !isset($m) ) $metricname = $default_metric; else if( isset( $m ) ) $metricname = $m; else $metricname = "load_one"; $header = "header"; # Maintain our path through the grid tree. $me = $self . "@" . $grid[$self][AUTHORITY]; $gridstack = array(); $gridstack[] = $me; if ($gridwalk=="fwd") { # push our info on gridstack, format is "name@url>name2@url". if (end($gridstack) != $me) { $gridstack[] = $me; } } else if ($gridwalk=="back") { # pop a single grid off stack. if (end($gridstack) != $me) { array_pop($gridstack); } } $gridstack_str = join(">", $gridstack); $gridstack_url = rawurlencode($gridstack_str); if ($initgrid or $gridwalk) { # Use cookie so we dont have to pass gridstack around within this site. # Cookie values are automatically urlencoded. Expires in a day. setcookie("gs", $gridstack_str, time() + 86400); } # Invariant: back pointer is second-to-last element of gridstack. Grid stack never # has duplicate entries. list($parentgrid, $parentlink) = explode("@", $gridstack[count($gridstack)-2]); # Setup a redirect to a remote server if you choose a grid from pulldown menu. Tell # destination server that we're walking foward in the grid tree. if (strstr($clustername, "http://")) { $tpl->assign("refresh", "0"); $tpl->assign("redirect", ";URL=$clustername?gw=fwd&gs=$gridstack_url"); echo "

Redirecting, please wait...

"; $tpl->printToScreen(); exit; } $tpl->assign( "refresh", $default_refresh ); $tpl->assign( "date", date("r") ); $tpl->assign( "page_title", $title ); # The page to go to when "Get Fresh Data" is pressed. $tpl->assign("page","./"); # Templated Logo image $tpl->assign("images","./templates/$template_name/images"); # # Used when making graphs via graph.php. Included in most URLs # $sort_url=rawurlencode($sort); $get_metric_string = "m=$metric&r=$range&s=$sort_url&hc=$hostcols"; if ($jobrange and $jobstart) $get_metric_string .= "&jr=$jobrange&js=$jobstart"; # Set the Alternate view link. $cluster_url=rawurlencode($clustername); $node_url=rawurlencode($hostname); # Make some information available to templates. $tpl->assign("cluster_url", $cluster_url); # Build the node_menu $node_menu = ""; if ($parentgrid) { $node_menu .= "$parentgrid $meta_designator "; $node_menu .= ">\n"; } # Show grid. $mygrid = ($self == "unspecified") ? "" : $self; $node_menu .= "$mygrid $meta_designator "; $node_menu .= ">\n"; if ($physical) $node_menu .= hiddenvar("p", $physical); if ( $clustername ) { $url = rawurlencode($clustername); $node_menu .= "$clustername "; $node_menu .= ">\n"; $node_menu .= hiddenvar("c", $clustername); } if (!count($metrics)) { echo "

Cannot find any metrics for selected cluster \"$clustername\", exiting.

\n"; echo "Check ganglia XML tree (telnet $ganglia_ip $ganglia_port)\n"; exit; } $firsthost = key($metrics); foreach ($metrics[$firsthost] as $m => $foo) $context_metrics[] = $m; foreach ($reports as $r => $foo) $context_metrics[] = $r; $node_menu .= "Joblist "; if( count( $filter ) > 0 ) { foreach( $filter as $filtername => $filterval ) { $node_menu .= ">\n"; $node_menu .= "$filtername- $filterval "; } } $tpl->assign("node_menu", $node_menu); if( array_key_exists( "id", $filter ) ) { if (is_array($context_metrics) ) { $metric_menu = "Metric  " ."