def target_tasks_try_option_syntax(full_task_graph, parameters): """Generate a list of target tasks based on try syntax in parameters['message'] and, for context, the full task graph.""" options = try_option_syntax.TryOptionSyntax(parameters['message'], full_task_graph) target_tasks_labels = [ t.label for t in full_task_graph.tasks.itervalues() if options.task_matches(t.attributes) ] # If the developer wants test jobs to be rebuilt N times we add that value here if int(options.trigger_tests) > 1: for l in target_tasks_labels: task = full_task_graph[l] if 'unittest_suite' in task.attributes: task.attributes['task_duplicates'] = options.trigger_tests # Add notifications here as well if options.notifications: for task in full_task_graph: owner = parameters.get('owner') routes = task.task.setdefault('routes', []) if options.notifications == 'all': routes.append("notify.email.{}.on-any".format(owner)) elif options.notifications == 'failure': routes.append("notify.email.{}.on-failed".format(owner)) routes.append("notify.email.{}.on-exception".format(owner)) return target_tasks_labels
def _try_option_syntax(full_task_graph, parameters, graph_config): """Generate a list of target tasks based on try syntax in parameters['message'] and, for context, the full task graph.""" options = try_option_syntax.TryOptionSyntax( parameters, full_task_graph, graph_config ) target_tasks_labels = [ t.label for t in six.itervalues(full_task_graph.tasks) if options.task_matches(t) and filter_by_uncommon_try_tasks(t.label) ] attributes = { k: getattr(options, k) for k in [ "no_retry", "tag", ] } for l in target_tasks_labels: task = full_task_graph[l] if "unittest_suite" in task.attributes: task.attributes["task_duplicates"] = options.trigger_tests for l in target_tasks_labels: task = full_task_graph[l] # If the developer wants test jobs to be rebuilt N times we add that value here if options.trigger_tests > 1 and "unittest_suite" in task.attributes: task.attributes["task_duplicates"] = options.trigger_tests # If the developer wants test talos jobs to be rebuilt N times we add that value here if ( options.talos_trigger_tests > 1 and task.attributes.get("unittest_suite") == "talos" ): task.attributes["task_duplicates"] = options.talos_trigger_tests # If the developer wants test raptor jobs to be rebuilt N times we add that value here if ( options.raptor_trigger_tests and options.raptor_trigger_tests > 1 and task.attributes.get("unittest_suite") == "raptor" ): task.attributes["task_duplicates"] = options.raptor_trigger_tests task.attributes.update(attributes) # Add notifications here as well if options.notifications: for task in full_task_graph: owner = parameters.get("owner") routes = task.task.setdefault("routes", []) if options.notifications == "all": routes.append("notify.email.{}.on-any".format(owner)) elif options.notifications == "failure": routes.append("notify.email.{}.on-failed".format(owner)) routes.append("notify.email.{}.on-exception".format(owner)) return target_tasks_labels
def _try_option_syntax(full_task_graph, parameters, graph_config): """Generate a list of target tasks based on try syntax in parameters['message'] and, for context, the full task graph.""" options = try_option_syntax.TryOptionSyntax(parameters, full_task_graph, graph_config) target_tasks_labels = [ t.label for t in full_task_graph.tasks.itervalues() if options.task_matches(t) ] attributes = { k: getattr(options, k) for k in [ 'env', 'no_retry', 'tag', ] } for l in target_tasks_labels: task = full_task_graph[l] if 'unittest_suite' in task.attributes: task.attributes['task_duplicates'] = options.trigger_tests for l in target_tasks_labels: task = full_task_graph[l] # If the developer wants test jobs to be rebuilt N times we add that value here if options.trigger_tests > 1 and 'unittest_suite' in task.attributes: task.attributes['task_duplicates'] = options.trigger_tests task.attributes['profile'] = False # If the developer wants test talos jobs to be rebuilt N times we add that value here if options.talos_trigger_tests > 1 and task.attributes.get( 'unittest_suite') == 'talos': task.attributes['task_duplicates'] = options.talos_trigger_tests task.attributes['profile'] = options.profile # If the developer wants test raptor jobs to be rebuilt N times we add that value here if options.raptor_trigger_tests > 1 and task.attributes.get( 'unittest_suite') == 'raptor': task.attributes['task_duplicates'] = options.raptor_trigger_tests task.attributes['profile'] = options.profile task.attributes.update(attributes) # Add notifications here as well if options.notifications: for task in full_task_graph: owner = parameters.get('owner') routes = task.task.setdefault('routes', []) if options.notifications == 'all': routes.append("notify.email.{}.on-any".format(owner)) elif options.notifications == 'failure': routes.append("notify.email.{}.on-failed".format(owner)) routes.append("notify.email.{}.on-exception".format(owner)) return target_tasks_labels
def target_tasks_try_option_syntax(full_task_graph, parameters): """Generate a list of target tasks based on try syntax in parameters['message'] and, for context, the full task graph.""" options = try_option_syntax.TryOptionSyntax(parameters['message'], full_task_graph) return [ t.label for t in full_task_graph.tasks.itervalues() if options.task_matches(t.attributes) ]
def target_tasks_try_option_syntax(full_task_graph, parameters): """Generate a list of target tasks based on try syntax in parameters['message'] and, for context, the full task graph.""" options = try_option_syntax.TryOptionSyntax(parameters['message'], full_task_graph) target_tasks_labels = [ t.label for t in full_task_graph.tasks.itervalues() if options.task_matches(t.attributes) ] # If the developer wants test jobs to be rebuilt N times we add that value here if int(options.trigger_tests) > 1: for l in target_tasks_labels: task = full_task_graph[l] if 'unittest_suite' in task.attributes: task.attributes['task_duplicates'] = options.trigger_tests return target_tasks_labels