in azurelinuxagent/ga/exthandlers.py [0:0]
def __handle_extension(ext_handler_i, extension, uninstall_exit_code):
# Check if extension level settings provided for the handler, if not, call enable for the handler.
# This is legacy behavior, we can have handlers with no settings.
if extension is None:
ext_handler_i.enable()
return
# MultiConfig: Handle extension level ops here
ext_handler_i.logger.info("Requested extension state: {0}", extension.state)
if extension.state == ExtensionState.Enabled:
ext_handler_i.enable(extension, uninstall_exit_code=uninstall_exit_code)
elif extension.state == ExtensionState.Disabled:
# Only disable extension if the requested state == Disabled and current state is != Disabled
if ext_handler_i.get_extension_state(extension) != ExtensionState.Disabled:
# Extensions can only be disabled for Multi Config extensions. Disable operation for extension is
# tantamount to uninstalling Handler so ignoring errors incase of Disable failure and deleting state.
ext_handler_i.disable(extension, ignore_error=True)
else:
ext_handler_i.logger.info("Extension already disabled, not doing anything")
else:
raise ExtensionsGoalStateError(
"Unknown requested state for Extension {0}: {1}".format(extension.name, extension.state))