From fe38aeca013d49bb943566ddec86728e22ddb8de Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Thu, 31 Mar 2016 14:28:08 +0000
Subject: [PATCH] Task #8887: check claim status before setting task to
 scheduled/conflict

---
 SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
index 9503509e5a0..a2e8b59d227 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
@@ -148,10 +148,14 @@ class ResourceAssigner():
         main_needed = needed[str(otdb_id)]
         if self.checkResources(main_needed, available):
             task = self.radbrpc.getTask(taskId)
-            claimed, resourceIds = self.claimResources(main_needed, task)
+            claimed, claim_ids = self.claimResources(main_needed, task)
             if claimed:
                 self.radbrpc.updateTaskAndResourceClaims(taskId, claim_status='allocated')
-                self.radbrpc.updateTask(taskId, status='scheduled')
+                claims = self.radbrpc.getResourceClaims(task_id=taskId)
+                if len(claim_ids) == len([x for x in claims if x['status'] == 'allocated'):
+                    self.radbrpc.updateTask(taskId, status='scheduled')
+                else:
+                    self.radbrpc.updateTask(taskId, status='conflict')
             else:
                 self.radbrpc.updateTask(taskId, status='conflict')
 
-- 
GitLab