def _get_outcome_table_job_decider()

in lib/job_outcome.py [0:0]


def _get_outcome_table_job_decider(args, return_code, timeout_reached):
    if args.outcome_table:
        _, ext = os.path.splitext(args.outcome_table)
        with open(args.outcome_table) as handle:
            if ext == ".json":
                outcome_table = json.load(handle)
            elif ext == ".yaml":
                import yaml
                outcome_table = yaml.safe_load(handle)
            else:
                raise UserWarning("Unsupported outcome table format (%s)" % ext)
        loaded_from_file = True
    else:
        loaded_from_file = False
        outcome_table = _get_default_outcome_dict(args)

    logging.debug("Using outcome table: %s", json.dumps(outcome_table, indent=2))
    lib.validation.validate_outcome_table(outcome_table)

    return OutcomeTableDecider(
        outcome_table, return_code, timeout_reached,
        loaded_from_file=loaded_from_file)