From ec31d60fb0ec67dd1749ba47fc5508be267cbb00 Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Thu, 11 Jul 2024 12:29:53 -0700 Subject: [PATCH] fix: missed a few anlaytics that were not respecting no analytics flag (#3099) --- internal/support/cli/analytics.go | 11 +++++++---- internal/support/cli/clients.go | 8 ++------ internal/web/events.go | 9 +++++---- main.go | 6 +++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/internal/support/cli/analytics.go b/internal/support/cli/analytics.go index 556858a8..68cae9b5 100644 --- a/internal/support/cli/analytics.go +++ b/internal/support/cli/analytics.go @@ -6,13 +6,16 @@ import ( log "github.com/sirupsen/logrus" ) -func StartEvent(version string, mode string, agents []string, remoteClients []string, client docker.Client, subCommand string) { +func StartEvent(args Args, mode string, client docker.Client, subCommand string) { + if args.NoAnalytics { + return + } event := analytics.BeaconEvent{ Name: "start", - Version: version, + Version: args.Version(), Mode: mode, - RemoteAgents: len(agents), - RemoteClients: len(remoteClients), + RemoteAgents: len(args.RemoteAgent), + RemoteClients: len(args.RemoteHost), SubCommand: subCommand, } diff --git a/internal/support/cli/clients.go b/internal/support/cli/clients.go index 32e9e683..f8ef960f 100644 --- a/internal/support/cli/clients.go +++ b/internal/support/cli/clients.go @@ -51,14 +51,10 @@ func CreateMultiHostService(embededCerts embed.FS, args Args) *docker_support.Mu _, err := localClient.ListContainers() if err != nil { log.Debugf("could not connect to local Docker Engine: %s", err) - if !args.NoAnalytics { - go StartEvent(args.Version(), args.Mode, args.RemoteAgent, args.RemoteHost, nil, "") - } + go StartEvent(args, args.Mode, nil, "") } else { log.Debugf("connected to local Docker Engine") - if !args.NoAnalytics { - go StartEvent(args.Version(), args.Mode, args.RemoteAgent, args.RemoteHost, localClient, "") - } + go StartEvent(args, args.Mode, localClient, "") clients = append(clients, docker_support.NewDockerClientService(localClient)) } } diff --git a/internal/web/events.go b/internal/web/events.go index b3dc4562..1b9dbc32 100644 --- a/internal/web/events.go +++ b/internal/web/events.go @@ -109,6 +109,9 @@ func (h *handler) streamEvents(w http.ResponseWriter, r *http.Request) { } func sendBeaconEvent(h *handler, r *http.Request, runningContainers int) { + if h.config.NoAnalytics { + return + } b := analytics.BeaconEvent{ AuthProvider: string(h.config.Authorization.Provider), Browser: r.Header.Get("User-Agent"), @@ -131,10 +134,8 @@ func sendBeaconEvent(h *handler, r *http.Request, runningContainers int) { b.Mode = "swarm" } - if !h.config.NoAnalytics { - if err := analytics.SendBeacon(b); err != nil { - log.Debugf("error sending beacon: %v", err) - } + if err := analytics.SendBeacon(b); err != nil { + log.Debugf("error sending beacon: %v", err) } } diff --git a/main.go b/main.go index f19e1988..dfd3ac14 100644 --- a/main.go +++ b/main.go @@ -57,10 +57,10 @@ func main() { } defer os.Remove(tempFile.Name()) io.WriteString(tempFile, listener.Addr().String()) - go cli.StartEvent(args.Version(), "", args.RemoteAgent, args.RemoteHost, client, "agent") + go cli.StartEvent(args, "", client, "agent") agent.RunServer(client, certs, listener) case *cli.HealthcheckCmd: - go cli.StartEvent(args.Version(), "", args.RemoteAgent, args.RemoteHost, nil, "healthcheck") + go cli.StartEvent(args, "", nil, "healthcheck") files, err := os.ReadDir(".") if err != nil { log.Fatalf("Failed to read directory: %v", err) @@ -92,7 +92,7 @@ func main() { } case *cli.GenerateCmd: - go cli.StartEvent(args.Version(), "", args.RemoteAgent, args.RemoteHost, nil, "generate") + go cli.StartEvent(args, "", nil, "generate") if args.Generate.Username == "" || args.Generate.Password == "" { log.Fatal("Username and password are required") }