Changeset 537
- Timestamp:
- 07/10/08 21:53:57 (15 years ago)
- Location:
- trunk/web2/addons/job_monarch
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/web2/addons/job_monarch/jobstore.php
r536 r537 5 5 $cluster = $c; 6 6 7 // Supplied by ExtJS when DataStore has remoteSort: true 8 // 9 $sortfield = $_POST["sort"]; 10 $sortorder = $_POST["dir"]; // ASC or DESC 11 7 12 global $c, $clustername, $cluster; 8 13 14 // Grid Paging stuff 15 // 16 //$pstart = (int) (isset($_POST['start']) ? $_POST['start'] : $_GET['pstart']); 17 $pstart = (int) $_POST['start']; 18 //$pend = (int) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['plimit']); 19 $pend = (int) $_POST['limit']; 20 21 // Need to fool Ganglia here: or it won't parse XML for our cluster 22 // 9 23 $HTTP_POST_VARS["c"] = $c; 10 24 $_GET["c"] = $c; … … 16 30 $ds = new DataSource(); 17 31 $myxml_data = &$ds->getData(); 18 19 //printf( "d %s\n", strlen( $myxml_data ) );20 //return 0;21 32 22 33 global $jobs; … … 55 66 } 56 67 68 function sortJobs( $jobs, $sortby, $sortorder ) 69 { 70 $sorted = array(); 71 72 $cmp = create_function( '$a, $b', 73 "global \$sortby, \$sortorder;". 74 75 "if( \$a == \$b ) return 0;". 76 77 "if (\$sortorder==\"DESC\")". 78 "return ( \$a < \$b ) ? 1 : -1;". 79 "else if (\$sortorder==\"ASC\")". 80 "return ( \$a > \$b ) ? 1 : -1;" ); 81 82 if( isset( $jobs ) && count( $jobs ) > 0 ) 83 { 84 foreach( $jobs as $jobid => $jobattrs ) 85 { 86 $state = $jobattrs[status]; 87 $user = $jobattrs[owner]; 88 $queue = $jobattrs[queue]; 89 $name = $jobattrs[name]; 90 $req_cpu = $jobattrs[requested_time]; 91 $req_memory = $jobattrs[requested_memory]; 92 93 if( $state == 'R' ) 94 { 95 $nodes = count( $jobattrs[nodes] ); 96 } 97 else 98 { 99 $nodes = $jobattrs[nodes]; 100 } 101 102 $ppn = (int) $jobattrs[ppn] ? $jobattrs[ppn] : 1; 103 $cpus = $nodes * $ppn; 104 $queued_time = (int) $jobattrs[queued_timestamp]; 105 $start_time = (int) $jobattrs[start_timestamp]; 106 $runningtime = $report_time - $start_time; 107 108 switch( $sortby ) 109 { 110 case "jid": 111 $sorted[$jobid] = $jobid; 112 break; 113 114 case "status": 115 $sorted[$jobid] = $state; 116 break; 117 118 case "owner": 119 $sorted[$jobid] = $user; 120 break; 121 122 case "queue": 123 $sorted[$jobid] = $queue; 124 break; 125 126 case "name": 127 $sorted[$jobid] = $name; 128 break; 129 130 case "requested_time": 131 $sorted[$jobid] = timeToEpoch( $req_cpu ); 132 break; 133 134 case "requested_memory": 135 $sorted[$jobid] = $req_memory; 136 break; 137 138 case "ppn": 139 $sorted[$jobid] = $ppn; 140 break; 141 case "nodesct": 142 $sorted[$jobid] = $nodes; 143 break; 144 case "cpus": 145 $sorted[$jobid] = $cpus; 146 break; 147 148 case "queued_timestamp": 149 $sorted[$jobid] = $queued_time; 150 break; 151 152 case "start_timestamp": 153 $sorted[$jobid] = $start_time; 154 break; 155 156 case "runningtime": 157 $sorted[$jobid] = $runningtime; 158 break; 159 160 default: 161 break; 162 } 163 } 164 } 165 166 if( $sortorder == "ASC" ) 167 { 168 asort( $sorted ); 169 } 170 else if( $sortorder == "DESC" ) 171 { 172 arsort( $sorted ); 173 } 174 175 return $sorted; 176 } 177 178 179 57 180 function getList() 58 181 { 59 global $jobs, $hearbeat; 182 global $jobs, $hearbeat, $pstart, $pend; 183 global $sortfield, $sortorder; 60 184 61 185 $job_count = count( $jobs ); … … 69 193 $jobresults = array(); 70 194 71 foreach( $jobs as $jobid => $jobattrs ) 195 $cur_job = 0; 196 197 198 // sorteer jobs op sortorder en sortfield 199 200 //if( $pstart > 0 ) { 201 //echo $pstart; 202 //echo $pend; } 203 204 205 $sorted_jobs = sortJobs( $jobs, $sortfield, $sortorder ); 206 207 $result_count = count( $sorted_jobs ); 208 209 foreach( $sorted_jobs as $jobid => $jobattrs ) 72 210 { 73 211 //if( $jobattrs['reported'] != $heartbeat ) … … 76 214 //} 77 215 216 if( ( $cur_job < $pstart ) || ( ($cur_job - $pstart) >= $pend ) ) 217 { 218 $cur_job = $cur_job + 1; 219 continue; 220 } 221 78 222 $jr['jid'] = strval( $jobid ); 79 $jr['status'] = $job attrs['status'];80 $jr['owner'] = $job attrs['owner'];81 $jr['queue'] = $job attrs['queue'];82 $jr['name'] = $job attrs['name'];83 $jr['requested_time'] = makeTime( timeToEpoch( $job attrs['requested_time'] ) );223 $jr['status'] = $jobs[$jobid]['status']; 224 $jr['owner'] = $jobs[$jobid]['owner']; 225 $jr['queue'] = $jobs[$jobid]['queue']; 226 $jr['name'] = $jobs[$jobid]['name']; 227 $jr['requested_time'] = makeTime( timeToEpoch( $jobs[$jobid]['requested_time'] ) ); 84 228 85 229 if( $jr['status'] == 'R' ) 86 230 { 87 $nodes = count( $job attrs[nodes] );231 $nodes = count( $jobs[$jobid][nodes] ); 88 232 } 89 233 else 90 234 { 91 $nodes = (int) $job attrs[nodes];92 } 93 94 $jr['ppn'] = strval( $job attrs[ppn] ? $jobattrs[ppn] : 1 );235 $nodes = (int) $jobs[$jobid][nodes]; 236 } 237 238 $jr['ppn'] = strval( $jobs[$jobid][ppn] ? $jobs[$jobid][ppn] : 1 ); 95 239 $jr['nodect'] = strval( $nodes ); 96 240 97 241 if( $jr['status'] == 'R' ) 98 242 { 99 $jr['nodes'] = implode( ",", $job attrs['nodes'] );243 $jr['nodes'] = implode( ",", $jobs[$jobid]['nodes'] ); 100 244 } 101 245 else … … 104 248 } 105 249 106 $jr['queued_timestamp'] = makeDate( $job attrs['queued_timestamp'] );107 $jr['start_timestamp'] = ($job attrs['start_timestamp'] ? makeDate( $jobattrs['start_timestamp'] ) : "");250 $jr['queued_timestamp'] = makeDate( $jobs[$jobid]['queued_timestamp'] ); 251 $jr['start_timestamp'] = ($jobs[$jobid]['start_timestamp'] ? makeDate( $jobs[$jobid]['start_timestamp'] ) : ""); 108 252 109 253 if( $jr['status'] == 'R' ) 110 254 { 111 $runningtime = (int) $job attrs['reported'] - (int) $jobattrs['start_timestamp'];255 $runningtime = (int) $jobs[$jobid]['reported'] - (int) $jobs[$jobid]['start_timestamp']; 112 256 $jr['runningtime'] = makeTime( $runningtime ); 113 257 } … … 116 260 $jr['runningtime'] = ""; 117 261 } 262 263 $cur_job = $cur_job + 1; 118 264 119 265 $jobresults[] = $jr; 120 266 } 121 267 122 123 //$results = array();124 125 //foreach( $jobresults as $resid => $jr )126 //{127 // $jr_count = 0;128 // $job_record = array();129 130 // foreach( $jr as $atrname => $atrval )131 // {132 // $job_record[$jr_count] = $atrval;133 // $job_record[$atrname] = $atrval;134 135 // $jr_count = $jr_count + 1;136 // }137 138 // $results[] = $job_record;139 //}140 141 268 $jsonresults = JEncode( $jobresults ); 142 269 143 echo '{"total":"'. count( $jobresults).'","results":'. $jsonresults .'}';270 echo '{"total":"'. $result_count .'","results":'. $jsonresults .'}'; 144 271 145 272 return 0; -
trunk/web2/addons/job_monarch/js/jobgrid.js
r536 r537 39 39 {name: 'runningtime', type: 'string', mapping: 'runningtime'} 40 40 ]), 41 sortInfo:{field: 'jid', direction: "ASC"} 41 sortInfo: {field: 'jid', direction: "ASC"}, 42 remoteSort: true 42 43 }); 43 44 … … 143 144 enableColLock:false, 144 145 clicksToEdit:1, 145 selModel: new Ext.grid.RowSelectionModel({singleSelect:false}) 146 selModel: new Ext.grid.RowSelectionModel({singleSelect:false}), 147 bbar: new Ext.PagingToolbar({ 148 pageSize: 30, 149 store: JobsDataStore, 150 displayInfo: true 151 }) 146 152 }); 147 153 … … 157 163 }); 158 164 } 159 //JobProxy.on('beforeload', function(p, params) {160 // params.c = "GINA Cluster";161 // });162 //debug();163 //JobsDataStore.load();164 //JobListingWindow.show(); -
trunk/web2/addons/job_monarch/templates/header.tpl
r536 r537 19 19 params.c = "{cluster}"; 20 20 }); 21 JobsDataStore.load( );21 JobsDataStore.load( {params: {start: 0, limit: 30}} ); 22 22 JobListingWindow.show(); 23 23 });
Note: See TracChangeset
for help on using the changeset viewer.