Ignore:
Timestamp:
05/31/05 16:13:43 (19 years ago)
Author:
bastiaans
Message:

eb/addons/toga/templates/header.tpl:

  • Added closing </FORM>

web/addons/toga/templates/index.tpl:

  • Skeleton template for base page

web/addons/toga/templates/overview.tpl:

  • Added javascript and FORM to be able to sort joblist

web/addons/toga/index.php:

  • Changed to be basis for all
  • Will present a job/queue or overview based on arguments

web/addons/toga/overview.php:

  • Changed for new index skeleton
  • Will sort joblist now

web/addons/toga/libtoga.php, web/addons/toga/image.php:

  • Some fixes/cleanup for index skeleton
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/addons/toga/overview.php

    r116 r117  
    11<?php
    2 
    3 $my_dir = getcwd();
    4 
    5 include_once "./libtoga.php";
    6 
    7 global $GANGLIA_PATH;
    8 chdir( $GANGLIA_PATH );
    9 include_once "./class.TemplatePower.inc.php";
    10 chdir( $my_dir );
    11 
    12 $httpvars = new HTTPVariables( $HTTP_GET_VARS );
    13 $clustername = $httpvars->getClusterName();
    14 printf( "clustername = %s\n", $clustername );
    15 $queue_select = $httpvars->getHttpVar( "queue" );
    16 printf( "queue = %s\n", $queue );
     2global $GANGLIA_PATH, $clustername, $tpl;
    173
    184$data_gatherer = new DataGatherer();
    195
    20 $tpl = new TemplatePower("templates/overview.tpl");
    21 $tpl->prepare();
    22 
    23 $tpl->assign( "self", "./index.php" );
     6//$tpl->assign( "self", "./index.php" );
    247$tpl->assign( "clustername", $clustername );
    25 
    268$tpl->assign( "clusterimage", "./image.php?c=".rawurlencode($clustername)."&view=big-clusterimage" );
    279
    2810$data_gatherer->parseXML();
     11
    2912$heartbeat = $data_gatherer->getHeartbeat();
    3013$jobs = $data_gatherer->getJobs();
     
    214197}
    215198
    216 foreach( $jobs as $jobid => $jobattrs ) {
    217 
    218         $report_time = $jobattrs[reported];
    219 
    220         if( $report_time == $heartbeat ) {
    221 
    222                 $tpl->newBlock("node");
    223                 $tpl->assign( "clustername", $clustername );
    224                 $tpl->assign("id", $jobid );
    225                 $tpl->assign("state", $jobattrs[status] );
    226                 $tpl->assign("user", $jobattrs[owner] );
    227                 $tpl->assign("queue", $jobattrs[queue] );
    228                 $tpl->assign("name", $jobattrs[name] );
    229                 $tpl->assign("req_cpu", $jobattrs[requested_time] );
    230                 $tpl->assign("req_memory", $jobattrs[requested_memory] );
    231                 $nodes = count( $jobattrs[nodes] );
    232                 $ppn = (int) $jobattrs[ppn] ? $jobattrs[ppn] : 1;
    233                 $cpus = $nodes * $ppn;
    234                 $tpl->assign("nodes", $nodes );
    235                 $tpl->assign("cpus", $cpus );
    236                 $start_time = (int) $jobattrs[start_timestamp];
    237 
    238                 if( $start_time ) {
    239 
    240                         $runningtime = makeTime( $report_time - $start_time );
    241                         $tpl->assign("started", makeDate( $start_time ) );
    242                         $tpl->assign("runningtime", $runningtime );
     199
     200function sortJobs( $jobs, $sortby, $sortorder ) {
     201
     202        $sorted = array();
     203
     204        $cmp = create_function( '$a, $b',
     205                "global \$sortby, \$sortorder;".
     206
     207                "if( \$a == \$b ) return 0;".
     208
     209                "if (\$sortorder==\"desc\")".
     210                        "return ( \$a < \$b ) ? 1 : -1;".
     211                "else if (\$sortorder==\"asc\")".
     212                        "return ( \$a > \$b ) ? 1 : -1;" );
     213
     214        foreach( $jobs as $jobid => $jobattrs ) {
     215
     216                        $state = $jobattrs[status];
     217                        $user = $jobattrs[owner];
     218                        $queue = $jobattrs[queue];
     219                        $name = $jobattrs[name];
     220                        $req_cpu = $jobattrs[requested_time];
     221                        $req_memory = $jobattrs[requested_memory];
     222                        $nodes = count( $jobattrs[nodes] );
     223                        $ppn = (int) $jobattrs[ppn] ? $jobattrs[ppn] : 1;
     224                        $cpus = $nodes * $ppn;
     225                        $start_time = (int) $jobattrs[start_timestamp];
     226                        $runningtime = $report_time - $start_time;
     227
     228                        switch( $sortby ) {
     229                                case "id":
     230                                        $sorted[$jobid] = $jobid;
     231                                        break;
     232
     233                                case "state":
     234                                        $sorted[$jobid] = $state;
     235                                        break;
     236
     237                                case "user":
     238                                        $sorted[$jobid] = $user;
     239                                        break;
     240
     241                                case "queue":
     242                                        $sorted[$jobid] = $queue;
     243                                        break;
     244
     245                                case "name":
     246                                        $sorted[$jobid] = $name;
     247                                        break;
     248
     249                                case "req_cpu":
     250                                        $sorted[$jobid] = $req_cpu;
     251                                        break;
     252
     253                                case "req_mem":
     254                                        $sorted[$jobid] = $req_memory;
     255                                        break;
     256
     257                                case "nodes":
     258                                        $sorted[$jobid] = $nodes;
     259                                        break;
     260
     261                                case "cpus":
     262                                        $sorted[$jobid] = $cpus;
     263                                        break;
     264
     265                                case "start":
     266                                        $sorted[$jobid] = $start_time;
     267                                        break;
     268
     269                                case "runningtime":
     270                                        $sorted[$jobid] = $runningtime;
     271                                        break;
     272
     273                                default:
     274                                        break;
     275
     276                        }
     277        }
     278
     279        uasort( $sorted, $cmp );
     280
     281        return $sorted;
     282}
     283
     284function makeOverview() {
     285
     286        global $jobs, $nodes, $heartbeat, $clustername, $tpl;
     287        global $sortorder, $sortby;
     288
     289        $tpl->assign("sortorder", $sortorder );
     290        $tpl->assign("sortby", $sortby );
     291
     292
     293        $sorted_jobs = sortJobs( $jobs, $sortby, $sortorder );
     294
     295        foreach( $sorted_jobs as $jobid => $sortdec ) {
     296
     297                $report_time = $jobs[$jobid][reported];
     298
     299                if( $report_time == $heartbeat ) {
     300
     301                        $tpl->newBlock("node");
     302                        $tpl->assign( "clustername", $clustername );
     303                        $tpl->assign("id", $jobid );
     304                        $tpl->assign("state", $jobs[$jobid][status] );
     305                        $tpl->assign("user", $jobs[$jobid][owner] );
     306                        $tpl->assign("queue", $jobs[$jobid][queue] );
     307                        $tpl->assign("name", $jobs[$jobid][name] );
     308                        $tpl->assign("req_cpu", $jobs[$jobid][requested_time] );
     309                        $tpl->assign("req_memory", $jobs[$jobid][requested_memory] );
     310                        $nodes = count( $jobs[$jobid][nodes] );
     311                        $ppn = (int) $jobs[$jobid][ppn] ? $jobs[$jobid][ppn] : 1;
     312                        $cpus = $nodes * $ppn;
     313                        $tpl->assign("nodes", $nodes );
     314                        $tpl->assign("cpus", $cpus );
     315                        $start_time = (int) $jobs[$jobid][start_timestamp];
     316
     317                        if( $start_time ) {
     318
     319                                $runningtime = makeTime( $report_time - $start_time );
     320                                $tpl->assign("started", makeDate( $start_time ) );
     321                                $tpl->assign("runningtime", $runningtime );
     322                        }
    243323                }
    244324        }
    245325}
    246 
    247 $tpl->printToScreen();
    248 
    249326?>
Note: See TracChangeset for help on using the changeset viewer.