The module arguments are dynamically generated based on the Opsview
    version. This means that fail_json isn't available until after the module
    has been properly initialized and the schemas have been loaded.

def _fail_early(message, **kwds):
    """The module arguments are dynamically generated based on the Opsview
    version. This means that fail_json isn't available until after the module
    has been properly initialized and the schemas have been loaded.
    """
    import json

    output = dict(kwds)
    output.update({
        'msg': message,
        'failed': True,
    })
    print(json.dumps(output))
    sys.exit(1)