From 167c8a447f43e6d71e89ccd1eefbda0cb5f8d255 Mon Sep 17 00:00:00 2001 From: Brett Holman Date: Tue, 21 Nov 2023 18:06:37 +0000 Subject: [PATCH 1/3] fix(schema): Don't tell users config is good if missing dependency Previously users that didn't have the python jsonschema dependency installed would "succeed" to validate a user configuration. Fix it. --- cloudinit/config/schema.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cloudinit/config/schema.py b/cloudinit/config/schema.py index b2d57ff7c94..b8977169f6f 100644 --- a/cloudinit/config/schema.py +++ b/cloudinit/config/schema.py @@ -608,6 +608,7 @@ def validate_cloudconfig_schema( "see the schema errors." ) LOG.warning(details) + return True class _Annotator: @@ -937,9 +938,14 @@ def validate_cloudconfig_file( ) return False try: - validate_cloudconfig_schema( + if not validate_cloudconfig_schema( cloudconfig, schema, strict=True, log_deprecations=False - ) + ): + print( + "Skipping network-config schema validation." + " Jsonschema dependency missing." + ) + return False except SchemaValidationError as e: if e.has_errors(): errors += e.schema_errors From c54794b59f3aae18c5c17e35623f4f4099b5170e Mon Sep 17 00:00:00 2001 From: Brett Holman Date: Tue, 21 Nov 2023 11:39:06 -0700 Subject: [PATCH 2/3] Update cloudinit/config/schema.py Co-authored-by: Chad Smith --- cloudinit/config/schema.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudinit/config/schema.py b/cloudinit/config/schema.py index b8977169f6f..920126920c6 100644 --- a/cloudinit/config/schema.py +++ b/cloudinit/config/schema.py @@ -942,7 +942,7 @@ def validate_cloudconfig_file( cloudconfig, schema, strict=True, log_deprecations=False ): print( - "Skipping network-config schema validation." + f"Skipping {schema_type}schema validation." " Jsonschema dependency missing." ) return False From 995feb154dc7b142c4a8da99ac765bb3f97a655a Mon Sep 17 00:00:00 2001 From: Brett Holman Date: Tue, 21 Nov 2023 19:04:11 +0000 Subject: [PATCH 3/3] whitespace --- cloudinit/config/schema.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudinit/config/schema.py b/cloudinit/config/schema.py index 920126920c6..c1e417fb2e6 100644 --- a/cloudinit/config/schema.py +++ b/cloudinit/config/schema.py @@ -942,7 +942,7 @@ def validate_cloudconfig_file( cloudconfig, schema, strict=True, log_deprecations=False ): print( - f"Skipping {schema_type}schema validation." + f"Skipping {schema_type} schema validation." " Jsonschema dependency missing." ) return False