Active
Project:
Maestro
Version:
7.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
22 Mar 2012 at 06:27 UTC
Updated:
11 Apr 2012 at 02:39 UTC
According to the article: Maestro Module: To Regenerate or Not To Regenerate..., we should regenerate a task and all in-production tasks in such scenario:
Sorry, the img is here: single task in Branch B
After reading the code, I found that regenerating all in-production tasks doesn't really regenerate all tasks I want, if I have more than one task in the other branch, e.g. in following scenario:
Sorry, the img is here: two tasks in Branch B
I will lose the "task 1 in branch B" if "task 1 on branch A" is regenerated, cause the code in maestro_engine_version1.class.php only look back upon one task from the "And task". Any suggestion about this issue?
Comments
Comment #0.0
rebolomo commentedchange the images
Comment #1
_randy commentedSorry -- the images you attached to the issue node are showing as broken links. Can you try to re-attach the images?
Comment #1.0
_randy commentedmy problem.
Comment #2
rebolomo commentedSorry, I forgot to attach images when submitting the issue, then I can't find anyway to reattach the images, so I put some external links.
Comment #3
rebolomo commentedI made a hack to solve this problem, it's a copy of the "newProcess" function, when a task is regenerated, I call this function instead.
I just look back upon in "maestro_queue_from" table from current regenerated task to the "start" task, keep the tasks I found in a list A, then update all tasks in "maestro_queue" table except the ones in the list A, the updated tasks are the ones in the other branches, so we will not lose them in this way.
Comment #3.0
rebolomo commentedadd img link
Comment #4
_randy commentedLots of stuff there to look at. Tough for me to see exactly what you are doing.
But in looking at the current code for newprocess, I think I understand your case -- What is there is fine, we just need to add in all of the tasks that are not complete. Identical to what is done with the AND, but we can skip out going back one step from those tasks in the already executed list of tasks in the queue.