#!/usr/bin/python
"""
Fail at archiving most of the time.
"""

import random
import sys
import pscheduler

MAX_SCHEMA = 1

random.seed()

log = pscheduler.Log(quiet=True)


def archive(json):
    """Archive a single result."""

    log.debug("Archiving something.")

    schema = json["data"].get("schema", 1)
    if schema > MAX_SCHEMA:
        return {
            "succeeded": False,
            "error": "Unsupported schema version %d; max is %d" % (
                schema, MAX_SCHEMA)
        }


    if random.random() > json["data"].get("fail", 0.5):
        result = {
            "succeeded": True
        }
    else:
        if random.random() < json["data"].get("retry", 0.5):
            result = {
                "succeeded": False,
                "error": "Induced random failure with retry",
                "retry": "PT10S"
            }
        else:
            result = {
                "succeeded": False,
                "error": "Induced random failure, not retrying",
            }

    return result



PARSER = pscheduler.RFC7464Parser(sys.stdin)
EMITTER = pscheduler.RFC7464Emitter(sys.stdout)

for parsed in PARSER:
    EMITTER(archive(parsed))

pscheduler.succeed()
