The pungi-config-validate --dump-schema now respects --schema-override.
It is useful to actually check how the schema changed after applying --schema-override. This commit changes --dump-schema in a way that --schema-override is taken into account and dumped schema contains the changes done using the --schema-override. Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
This commit is contained in:
parent
ff269a8675
commit
5808733270
@ -72,6 +72,15 @@ def read_variants(compose, config):
|
|||||||
compose.all_variants[child.uid] = child
|
compose.all_variants[child.uid] = child
|
||||||
|
|
||||||
|
|
||||||
|
def make_final_schema(schema_overrides):
|
||||||
|
# Load schema including extra schemas JSON files.
|
||||||
|
schema = pungi.checks.make_schema()
|
||||||
|
for schema_override in schema_overrides:
|
||||||
|
with open(schema_override) as f:
|
||||||
|
schema = pungi.checks.update_schema(schema, json.load(f))
|
||||||
|
return schema
|
||||||
|
|
||||||
|
|
||||||
def run(config, topdir, has_old, offline, defined_variables, schema_overrides):
|
def run(config, topdir, has_old, offline, defined_variables, schema_overrides):
|
||||||
# Load default values for undefined variables. This is useful for
|
# Load default values for undefined variables. This is useful for
|
||||||
# validating templates that are supposed to be filled in later with
|
# validating templates that are supposed to be filled in later with
|
||||||
@ -88,12 +97,8 @@ def run(config, topdir, has_old, offline, defined_variables, schema_overrides):
|
|||||||
conf = pungi.util.load_config(config, defined_variables)
|
conf = pungi.util.load_config(config, defined_variables)
|
||||||
# Remove the dummy variables used for defaults.
|
# Remove the dummy variables used for defaults.
|
||||||
config_utils.remove_unknown(conf, defined_variables)
|
config_utils.remove_unknown(conf, defined_variables)
|
||||||
|
|
||||||
# Load extra schemas JSON files.
|
# Load extra schemas JSON files.
|
||||||
schema = pungi.checks.make_schema()
|
schema = make_final_schema(schema_overrides)
|
||||||
for schema_override in schema_overrides:
|
|
||||||
with open(schema_override) as f:
|
|
||||||
schema = pungi.checks.update_schema(schema, json.load(f))
|
|
||||||
|
|
||||||
errors, warnings = pungi.checks.validate(conf, offline=offline, schema=schema)
|
errors, warnings = pungi.checks.validate(conf, offline=offline, schema=schema)
|
||||||
if errors or warnings:
|
if errors or warnings:
|
||||||
@ -142,19 +147,18 @@ def run(config, topdir, has_old, offline, defined_variables, schema_overrides):
|
|||||||
return errors
|
return errors
|
||||||
|
|
||||||
|
|
||||||
class DumpSchemaAction(argparse.Action):
|
def dump_schema(schema_overrides):
|
||||||
def __call__(self, parser, ns, values, option_string=None):
|
# Load extra schemas JSON files.
|
||||||
json.dump(pungi.checks.make_schema(), sys.stdout, sort_keys=True, indent=4)
|
schema = make_final_schema(schema_overrides)
|
||||||
|
json.dump(schema, sys.stdout, sort_keys=True, indent=4)
|
||||||
print("")
|
print("")
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
|
|
||||||
def main(args=None):
|
def main(args=None):
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--dump-schema",
|
"--dump-schema",
|
||||||
nargs=0,
|
action="store_true",
|
||||||
action=DumpSchemaAction,
|
|
||||||
help="print JSON Schema of configuration and exit",
|
help="print JSON Schema of configuration and exit",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@ -166,7 +170,7 @@ def main(args=None):
|
|||||||
help="indicate if pungi-koji will be run with --old-composes option",
|
help="indicate if pungi-koji will be run with --old-composes option",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--offline", action="store_true", help="Do not validate git references in URLs",
|
"--offline", action="store_true", help="Do not validate git references in URLs"
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-e",
|
"-e",
|
||||||
@ -192,6 +196,10 @@ def main(args=None):
|
|||||||
opts = parser.parse_args(args)
|
opts = parser.parse_args(args)
|
||||||
defines = config_utils.extract_defines(opts.define)
|
defines = config_utils.extract_defines(opts.define)
|
||||||
|
|
||||||
|
if opts.dump_schema:
|
||||||
|
dump_schema(opts.schema_override)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
with pungi.util.temp_dir() as topdir:
|
with pungi.util.temp_dir() as topdir:
|
||||||
errors = run(
|
errors = run(
|
||||||
opts.config,
|
opts.config,
|
||||||
|
Loading…
Reference in New Issue
Block a user