You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2010/12/22 19:06:47 UTC
svn commit: r1052017 - /incubator/vcl/trunk/web/.ht-inc/vm.php
Author: jfthomps
Date: Wed Dec 22 18:06:47 2010
New Revision: 1052017
URL: http://svn.apache.org/viewvc?rev=1052017&view=rev
Log:
VCL-152
problem removing vm from vmhost when vm in reloading state without a reservation
modified AJvmFromHost: reworked code so that it doesn't use computer states, but does things based on whether or not there is a reservation for the computer
Modified:
incubator/vcl/trunk/web/.ht-inc/vm.php
Modified: incubator/vcl/trunk/web/.ht-inc/vm.php
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/vm.php?rev=1052017&r1=1052016&r2=1052017&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/vm.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/vm.php Wed Dec 22 18:06:47 2010
@@ -578,10 +578,26 @@ function AJvmFromHost() {
continue;
}
# try to remove reservations off of computer
- if(($compdata[$compid]['state'] == 'available' ||
- $compdata[$compid]['state'] == 'maintenance' ||
- $compdata[$compid]['state'] == 'failed') &&
- moveReservationsOffComputer($compid)) {
+ moveReservationsOffComputer($compid);
+
+ # check for unmovable or active reservations
+ $query = "SELECT DATE_FORMAT(rq.end, '%l:%i%p %c/%e/%y') AS end, "
+ . "rq.end AS end2 "
+ . "FROM request rq, "
+ . "reservation rs "
+ . "WHERE rs.requestid = rq.id AND "
+ . "rs.computerid = $compid AND "
+ . "rq.stateid NOT IN (1,5,12) "
+ . "ORDER BY end DESC "
+ . "LIMIT 1";
+ $qh = doQuery($query, 101);
+ if($row = mysql_fetch_assoc($qh)) {
+ $checks[] = array('id' => $compid,
+ 'hostname' => $compdata[$compid]['hostname'],
+ 'end' => strtolower($row['end']),
+ 'end2' => $row['end2']);
+ }
+ else {
// if no reservations on computer, submit reload
# reservation so vm gets stopped on host
$reqid = simpleAddRequest($compid, $imageid, $imagerevisionid, $start, $end, 18, $vclreloadid);
@@ -597,28 +613,6 @@ function AJvmFromHost() {
'time' => 'immediately');
}
}
- else {
- # existing reservation on computer, find end time and prompt user
- # if ok to wait until then to move it
- $query = "SELECT DATE_FORMAT(rq.end, '%l:%i%p %c/%e/%y') AS end, "
- . "rq.end AS end2 "
- . "FROM request rq, "
- . "reservation rs "
- . "WHERE rs.requestid = rq.id AND "
- . "rs.computerid = $compid AND "
- . "rq.stateid NOT IN (1,5,12) "
- . "ORDER BY end DESC "
- . "LIMIT 1";
- $qh = doQuery($query, 101);
- if($row = mysql_fetch_assoc($qh)) {
- $checks[] = array('id' => $compid,
- 'hostname' => $compdata[$compid]['hostname'],
- 'end' => strtolower($row['end']),
- 'end2' => $row['end2']);
- }
- else
- $rems[] = array('id' => $compid);
- }
}
if(count($checks))
$cont = addContinuationsEntry('AJvmFromHostDelayed', $checks, 120, 1, 0);