#!/usr/bin/env python3
#
# Format a result
#

import html
import json
import jsontemplate
import pscheduler
import sys

from validate import result_is_valid
from validate import MAX_SCHEMA

try:
   format = sys.argv[1]
except IndexError:
   format = 'text/plain'

input = pscheduler.json_load(exit_on_error=True, max_schema=MAX_SCHEMA)

valid, message = result_is_valid(input["result"])

if not valid:
    pscheduler.fail(message)

result = input["result"]
spec = input["spec"]
response_time = result['time'] or "Not Measured"

if format == 'text/plain':

   print('Response Time: %s' % response_time)

   try:
      print('Reason: %s' % result['reason']) 
   except KeyError:
      pass

elif format == 'text/html':

    print('<table>')
    print('<tr>') 
    print('<td>Response Time</td>')
    print('<td>%s</td>' % response_time)
    print('</tr>')
    if "reason" in result:
        print('<tr>')
        print('<td>Reason</td>')
        print('<td>%s</td>' % result['reason'])
        print('</tr>')

    print('</table>')

else:
   pscheduler.fail("Unsupported format '%s'" % format)
