diff options
Diffstat (limited to 'cloudinit/sources/helpers')
| -rw-r--r-- | cloudinit/sources/helpers/vmware/imc/guestcust_error.py | 1 | ||||
| -rw-r--r-- | cloudinit/sources/helpers/vmware/imc/guestcust_util.py | 37 | 
2 files changed, 38 insertions, 0 deletions
| diff --git a/cloudinit/sources/helpers/vmware/imc/guestcust_error.py b/cloudinit/sources/helpers/vmware/imc/guestcust_error.py index db5a00dc..65ae7390 100644 --- a/cloudinit/sources/helpers/vmware/imc/guestcust_error.py +++ b/cloudinit/sources/helpers/vmware/imc/guestcust_error.py @@ -10,5 +10,6 @@ class GuestCustErrorEnum(object):      """Specifies different errors of Guest Customization engine"""      GUESTCUST_ERROR_SUCCESS = 0 +    GUESTCUST_ERROR_SCRIPT_DISABLED = 6  # vi: ts=4 expandtab diff --git a/cloudinit/sources/helpers/vmware/imc/guestcust_util.py b/cloudinit/sources/helpers/vmware/imc/guestcust_util.py index a590f323..eb78172e 100644 --- a/cloudinit/sources/helpers/vmware/imc/guestcust_util.py +++ b/cloudinit/sources/helpers/vmware/imc/guestcust_util.py @@ -7,6 +7,7 @@  import logging  import os +import re  import time  from cloudinit import util @@ -117,4 +118,40 @@ def enable_nics(nics):      logger.warning("Can't connect network interfaces after %d attempts",                     enableNicsWaitRetries) + +def get_tools_config(section, key, defaultVal): +    """ Return the value of [section] key from VMTools configuration. + +        @param section: String of section to read from VMTools config +        @returns: String value from key in [section] or defaultVal if +                  [section] is not present or vmware-toolbox-cmd is +                  not installed. +    """ + +    if not util.which('vmware-toolbox-cmd'): +        logger.debug( +            'vmware-toolbox-cmd not installed, returning default value') +        return defaultVal + +    retValue = defaultVal +    cmd = ['vmware-toolbox-cmd', 'config', 'get', section, key] + +    try: +        (outText, _) = util.subp(cmd) +        m = re.match(r'([a-zA-Z0-9 ]+)=(.*)', outText) +        if m: +            retValue = m.group(2).strip() +            logger.debug("Get tools config: [%s] %s = %s", +                         section, key, retValue) +        else: +            logger.debug( +                "Tools config: [%s] %s is not found, return default value: %s", +                section, key, retValue) +    except util.ProcessExecutionError as e: +        logger.error("Failed running %s[%s]", cmd, e.exit_code) +        logger.exception(e) + +    return retValue + +  # vi: ts=4 expandtab | 
