#!/usr/bin/env python3
#
# Merge the participant results of a run by this tool into a
# test-standard result.
#

import pscheduler

results = pscheduler.json_load(exit_on_error=True)['results'];

try:
    succeeded = results[0]['succeeded'] \
        and results[1]['succeeded']
except (IndexError, KeyError, TypeError):
    pscheduler.fail("Missing data in results.")


result = { 'succeeded': succeeded }

if succeeded:

    try:
        result = {
            'schema':       1,
            'succeeded':    True,
            'dawdled':      results[0]['result']['dawdled'],
            'sent':         results[0]['result']['sent'],
            'received':     results[1]['result']['received'],
            'elapsed-time': results[1]['result']['elapsed-time']
        }
    except (IndexError, KeyError) as ex:
        result = {
            'succeeded': False,
            'error': "Error in participant data: {}".format(str(ex))
        }

else:

    result['error'] = "One or more participants failed; see diagnostics."

pscheduler.succeed_json(result)
