Skip to content

Commit bc18c08

Browse files
committed
memoize desktop_uuid, never expire
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
1 parent 2b63bee commit bc18c08

4 files changed

Lines changed: 26 additions & 11 deletions

File tree

pkg/desktop/login.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package desktop
22

3-
import "context"
3+
import (
4+
"context"
5+
)
46

57
type DockerHubInfo struct {
68
Username string `json:"id"`
@@ -18,9 +20,3 @@ func GetUserInfo(ctx context.Context) DockerHubInfo {
1820
_ = ClientBackend.Get(ctx, "/registry/info", &info)
1921
return info
2022
}
21-
22-
func GetUuid(ctx context.Context) string {
23-
var uuid string
24-
_ = ClientBackend.Get(ctx, "/uuid", &uuid)
25-
return uuid
26-
}

pkg/desktop/uuid.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package desktop
2+
3+
import (
4+
"context"
5+
6+
"github.com/kofalt/go-memoize"
7+
"github.com/patrickmn/go-cache"
8+
)
9+
10+
var uuidMmemoizer = memoize.NewMemoizer(cache.NoExpiration, cache.NoExpiration)
11+
12+
func GetUUID(ctx context.Context) string {
13+
uuid, _, _ := uuidMmemoizer.Memoize("desktopUUID", func() (any, error) {
14+
var uuid string
15+
_ = ClientBackend.Get(ctx, "/uuid", &uuid)
16+
return uuid, nil
17+
})
18+
return uuid.(string)
19+
}

pkg/telemetry/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func newClient(ctx context.Context, logger *slog.Logger, enabled, debugMode bool
7676
client := &Client{
7777
logger: telemetryLogger,
7878
userUUID: getUserUUID(),
79-
desktopUUID: desktop.GetUuid(ctx),
79+
desktopUUID: desktop.GetUUID(ctx),
8080
enabled: enabled,
8181
debugMode: debugMode,
8282
httpClient: httpClient,

pkg/telemetry/telemetry_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -566,12 +566,12 @@ func TestGlobalTelemetryFunctions(t *testing.T) {
566566
SetGlobalTelemetryVersion("test-version")
567567
SetGlobalTelemetryDebugMode(true)
568568

569-
TrackCommand(context.Background(), "test-command", []string{"arg1"})
569+
TrackCommand(t.Context(), "test-command", []string{"arg1"})
570570

571571
assert.NotNil(t, globalToolTelemetryClient)
572572

573-
EnsureGlobalTelemetryInitialized(context.Background())
574-
client := GetGlobalTelemetryClient(context.Background())
573+
EnsureGlobalTelemetryInitialized(t.Context())
574+
client := GetGlobalTelemetryClient(t.Context())
575575
assert.NotNil(t, client)
576576
}
577577

0 commit comments

Comments
 (0)