Changeset 124 for trunk/web/addons


Ignore:
Timestamp:
06/02/05 15:12:32 (19 years ago)
Author:
bastiaans
Message:

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

  • Setup javascript for multiple filters
  • Cosmetic updates

web/addons/toga/index.php:

  • Rearranged filter order

web/addons/toga/overview.php:

  • Changed for multiple filters
  • Cosmetic updates

web/addons/toga/image.php:

  • Changed for multiple filters

web/addons/toga/libtoga.php:

  • Changed filterNodes() for multiple filters
Location:
trunk/web/addons/toga
Files:
5 edited

Legend:

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

    r122 r124  
    1010$clustername = $httpvars->getClusterName();
    1111
    12 if( isset($id) && ($id!='')) $filter = 'id';
    13 else if( isset($state) && ($state!='')) $filter='state';
    14 else if( isset($user) && ($user!='')) $filter='user';
    15 else if( isset($queue) && ($queue!='')) $filter='queue';
     12if( isset($id) && ($id!='')) $filter[id]=$id;
     13if( isset($state) && ($state!='')) $filter[state]=$state;
     14if( isset($user) && ($user!='')) $filter[user]=$user;
     15if( isset($queue) && ($queue!='')) $filter[queue]=$queue;
    1616
    1717function drawSmallClusterImage() {
     
    2323function drawBigClusterImage() {
    2424
    25         global $filter, $queue, $id, $user;
     25        global $filter;
    2626
    2727        $ic = new ClusterImage( $clustername );
    28         switch( $filter ) {
     28        foreach( $filter as $filtername=>$filtervalue ) {
     29                //printf("filter %s,%s\n", $filtername, $filtervalue);
     30                switch( $filtername ) {
    2931
    30                 case "id":
    31                         $ic->setFilter( 'jobid', $id );
    32                         break;
    33                 case "user":
    34                         $ic->setFilter( 'owner', $user);
    35                         break;
    36                 case "queue":
    37                         $ic->setFilter( 'queue', $queue);
    38                         break;
    39                 default:
    40                         break;
     32                        case "id":
     33                                $ic->setFilter( 'jobid', $filtervalue );
     34                                break;
     35                        case "user":
     36                                $ic->setFilter( 'owner', $filtervalue);
     37                                break;
     38                        case "queue":
     39                                $ic->setFilter( 'queue', $filtervalue);
     40                                break;
     41                        case "state":
     42                                $ic->setFilter( 'status', $filtervalue);
     43                                break;
     44                        default:
     45                                break;
     46                }
    4147        }
    4248        $ic->draw();
  • trunk/web/addons/toga/index.php

    r122 r124  
    2424if( !isset($sortorder) ) $sortorder = "asc";
    2525if( !isset($sortby) ) $sortby = "id";
    26 if( isset($id) && ($id!='')) $filter[id]=$id;
     26if( isset($queue) && ($queue!='')) $filter[queue]=$queue;
    2727if( isset($state) && ($state!='')) $filter[state]=$state;
    2828if( isset($user) && ($user!='')) $filter[user]=$user;
    29 if( isset($queue) && ($queue!='')) $filter[queue]=$queue;
     29if( isset($id) && ($id!='')) $filter[id]=$id;
    3030
    3131function makeHeader() {
  • trunk/web/addons/toga/libtoga.php

    r122 r124  
    156156        }
    157157
     158        function getCpus() {
     159                $handler = $this->xmlhandler;
     160                return $handler->getCpus();
     161        }
     162
    158163        function getJobs() {
    159164                $handler = $this->xmlhandler;
     
    176181                $nodes = array();
    177182                $heartbeat = array();
     183        }
     184
     185        function getCpus() {
     186
     187                $cpus = 0;
     188
     189                foreach( $this->jobs as $jobid=>$jobattrs ) {
     190
     191                        $nodes = count( $jobattrs[nodes] );
     192                        $ppn = (int) $jobattrs[ppn] ? $jobattrs[ppn] : 1;
     193                        $mycpus = $nodes * $ppn;
     194
     195                        $cpus = $cpus + $mycpus;
     196                }
    178197        }
    179198
     
    485504
    486505        var $dataget, $image, $clustername;
    487         var $filtername, $filtervalue;
     506        var $filtername, $filters;
    488507
    489508        function ClusterImage( $clustername ) {
     
    491510                $this->dataget = new DataGatherer();
    492511                $this->clustername = $clustername;
    493                 $this->filtername = null;
    494                 $this->filtervalue = null;
     512                $this->filters = array();
    495513        }
    496514
    497515        function setFilter( $filtername, $filtervalue ) {
    498516
     517                //printf("filter %s = %s\n", $filtername, $filtervalue );
    499518                //printf( "filter set to %s = %s\n", $filtername, $filtervalue );
    500                 $this->filtername = $filtername;
    501                 $this->filtervalue = $filtervalue;
     519                $this->filters[$filtername] = $filtervalue;
     520                //print_r($this->filters);
    502521        }
    503522
     
    508527                foreach( $nodes as $node ) {
    509528
    510                         $mynjobs = $node->getJobs();
    511529                        $hostname = $node->getHostname();
    512530
    513                         if( $this->filtername ) {
    514                                 foreach( $mynjobs as $myjob )
    515 
    516                                         if( $this->filtername == 'jobid' && $node->hasJob( $this->filtervalue) )
    517                                                 $filtered_nodes[] = $hostname;
    518                                         else if( $jobs[$myjob][$this->filtername] == $this->filtervalue  && !in_array( $hostname, $filtered_nodes  ) )
    519                                                 $filtered_nodes[] = $hostname;
    520                         } else
     531                        $addhost = 1;
     532
     533                        if( count( $this->filters ) > 0 ) {
     534
     535                                $mynjobs = $node->getJobs();
     536
     537                                if( count( $mynjobs ) > 0 ) {
     538
     539                                        foreach( $mynjobs as $myjob ) {
     540
     541                                                foreach( $this->filters as $filtername => $filtervalue ) {
     542
     543                                                        //printf("filter bla %s = %s\n", $filtername,$filtervalue );
     544
     545                                                        if( $filtername!=null && $filtername!='' ) {
     546
     547                                                                if( $filtername == 'jobid' && !$node->hasJob( $filtervalue) ) {
     548                                                                        $addhost = 0;
     549                                                                        //printf("host %s has no job %s\n", $hostname, $filtervalue);
     550                                                                } else if( $filtername != 'jobid' ) {
     551                                                                        //printf("myjob is %s\n", $myjob );
     552                                                                        if( $jobs[$myjob][$filtername] != $filtervalue ) {
     553                                                                                //printf("host %s has no job with %s=%s\n", $hostname, $filtername, $filtervalue);
     554                                                                                $addhost = 0;
     555                                                                        }
     556                                                                }
     557                                                        }
     558                                                }
     559                                        }
     560                                } else
     561                                        $addhost = 0;
     562                        }
     563
     564                        if( $addhost )
    521565                                $filtered_nodes[] = $hostname;
    522566                }
     
    526570
    527571        function draw() {
     572
     573                //printf("stopt met uitvoer");
     574                //return;
    528575
    529576                global $SMALL_CLUSTERIMAGE_MAXWIDTH, $SMALL_CLUSTERIMAGE_NODEWIDTH;
  • trunk/web/addons/toga/overview.php

    r123 r124  
    1212$jobs = $data_gatherer->getJobs();
    1313$nodes = $data_gatherer->getNodes();
     14$cpus = $data_gatherer->getCpus();
    1415
    1516$filter_image_url = "";
     
    2223$tpl->assign( "clusterimage", "./image.php?c=".rawurlencode($clustername)."&view=big-clusterimage".$filter_image_url );
    2324
    24 $tpl->assign("heartbeat", makeDate( $heartbeat ) );
    25 
    26 $pie = drawPie();
     25
     26$pie = drawClusterPie();
    2727$tpl->assign("pie", $pie );
    2828
     
    170170}
    171171
    172 function drawPie() {
     172
     173
     174function drawClusterPie() {
    173175
    174176        global $jobs, $nodes;
    175177
    176         $pie_args = "title=" . rawurlencode("Cluster Jobload");
     178        $pie_args = "title=" . rawurlencode("Cluster queue usage");
    177179        $pie_args .= "&size=250x150";
    178180
     
    333335        $even = 1;
    334336
     337        $overview_jobs = count( $sorted_jobs );
     338        $overview_nodes = count( $nodes );
     339        $overview_cpus = 0;
     340
     341        $f_cpus = 0;
     342        $f_jobs = 0;
     343
    335344        foreach( $sorted_jobs as $jobid => $sortdec ) {
    336345
    337346                $report_time = $jobs[$jobid][reported];
    338347
     348                $nodes = count( $jobs[$jobid][nodes] );
     349                $ppn = (int) $jobs[$jobid][ppn] ? $jobs[$jobid][ppn] : 1;
     350                $cpus = $nodes * $ppn;
     351
     352                $overview_cpus = $overview_cpus + $cpus;
     353
    339354                if( $report_time == $heartbeat ) {
    340355
    341                         if( count( $filter ) == 0 )
    342                                 $display_job = 1;
    343                         else
    344                                 $display_job = 0;
     356                        $display_job = 1;
    345357
    346358                        foreach( $filter as $filtername=>$filtervalue ) {
    347359
    348                                 if( $filtername == 'id' && $jobid == $filtervalue )
    349                                         $display_job = 1;
    350                                 else if( $filtername == 'state' && $jobs[$jobid][status] == $filtervalue )
    351                                         $display_job = 1;
    352                                 else if( $filtername == 'queue' && $jobs[$jobid][queue] == $filtervalue )
    353                                         $display_job = 1;
    354                                 else if( $filtername == 'user' && $jobs[$jobid][owner] == $filtervalue )
    355                                         $display_job = 1;
     360                                if( $filtername == 'id' && $jobid != $filtervalue )
     361                                        $display_job = 0;
     362                                else if( $filtername == 'state' && $jobs[$jobid][status] != $filtervalue )
     363                                        $display_job = 0;
     364                                else if( $filtername == 'queue' && $jobs[$jobid][queue] != $filtervalue )
     365                                        $display_job = 0;
     366                                else if( $filtername == 'user' && $jobs[$jobid][owner] != $filtervalue )
     367                                        $display_job = 0;
    356368                        }
    357369
    358370                        if( $display_job ) {
     371
    359372
    360373                                $tpl->newBlock("node");
     
    374387                                $start_time = (int) $jobs[$jobid][start_timestamp];
    375388
     389                                $f_cpus = $f_cpus + $cpus;
     390                                $f_jobs++;
     391
    376392                                if( $even ) {
    377393
     
    393409                }
    394410        }
     411
     412        $tpl->assignGlobal("cpus_nr", $overview_cpus );
     413        $tpl->assignGlobal("jobs_nr", $overview_jobs );
     414        $tpl->assignGlobal("nodes_nr", $overview_nodes );
     415        $tpl->assignGlobal("report_time", makeDate( $heartbeat));
     416       
     417        $tpl->assignGlobal("f_cpus_nr", $f_cpus );
     418        $tpl->assignGlobal("f_jobs_nr", $f_jobs );
    395419}
    396420?>
  • trunk/web/addons/toga/templates/overview.tpl

    r122 r124  
    66  <TD ALIGN="CENTER">
    77    <IMG SRC="{clusterimage}"><BR>
    8     reported: {heartbeat}
     8    {nodes_nr} nodes total: {jobs_nr} jobs with {cpus_nr} CPU's (at {report_time}).<BR>
     9    current view: {f_jobs_nr} jobs with {f_cpus_nr} CPU's{lag_msg}.
    910  </TD>
    1011  <TD ALIGN="CENTER">
     
    3738        function setFilter( filtername, filterval ) {
    3839
    39                 document.toga_form.id.value = '';
    40                 document.toga_form.queue.value = '';
    41                 document.toga_form.state.value = '';
    42                 document.toga_form.user.value = '';
     40                //document.toga_form.id.value = '';
     41                //document.toga_form.queue.value = '';
     42                //document.toga_form.state.value = '';
     43                //document.toga_form.user.value = '';
    4344
    4445                if( document.toga_form.elements[filtername] ) {
     
    5556<INPUT TYPE="HIDDEN" NAME="sortorder" VALUE="{sortorder}">
    5657<INPUT TYPE="HIDDEN" NAME="c" VALUE="{clustername}">
    57 <INPUT TYPE="HIDDEN" NAME="id" VALUE="{f_id}">
    5858<INPUT TYPE="HIDDEN" NAME="queue" VALUE="{f_queue}">
    5959<INPUT TYPE="HIDDEN" NAME="state" VALUE="{f_state}">
    6060<INPUT TYPE="HIDDEN" NAME="user" VALUE="{f_user}">
     61<INPUT TYPE="HIDDEN" NAME="id" VALUE="{f_id}">
    6162
    6263</FORM>
     
    6970<TH><B><A HREF="#" onClick="setSort( 'queue' )">Queue</A></B></TH>
    7071<TH><B><A HREF="#" onClick="setSort( 'name' )">Name</A></B></TH>
    71 <TH><B><A HREF="#" onClick="setSort( 'req_cpu' )">Requested CPU</A></B></TH>
    72 <TH><B><A HREF="#" onClick="setSort( 'req_mem' )">Requested Memory</A></B></TH>
     72<TH><B><A HREF="#" onClick="setSort( 'req_cpu' )">Req. CPU time</A></B></TH>
     73<TH><B><A HREF="#" onClick="setSort( 'req_mem' )">Req. Memory</A></B></TH>
    7374<TH><B><A HREF="#" onClick="setSort( 'nodes' )">Nodes</A>/<A HREF="#" onClick="setSort( 'cpus' )">Cpus</A></B></TH>
    7475<TH><B><A HREF="#" onClick="setSort( 'start' )">Started</A></B></TH>
Note: See TracChangeset for help on using the changeset viewer.