<?php

	require_once($_SERVER['DOCUMENT_ROOT'] ."/eclipse.org-common/system/app.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/menu/menu.class.php");

	#*****************************************************************************
	#
	# loadstats.php
	#
	# Author: 		M. Ward
	# Date:			2006-05-08
	#
	# Description: show the load stats for the last 24 hours on the servers.
	#
	#
	#
	#
	# HISTORY:
	#
	#****************************************************************************

    //set the default debug level nice and low
    define('DEBUG',0);
    define('BASEPATH','/home/data/common/monitor/loadstats/');

	$App = new App();
	$App->preventCaching();

	//connect to ldap
  $Session = $this->App->useSession('required');
  $Friend = $this->Session->getFriend();
  if (!$Friend->getIsCommitter()){
    header("HTTP/1.1 403 Forbidden");
    exit;
  }

	include "../html/header.php";
	$Menu = new Menu("en");
    include("../modules/menu.php");
	//var_dump(gd_info());

	//current date info
	$today=date('d');
	$month = date ('n');
	$year = date('Y');

    //now the main processing loop.
    //get all of the directory entries
    foreach( glob(BASEPATH . "*") as $server ){
      if ( DEBUG == 1)
        echo "Gathering data for $server \n\r ";
      //check that the name is acutally a dir. TRUE if it is
      if( is_dir( $server ) == TRUE ) {
        echo "<a href=\"showmonthstats.php?server=$server&month=$month&year=$year\"><img src='drawstats.php?server=$server&month=$month&year=$year'></a></br>";
      }
    }
    include "../html/footer.php";

?>
