diff options
Diffstat (limited to 'cloudinit/sources/helpers/vmware/imc/guestcust_util.py')
-rw-r--r-- | cloudinit/sources/helpers/vmware/imc/guestcust_util.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/cloudinit/sources/helpers/vmware/imc/guestcust_util.py b/cloudinit/sources/helpers/vmware/imc/guestcust_util.py index 6ffbae40..92e71370 100644 --- a/cloudinit/sources/helpers/vmware/imc/guestcust_util.py +++ b/cloudinit/sources/helpers/vmware/imc/guestcust_util.py @@ -1,5 +1,5 @@ # Copyright (C) 2016 Canonical Ltd. -# Copyright (C) 2016-2022 VMware Inc. +# Copyright (C) 2016-2023 VMware Inc. # # Author: Sankar Tanguturi <stanguturi@vmware.com> # Pengpeng Sun <pegnpengs@vmware.com> @@ -11,14 +11,10 @@ import os import re import time -from cloudinit import subp, util +from cloudinit import safeyaml, subp, util from .config import Config -from .config_custom_script import ( - CustomScriptNotFound, - PostCustomScript, - PreCustomScript, -) +from .config_custom_script import PostCustomScript, PreCustomScript from .config_file import ConfigFile from .config_nic import NicConfigurator from .config_passwd import PasswordConfigurator @@ -265,6 +261,17 @@ def get_data_from_imc_raw_data_cust_cfg(cust_cfg): ) return (None, None, None) + try: + logger.debug("Validating if meta data is valid or not") + md = safeyaml.load(md) + except safeyaml.YAMLError as e: + set_cust_error_status( + "Error parsing the cloud-init meta data", + str(e), + GuestCustErrorEnum.GUESTCUST_ERROR_WRONG_META_FORMAT, + cust_cfg, + ) + ud_file = cust_cfg.user_data_name if ud_file: ud_path = os.path.join(get_imc_dir_path(), ud_file) @@ -512,7 +519,7 @@ def do_pre_custom_script(cust_cfg, custom_script, cust_cfg_dir): try: precust = PreCustomScript(custom_script, cust_cfg_dir) precust.execute() - except CustomScriptNotFound as e: + except Exception as e: set_cust_error_status( "Error executing pre-customization script", str(e), @@ -527,7 +534,7 @@ def do_post_custom_script(cust_cfg, custom_script, cust_cfg_dir, ccScriptsDir): try: postcust = PostCustomScript(custom_script, cust_cfg_dir, ccScriptsDir) postcust.execute() - except CustomScriptNotFound as e: + except Exception as e: set_cust_error_status( "Error executing post-customization script", str(e), |