Author: jfthomps
Date: Wed Aug 31 20:42:23 2016
New Revision: 1758683

URL: http://svn.apache.org/viewvc?rev=1758683&view=rev
Log:
VCL-846 - Improve flow of handling nodes for deleted reservations assigned to 
new reservations

utils.php:
-modified isAvailable: changed set of ignored states when getting a list of 
computers for an immediate (now) reservation from 
'reloading,reload,timeout,inuse' to 'timeout,inuse'; changed set of states for 
determing reserved computers from 'deleted,failed,complete' to 
'failed,complete,reload,pending/reload'
-modified getSemaphore: changed set of states checked to see if another process 
allocated the same computer from '1,5,12' to '5,12,19,14/19'

Modified:
    vcl/trunk/web/.ht-inc/utils.php

Modified: vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1758683&r1=1758682&r2=1758683&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Wed Aug 31 20:42:23 2016
@@ -4128,7 +4128,9 @@ function isAvailable($images, $imageid,
        $vmhostcheckdone = 0;
        $ignorestates = "'maintenance','vmhostinuse','hpc','failed'";
        if($now)
-               $ignorestates .= ",'reloading','reload','timeout','inuse'";
+               # computers from reservations with a user directed reinstall 
will be in
+               #   the reloading state, but they will be removed from the list 
later on
+               $ignorestates .= ",'timeout','inuse'";
 
        foreach($requestInfo["images"] as $key => $imageid) {
                # check for max concurrent usage of image
@@ -4341,7 +4343,8 @@ function isAvailable($images, $imageid,
                       .       "'$endstamp' > rq.start AND "
                       .       "rq.id != $requestid AND "
                       .       "rs.requestid = rq.id AND "
-                      .       "rq.stateid NOT IN (1, 5, 12)"; # deleted, 
failed, complete
+                      .       "rq.stateid NOT IN (5, 12, 19) AND " # failed, 
complete, reload
+                      .       "(rq.stateid != 14 OR rq.laststateid != 19)"; # 
pending/reload
                $qh = doQuery($query, 130);
                while($row = mysql_fetch_row($qh)) {
                        array_push($usedComputerids, $row[0]);
@@ -4840,7 +4843,8 @@ function getSemaphore($imageid, $imagere
                       .       "rs.computerid = $compid AND "
                       .       "rq.start < '$end' AND "
                       .       "rq.end > '$start' AND "
-                      .       "rq.stateid NOT IN (1, 5, 12)";
+                      .       "rq.stateid NOT IN (5, 12, 19) AND " # failed, 
complete, reload
+                      .       "(rq.stateid != 14 OR rq.laststateid != 19)"; # 
pending/reload
                if($requestid)
                        $query .= " AND rq.id != $requestid";
                $qh = doQuery($query);


Reply via email to