def equal_schema()

in scripts/validate_crds.py [0:0]


def equal_schema(args):
    kinds = args.kinds.split(",")
    versions = args.versions.split(",")
    with open(args.file, 'r') as stream:
        try:
            docs = yaml.safe_load_all(stream)
            for val in docs:
                if val is None:
                    continue
                kind = val["spec"]["names"]["kind"]
                if kind in kinds:
                    print("Checking schema equality in " + kind + "...")
                    for version in val["spec"]["versions"]:
                        if version["name"] in versions:
                            try:
                                schema
                            except NameError:
                                schema = version["schema"]["openAPIV3Schema"]
                            else:
                                if version["schema"]["openAPIV3Schema"] != schema:
                                    print(version["name"] + " of " +
                                          kind + " has a different schema")
                                    recursive_compare(
                                        version["schema"]["openAPIV3Schema"], schema)
                                    return -1
                    del schema
        except yaml.YAMLError as exc:
            print(exc)
            return -1
    return 0