summaryrefslogtreecommitdiff
path: root/cloudinit/sources/helpers/vmware/imc/guestcust_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/sources/helpers/vmware/imc/guestcust_util.py')
-rw-r--r--cloudinit/sources/helpers/vmware/imc/guestcust_util.py25
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),