From 8299d3ff54d8a57d0dcbb0341879bb363293f897 Mon Sep 17 00:00:00 2001 From: sawka Date: Thu, 23 Mar 2023 12:08:03 -0700 Subject: [PATCH] send updated clientdata when telemetry is updated --- pkg/cmdrunner/cmdrunner.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pkg/cmdrunner/cmdrunner.go b/pkg/cmdrunner/cmdrunner.go index 34b794b6..16eaeb56 100644 --- a/pkg/cmdrunner/cmdrunner.go +++ b/pkg/cmdrunner/cmdrunner.go @@ -2727,7 +2727,6 @@ func ClientShowCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (s var buf bytes.Buffer buf.WriteString(fmt.Sprintf(" %-15s %s\n", "userid", clientData.UserId)) buf.WriteString(fmt.Sprintf(" %-15s %s\n", "clientid", clientData.ClientId)) - buf.WriteString(fmt.Sprintf(" %-15s %s\n", "backend", scbase.PromptVersion)) buf.WriteString(fmt.Sprintf(" %-15s %s\n", "telemetry", boolToStr(clientData.ClientOpts.NoTelemetry, "off", "on"))) buf.WriteString(fmt.Sprintf(" %-15s %d\n", "db-version", dbVersion)) buf.WriteString(fmt.Sprintf(" %-15s %s\n", "client-version", clientVersion)) @@ -2780,7 +2779,13 @@ func TelemetryOnCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) ( // ignore error, but log log.Printf("[error] sending telemetry update (in /telemetry:on): %v\n", err) } - return sstore.InfoMsgUpdate("telemetry is now on"), nil + clientData, err = sstore.EnsureClientData(ctx) + if err != nil { + return nil, fmt.Errorf("cannot retrieve updated client data: %v", err) + } + update := sstore.InfoMsgUpdate("telemetry is now on") + update.ClientData = clientData + return update, nil } func TelemetryOffCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) { @@ -2795,7 +2800,13 @@ func TelemetryOffCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) if err != nil { return nil, err } - return sstore.InfoMsgUpdate("telemetry is now off"), nil + clientData, err = sstore.EnsureClientData(ctx) + if err != nil { + return nil, fmt.Errorf("cannot retrieve updated client data: %v", err) + } + update := sstore.InfoMsgUpdate("telemetry is now off") + update.ClientData = clientData + return update, nil } func TelemetryShowCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) {