You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by fa...@apache.org on 2013/05/31 22:05:40 UTC

svn commit: r1488379 - /vcl/trunk/managementnode/lib/VCL/utils.pm

Author: fapeeler
Date: Fri May 31 20:05:40 2013
New Revision: 1488379

URL: http://svn.apache.org/r1488379
Log:
VCL-697

Fix for overwrite state issue.


Modified:
    vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1488379&r1=1488378&r2=1488379&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Fri May 31 20:05:40 2013
@@ -1518,7 +1518,8 @@ sub update_request_state {
 		UPDATE
 		request,
 		state state,
-		state laststate
+		state laststate,
+		state cstate
 		SET
 		request.stateid = state.id,
 		request.laststateid = laststate.id
@@ -1527,12 +1528,23 @@ sub update_request_state {
 		AND laststate.name = \'$laststate_name\'
 		AND request.id = $request_id
 		";
+
+      		# If input state_name is not pending. 
+      		# All other state changes must have the current state pending  
+      		if($state_name ne "pending") {
+         	  $update_statement .= "
+         	  AND request.stateid = cstate.id
+         	  AND cstate.name = 'pending'      
+         	  ";
+          	}
+
 	} ## end if (defined $laststate_name && $laststate_name...
 	else {
 		$update_statement = "
 		UPDATE
 		request,
-		state state
+		state state,
+		state cstate
 		SET
 		request.stateid = state.id
 		WHERE
@@ -1540,6 +1552,15 @@ sub update_request_state {
 		AND request.id = $request_id
 		";
 
+      		# If input state_name is not pending. 
+      		# All other state changes must have the current state pending  
+      		if($state_name ne "pending") {
+         	  $update_statement .= "
+         	  AND request.stateid = cstate.id
+         	  AND cstate.name = 'pending'      
+         	  ";
+          	}
+
 		$laststate_name = 'unchanged';
 	} ## end else [ if (defined $laststate_name && $laststate_name...