func disable()

in main/cmds.go [153:176]


func disable(lg ExtensionLogger, hEnv vmextension.HandlerEnvironment, seqNum int) error {
	// parse the extension handler settings
	cfg, err := parseAndValidateSettings(hEnv.HandlerEnvironment.ConfigFolder)
	if err != nil {
		return errors.Wrap(err, "failed to get configuration")
	}

	// run disable.sh to disable the agent
	lg.event("disabling agent")
	unzipDir, agentDirectory := getAgentPaths()
	_, runErr := runCmd(lg, "bash ./disable.sh", agentDirectory, cfg)
	if runErr != nil {
		lg.eventError("agent disable failed", runErr)
		telemetry(TelemetryScenario, "agent disable failed: "+runErr.Error(), false, 0)
	} else {
		lg.event("agent disable succeeded")
		telemetry(TelemetryScenario, "agent disable succeeded", true, 0)
	}

	// collect the logs if available and send telemetry updates
	getStdPipesAndTelemetry(lg, unzipDir, runErr)

	return nil
}