#!/usr/bin/python3
# This is a yaml validator for the provisioning config.
import getopt
import yaml
import sys
import os
import central_dop.config

def usage ():
    print("Usage: validate_yaml [-d <config_dir>] | [-y <yaml_string>]")

def main():
    config = None

    try:
        optlist, args = getopt.getopt(sys.argv[1:], "d:y:")
    except getopt.GetoptError as err:
        usage()
        sys.exit(2)

    for o, a in optlist:
        if o == "-d":
            try:
                config = central_dop.config.load_config_from_dir(a)
            except:
                print("Failed to load YAML config from file")
                sys.exit(1)
        elif o == "-y":
            config = yaml.safe_load(a)
        else:
            usage()
            sys.exit(1)

    if config:
        try:
            central_dop.config.validate_config(config)
        except central_dop.config.Error as err:
            print(err)
            sys.exit(1)
    else:
        print("Invalid YAML config")
        sys.exit(1)

if __name__ == "__main__":
    main()
