#!/usr/bin/env python3

import pscheduler

#Init logging
log = pscheduler.Log(prefix="tool-owping", quiet=True)

input = pscheduler.json_load(exit_on_error=True)
log.debug("input to merged results: %s" % input)

results = {'succeeded': False}

try:
    result_list = input['results']
    test_spec = input['test']['spec']
except KeyError as ex:
    log.error("merged-result error %s" % ex)
    pscheduler.fail("Missing required key in merged-result input: %s" % ex)

if len(result_list) == 1:
    results = result_list[0]
elif len(result_list) == 2:
    if result_list[0] is None or result_list[1] is  None:
        pass
    elif 'succeeded' not in result_list[0] or 'succeeded' not in result_list[0]:
        pass    
    else:
        succeeded = result_list[0]['succeeded'] and result_list[1]['succeeded']
        if succeeded and test_spec.get("flip", False):
            #if we used the flip option, the dest has the result we want
            results = result_list[1]
        elif succeeded:
            results = result_list[0]
else:
    pscheduler.fail("Invalid merged-results input. Can only handle up to 2 results. ")

log.debug("merged results: %s" % results)
pscheduler.succeed_json(results)
