#!/usr/bin/env python3
#
# Convert a test specification to command-line options
#

import pscheduler

from validate import spec_is_valid
from validate import MAX_SCHEMA

try:
    spec = pscheduler.json_load(exit_on_error=True, max_schema=MAX_SCHEMA)
except ValueError as ex:
    pscheduler.fail(str(ex))

valid, message = spec_is_valid(spec)

if not valid:
    pscheduler.fail(message)

result = pscheduler.speccli_build_args(spec, 
                                       strings=[
                                           ( 'host', 'host' ),
                                           ( 'host-node', 'host-node' ),
                                           ( 'ip-version', 'ip-version' ),
                                           ( 'timeout', 'timeout' ),
                                           ( 'url', 'url' ),
                                           ( 'parse', 'parse' ),
                                           ( 'keep-content', 'keep-content')
                                       ],
                                       bools=[
                                           ( 'always-succeed', 'always-succeed'),
                                       ]
                                   )

for header in spec.get('headers', {}).items():
    (name, value) = header
    result.append('--header')
    result.append('%s: %s' % (name, value))

pscheduler.succeed_json(result)
