Bug 1351010 - Completely fixed; r?dustin
MozReview-Commit-ID: HKoWcINVSnV
--- a/taskcluster/taskgraph/optimize.py
+++ b/taskcluster/taskgraph/optimize.py
@@ -71,21 +71,21 @@ def resolve_task_references(label, task_
def optimize_task(task, params):
"""
Optimize a single task by running its optimizations in order until one
succeeds.
"""
for opt in task.optimizations:
opt_type, args = opt[0], opt[1:]
opt_fn = _optimizations[opt_type]
- optimized, task_id = opt_fn(task, params, *args)
- if optimized or task_id:
- return optimized, task_id
+ opt_result = opt_fn(task, params, *args)
+ if opt_result:
+ return opt_result
- return False, None
+ return False
def annotate_task_graph(target_task_graph, params, do_not_optimize,
named_links_dict, label_to_taskid, existing_tasks):
"""
Annotate each task in the graph with .optimized (boolean) and .task_id
(possibly None), following the rules for optimization and calling the task
kinds' `optimize_task` method.
@@ -113,17 +113,25 @@ def annotate_task_graph(target_task_grap
if label in do_not_optimize:
optimized = False
# Let's check whether this task has been created before
elif existing_tasks is not None and label in existing_tasks:
optimized = True
replacement_task_id = existing_tasks[label]
# otherwise, examine the task itself (which may be an expensive operation)
else:
- optimized, replacement_task_id = optimize_task(task, params)
+ opt_result = optimize_task(task, params)
+
+ # use opt_result to determine values for optimized, replacement_task_id
+ optimized = True
+ replacement_task_id = None
+ if opt_result is False:
+ optimized = False
+ elif opt_result is not True:
+ replacement_task_id = opt_result
task.optimized = optimized
task.task_id = replacement_task_id
if replacement_task_id:
label_to_taskid[label] = replacement_task_id
if optimized:
if replacement_task_id: