in vmextension/enabledisable.go [130:166]
func disable(ext *VMExtension) (string, error) {
disableCmd, exists := ext.exec.cmds["disable"]
if !exists {
msg := "disable command not found"
ext.ExtensionLogger.Error(msg)
return msg, fmt.Errorf(msg)
}
ext.ExtensionLogger.Info("disable called")
if ext.exec.supportsDisable {
ext.ExtensionLogger.Info("Disabling extension")
if isDisabled(ext) {
ext.ExtensionLogger.Info("Extension is already disabled")
} else {
err := setDisabled(ext, true)
if err != nil {
reportStatus(ext, status.StatusError, disableCmd, "disable failed "+err.Error())
return "", err
}
}
} else {
ext.ExtensionLogger.Info("VMExtension supportsDisable is set to false. No action to be taken")
}
// Call the callback if we have one
if ext.exec.disableCallback != nil {
err := ext.exec.disableCallback(ext)
if err != nil {
ext.ExtensionLogger.Error("Disable failed: %v", err)
reportStatus(ext, status.StatusError, disableCmd, "disable failed "+err.Error())
return "", err
}
}
reportStatus(ext, status.StatusSuccess, disableCmd, "")
return "", nil
}