From 90de1dd06b9298e4e4ce27ca6659b1fd65528305 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 26 Aug 2016 13:28:08 +0000
Subject: [PATCH] Task #9607: move CEP4 pipelines way in the future to now

---
 .../ResourceAssigner/lib/schedulechecker.py          | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulechecker.py b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulechecker.py
index 007210019bd..26512725637 100644
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulechecker.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulechecker.py
@@ -39,8 +39,8 @@ logger = logging.getLogger(__name__)
 
 def movePipelineAfterItsPredecessors(task, radbrpc, min_start_timestamp=None):
     try:
-        #only reschedule pipelines which have resourceclaims and run on cep4
-        if task and task['type'] == 'pipeline' and task.get('cluster') == 'CEP4' and radbrpc.getResourceClaims(task_ids=task['id']):
+        #only reschedule pipelines which run on cep4
+        if task and task['type'] == 'pipeline' and task.get('cluster') == 'CEP4':
             logger.info("checking pipeline starttime radb_id=%s otdb_id=%s", task['id'], task['otdb_id'])
 
             predecessor_tasks = radbrpc.getTasks(task_ids=task['predecessor_ids'])
@@ -50,9 +50,9 @@ def movePipelineAfterItsPredecessors(task, radbrpc, min_start_timestamp=None):
 
             max_pred_endtime = max(predecessor_endtimes)
 
-            if task['starttime'] < max_pred_endtime:
+            if (task['starttime'] < max_pred_endtime) or (min_start_timestamp and task['starttime'] > min_start_timestamp):
                 shift = max_pred_endtime - task['starttime']
-                logger.info("Moving ahead %s pipeline radb_id=%s otdb_id=%s by %s", task['status'], task['id'], task['otdb_id'], shift)
+                logger.info("Moving %s pipeline radb_id=%s otdb_id=%s by %s", task['status'], task['id'], task['otdb_id'], shift)
                 radbrpc.updateTaskAndResourceClaims(task['id'], starttime=task['starttime']+shift, endtime=task['endtime']+shift)
                 updated_task = radbrpc.getTask(task['id'])
                 if updated_task['status'] not in [u'scheduled', u'queued']:
@@ -123,8 +123,8 @@ class ScheduleChecker():
             now = datetime.utcnow()
             min_start_timestamp = now + timedelta(seconds=PIPELINE_CHECK_INTERVAL)
 
-            scheduled_pipelines = self._radbrpc.getTasks(task_status='scheduled', task_type='pipeline')
-            queued_pipelines = self._radbrpc.getTasks(task_status='queued', task_type='pipeline')
+            scheduled_pipelines = self._radbrpc.getTasks(task_status='scheduled', task_type='pipeline', cluster='CEP4')
+            queued_pipelines = self._radbrpc.getTasks(task_status='queued', task_type='pipeline', cluster='CEP4')
             sq_pipelines = scheduled_pipelines + queued_pipelines
 
             if sq_pipelines:
-- 
GitLab