diff options
author | Brett Holman <bholman.devel@gmail.com> | 2022-01-06 15:33:18 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-06 15:33:18 -0700 |
commit | 3e64acda13c826074a502d37b9e11e07d4238bc6 (patch) | |
tree | 4ed7cab2d004d2ce4f9426963bd4d52709aaf09f /cloudinit/handlers | |
parent | fef532d7d6e8932b1b91eb0fc811335d55a79257 (diff) | |
download | vyos-cloud-init-3e64acda13c826074a502d37b9e11e07d4238bc6.tar.gz vyos-cloud-init-3e64acda13c826074a502d37b9e11e07d4238bc6.zip |
Don't throw exceptions for empty cloud config (#1130)
Warn during boot when an empty config is provided. Likewise,
`cloud-init devel schema --annotate` should not throw exception, return
something meaningful instead.
Diffstat (limited to 'cloudinit/handlers')
-rw-r--r-- | cloudinit/handlers/cloud_config.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/cloudinit/handlers/cloud_config.py b/cloudinit/handlers/cloud_config.py index 2e694671..8070c6cb 100644 --- a/cloudinit/handlers/cloud_config.py +++ b/cloudinit/handlers/cloud_config.py @@ -89,6 +89,9 @@ class CloudConfigPartHandler(handlers.Handler): # or the merge type from the headers or default to our own set # if neither exists (or is empty) from the later. payload_yaml = util.load_yaml(payload) + if payload_yaml is None: + raise ValueError("empty cloud config") + mergers_yaml = mergers.dict_extract_mergers(payload_yaml) mergers_header = mergers.string_extract_mergers(merge_header_headers) all_mergers = [] @@ -139,6 +142,12 @@ class CloudConfigPartHandler(handlers.Handler): for i in ("\n", "\r", "\t"): filename = filename.replace(i, " ") self.file_names.append(filename.strip()) + except ValueError as err: + LOG.warning( + "Failed at merging in cloud config part from %s: %s", + filename, + err, + ) except Exception: util.logexc( LOG, "Failed at merging in cloud config part from %s", filename |