From 74f0f721435fe6f70487da0a696a3c8dfb227f29 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Thu, 21 Jul 2016 12:51:40 +0000 Subject: [PATCH] Task #9607: logging in processPredecessors --- .../ResourceAssigner/lib/assignment.py | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py index 9344f5b7bba..b0c49e49459 100755 --- a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py +++ b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py @@ -215,14 +215,27 @@ class ResourceAssigner(): if predecessor_trees: otdb_id = specification_tree['otdb_id'] + pred_otdb_ids = [pt['otdb_id'] for pt in predecessor_trees] + logger.info('proccessing predecessors otdb_ids=%s for otdb_id=%s', pred_otdb_ids, otdb_id) + task = self.radbrpc.getTask(otdb_id=otdb_id) - for predecessor_tree in predecessor_trees: - pred_otdb_id = predecessor_tree['otdb_id'] - predecessor_task = self.radbrpc.getTask(otdb_id=pred_otdb_id) - if predecessor_task and predecessor_task['id'] not in task['predecessor_ids']: - self.radbrpc.insertTaskPredecessor(task['id'], predecessor_task['id']) - self.processPredecessors(predecessor_tree) + if task: + for predecessor_tree in predecessor_trees: + #first process the predecessor's predecessors + self.processPredecessors(predecessor_tree) + + #then check if the predecessor needs to be linked to this task + pred_otdb_id = predecessor_tree['otdb_id'] + predecessor_task = self.radbrpc.getTask(otdb_id=pred_otdb_id) + if predecessor_task: + if predecessor_task['id'] not in task['predecessor_ids']: + logger.info('connecting predecessor task with otdb_id=%s to it\'s successor with otdb_id=%s', pred_otdb_id, otdb_id) + self.radbrpc.insertTaskPredecessor(task['id'], predecessor_task['id']) + else: + logger.warning('could not find predecessor task with otdb_id=%s in radb for task otdb_id=%s', pred_otdb_id, otdb_id) + else: + logger.info('no predecessors for otdb_id=%s', specification_tree['otdb_id']) except Exception as e: logger.error(e) -- GitLab