• Xavier Thompson's avatar
    slapconfiguration: Add .jsonschema recipe · 5cdbaf6f
    Xavier Thompson authored
    [slapconfiguration]
    <= slap-connection
    recipe = slapos.cookbook:slapconfiguration.jsonschema
    jsonschema = ${buildout:directory}/software.cfg.json
    
    The recipe validates instance parameters against the JSON schema, and
    automatically fills in values of parameters left unset from defaults
    specified in the schema, both for the main instance and for every
    shared instance, if any.
    
    Validation error or conflicting defaults - when the instance validates
    multiple combined schemas that each set different defaults - can occur.
    
    In case of error in the main instance parameters, the recipe raises an
    exception. Otherwise, the completed instance parameters are available
    in `configuration`.
    
    For shared instances, valid and conflict-free instances are
    collected in `valid-shared-instance-list` as dicts in the form of:
    ```
    {'reference': "...", 'parameters': {...}}
    ```
    with parameters completed by defaults as appropriate.
    
    Invalid shared instances are collected in `invalid-slave-instance-list`
    as dicts in the form of:
    ```
    {'reference': "...", 'parameters': {...}, 'errors': [...]}
    ```
    with parameters left as-is without added defaults.
    5cdbaf6f
setup.py 8.52 KB