- Timestamp:
- 06/02/05 15:12:32 (18 years ago)
- Location:
- trunk/web/addons/toga
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/web/addons/toga/image.php
r122 r124 10 10 $clustername = $httpvars->getClusterName(); 11 11 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';12 if( isset($id) && ($id!='')) $filter[id]=$id; 13 if( isset($state) && ($state!='')) $filter[state]=$state; 14 if( isset($user) && ($user!='')) $filter[user]=$user; 15 if( isset($queue) && ($queue!='')) $filter[queue]=$queue; 16 16 17 17 function drawSmallClusterImage() { … … 23 23 function drawBigClusterImage() { 24 24 25 global $filter , $queue, $id, $user;25 global $filter; 26 26 27 27 $ic = new ClusterImage( $clustername ); 28 switch( $filter ) { 28 foreach( $filter as $filtername=>$filtervalue ) { 29 //printf("filter %s,%s\n", $filtername, $filtervalue); 30 switch( $filtername ) { 29 31 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 } 41 47 } 42 48 $ic->draw(); -
trunk/web/addons/toga/index.php
r122 r124 24 24 if( !isset($sortorder) ) $sortorder = "asc"; 25 25 if( !isset($sortby) ) $sortby = "id"; 26 if( isset($ id) && ($id!='')) $filter[id]=$id;26 if( isset($queue) && ($queue!='')) $filter[queue]=$queue; 27 27 if( isset($state) && ($state!='')) $filter[state]=$state; 28 28 if( isset($user) && ($user!='')) $filter[user]=$user; 29 if( isset($ queue) && ($queue!='')) $filter[queue]=$queue;29 if( isset($id) && ($id!='')) $filter[id]=$id; 30 30 31 31 function makeHeader() { -
trunk/web/addons/toga/libtoga.php
r122 r124 156 156 } 157 157 158 function getCpus() { 159 $handler = $this->xmlhandler; 160 return $handler->getCpus(); 161 } 162 158 163 function getJobs() { 159 164 $handler = $this->xmlhandler; … … 176 181 $nodes = array(); 177 182 $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 } 178 197 } 179 198 … … 485 504 486 505 var $dataget, $image, $clustername; 487 var $filtername, $filter value;506 var $filtername, $filters; 488 507 489 508 function ClusterImage( $clustername ) { … … 491 510 $this->dataget = new DataGatherer(); 492 511 $this->clustername = $clustername; 493 $this->filtername = null; 494 $this->filtervalue = null; 512 $this->filters = array(); 495 513 } 496 514 497 515 function setFilter( $filtername, $filtervalue ) { 498 516 517 //printf("filter %s = %s\n", $filtername, $filtervalue ); 499 518 //printf( "filter set to %s = %s\n", $filtername, $filtervalue ); 500 $this->filter name = $filtername;501 $this->filtervalue = $filtervalue;519 $this->filters[$filtername] = $filtervalue; 520 //print_r($this->filters); 502 521 } 503 522 … … 508 527 foreach( $nodes as $node ) { 509 528 510 $mynjobs = $node->getJobs();511 529 $hostname = $node->getHostname(); 512 530 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 ) 521 565 $filtered_nodes[] = $hostname; 522 566 } … … 526 570 527 571 function draw() { 572 573 //printf("stopt met uitvoer"); 574 //return; 528 575 529 576 global $SMALL_CLUSTERIMAGE_MAXWIDTH, $SMALL_CLUSTERIMAGE_NODEWIDTH; -
trunk/web/addons/toga/overview.php
r123 r124 12 12 $jobs = $data_gatherer->getJobs(); 13 13 $nodes = $data_gatherer->getNodes(); 14 $cpus = $data_gatherer->getCpus(); 14 15 15 16 $filter_image_url = ""; … … 22 23 $tpl->assign( "clusterimage", "./image.php?c=".rawurlencode($clustername)."&view=big-clusterimage".$filter_image_url ); 23 24 24 $tpl->assign("heartbeat", makeDate( $heartbeat ) ); 25 26 $pie = drawPie(); 25 26 $pie = drawClusterPie(); 27 27 $tpl->assign("pie", $pie ); 28 28 … … 170 170 } 171 171 172 function drawPie() { 172 173 174 function drawClusterPie() { 173 175 174 176 global $jobs, $nodes; 175 177 176 $pie_args = "title=" . rawurlencode("Cluster Jobload");178 $pie_args = "title=" . rawurlencode("Cluster queue usage"); 177 179 $pie_args .= "&size=250x150"; 178 180 … … 333 335 $even = 1; 334 336 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 335 344 foreach( $sorted_jobs as $jobid => $sortdec ) { 336 345 337 346 $report_time = $jobs[$jobid][reported]; 338 347 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 339 354 if( $report_time == $heartbeat ) { 340 355 341 if( count( $filter ) == 0 ) 342 $display_job = 1; 343 else 344 $display_job = 0; 356 $display_job = 1; 345 357 346 358 foreach( $filter as $filtername=>$filtervalue ) { 347 359 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; 356 368 } 357 369 358 370 if( $display_job ) { 371 359 372 360 373 $tpl->newBlock("node"); … … 374 387 $start_time = (int) $jobs[$jobid][start_timestamp]; 375 388 389 $f_cpus = $f_cpus + $cpus; 390 $f_jobs++; 391 376 392 if( $even ) { 377 393 … … 393 409 } 394 410 } 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 ); 395 419 } 396 420 ?> -
trunk/web/addons/toga/templates/overview.tpl
r122 r124 6 6 <TD ALIGN="CENTER"> 7 7 <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}. 9 10 </TD> 10 11 <TD ALIGN="CENTER"> … … 37 38 function setFilter( filtername, filterval ) { 38 39 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 = ''; 43 44 44 45 if( document.toga_form.elements[filtername] ) { … … 55 56 <INPUT TYPE="HIDDEN" NAME="sortorder" VALUE="{sortorder}"> 56 57 <INPUT TYPE="HIDDEN" NAME="c" VALUE="{clustername}"> 57 <INPUT TYPE="HIDDEN" NAME="id" VALUE="{f_id}">58 58 <INPUT TYPE="HIDDEN" NAME="queue" VALUE="{f_queue}"> 59 59 <INPUT TYPE="HIDDEN" NAME="state" VALUE="{f_state}"> 60 60 <INPUT TYPE="HIDDEN" NAME="user" VALUE="{f_user}"> 61 <INPUT TYPE="HIDDEN" NAME="id" VALUE="{f_id}"> 61 62 62 63 </FORM> … … 69 70 <TH><B><A HREF="#" onClick="setSort( 'queue' )">Queue</A></B></TH> 70 71 <TH><B><A HREF="#" onClick="setSort( 'name' )">Name</A></B></TH> 71 <TH><B><A HREF="#" onClick="setSort( 'req_cpu' )">Req uested CPU</A></B></TH>72 <TH><B><A HREF="#" onClick="setSort( 'req_mem' )">Req uestedMemory</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> 73 74 <TH><B><A HREF="#" onClick="setSort( 'nodes' )">Nodes</A>/<A HREF="#" onClick="setSort( 'cpus' )">Cpus</A></B></TH> 74 75 <TH><B><A HREF="#" onClick="setSort( 'start' )">Started</A></B></TH>
Note: See TracChangeset
for help on using the changeset viewer.