From 7b03ca25a835d5d001fe0507100530f5a453448d Mon Sep 17 00:00:00 2001 From: Bianca Date: Fri, 22 Mar 2024 17:42:48 +0000 Subject: [PATCH 01/18] Update select to use opts --- .../cli/atlas/deployments/options/deployment_opts_select.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/cli/atlas/deployments/options/deployment_opts_select.go b/internal/cli/atlas/deployments/options/deployment_opts_select.go index be2e6b9faa..14c1180ba8 100644 --- a/internal/cli/atlas/deployments/options/deployment_opts_select.go +++ b/internal/cli/atlas/deployments/options/deployment_opts_select.go @@ -104,7 +104,7 @@ func (opts *DeploymentOpts) Select(deployments []Deployment) (Deployment, error) opts.DeploymentName = deployments[0].Name opts.DeploymentType = strings.ToLower(deployments[0].Type) - opts.AppendDeploymentType() + opts.UpdateDeploymentTelemetry() return deployments[0], nil } @@ -131,6 +131,6 @@ func (opts *DeploymentOpts) Select(deployments []Deployment) (Deployment, error) deployment := deploymentsByDisplayName[displayName] opts.DeploymentName = deployment.Name opts.DeploymentType = strings.ToLower(deployment.Type) - opts.AppendDeploymentType() + opts.UpdateDeploymentTelemetry() return deployment, nil } From 0f09787a359efbc01392020357e4045859b18a0e Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 13:29:22 +0000 Subject: [PATCH 02/18] wip --- internal/cli/atlas/deployments/connect.go | 20 ++++- .../cli/atlas/deployments/connect_test.go | 80 ++++++++++++------- .../options/deployment_opts_telemetry.go | 3 + .../test/fixture/deployment_atlas.go | 3 + 4 files changed, 76 insertions(+), 30 deletions(-) diff --git a/internal/cli/atlas/deployments/connect.go b/internal/cli/atlas/deployments/connect.go index adf41327e1..170b2707ff 100644 --- a/internal/cli/atlas/deployments/connect.go +++ b/internal/cli/atlas/deployments/connect.go @@ -20,17 +20,28 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/atlas/deployments/options" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag" + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage" "github.com/spf13/cobra" ) -func Run(ctx context.Context, opts *options.ConnectOpts) error { +type ConnectCommandOpts struct { + options.ConnectOpts +} + +func (opts *ConnectCommandOpts) Run(ctx context.Context) error { return opts.Connect(ctx) } +func (opts *ConnectCommandOpts) PostRun() error { + log.Warning("posturn") + opts.AppendDeploymentType() + return nil +} + // atlas deployments connect [clusterName]. func ConnectBuilder() *cobra.Command { - opts := &options.ConnectOpts{} + opts := &ConnectCommandOpts{} cmd := &cobra.Command{ Use: "connect [deploymentName]", Short: "Connect to a deployment that is running locally or in Atlas. If the deployment is paused, make sure to run atlas deployments start first.", @@ -51,7 +62,10 @@ func ConnectBuilder() *cobra.Command { ) }, RunE: func(cmd *cobra.Command, _ []string) error { - return Run(cmd.Context(), opts) + return opts.Run(cmd.Context()) + }, + PostRunE: func(cmd *cobra.Command, _ []string) error { + return opts.PostRun() }, } diff --git a/internal/cli/atlas/deployments/connect_test.go b/internal/cli/atlas/deployments/connect_test.go index 8ea3d0a925..d2f0665dd4 100644 --- a/internal/cli/atlas/deployments/connect_test.go +++ b/internal/cli/atlas/deployments/connect_test.go @@ -24,6 +24,7 @@ import ( "github.com/golang/mock/gomock" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/atlas/deployments/options" + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/atlas/deployments/test/fixture" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks" @@ -46,15 +47,17 @@ func TestRun_ConnectLocal(t *testing.T) { mockPodman := mocks.NewMockClient(ctrl) buf := new(bytes.Buffer) - connectOpts := &options.ConnectOpts{ - ConnectWith: "connectionString", - DeploymentOpts: options.DeploymentOpts{ - PodmanClient: mockPodman, - DeploymentName: expectedLocalDeployment, - DeploymentType: "local", - }, - OutputOpts: cli.OutputOpts{ - OutWriter: buf, + connectOpts := &ConnectCommandOpts{ + options.ConnectOpts{ + ConnectWith: "connectionString", + DeploymentOpts: options.DeploymentOpts{ + PodmanClient: mockPodman, + DeploymentName: expectedLocalDeployment, + DeploymentType: "local", + }, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, }, } @@ -109,7 +112,7 @@ func TestRun_ConnectLocal(t *testing.T) { }, nil). Times(1) - if err := Run(ctx, connectOpts); err != nil { + if err := connectOpts.Run(ctx); err != nil { t.Fatalf("Run() unexpected error: %v", err) } @@ -126,23 +129,25 @@ func TestRun_ConnectAtlas(t *testing.T) { mockCredentialsGetter := mocks.NewMockCredentialsGetter(ctrl) mockAtlasClusterDescriber := mocks.NewMockClusterDescriber(ctrl) - connectOpts := &options.ConnectOpts{ - ConnectWith: "connectionString", - DeploymentOpts: options.DeploymentOpts{ - AtlasClusterListStore: mockAtlasClusterListStore, - DeploymentName: expectedAtlasDeployment, - DeploymentType: "atlas", - CredStore: mockCredentialsGetter, - }, - ConnectToAtlasOpts: options.ConnectToAtlasOpts{ - Store: mockAtlasClusterDescriber, - GlobalOpts: cli.GlobalOpts{ - ProjectID: "projectID", + connectOpts := &ConnectCommandOpts{ + options.ConnectOpts{ + ConnectWith: "connectionString", + DeploymentOpts: options.DeploymentOpts{ + AtlasClusterListStore: mockAtlasClusterListStore, + DeploymentName: expectedAtlasDeployment, + DeploymentType: "atlas", + CredStore: mockCredentialsGetter, + }, + ConnectToAtlasOpts: options.ConnectToAtlasOpts{ + Store: mockAtlasClusterDescriber, + GlobalOpts: cli.GlobalOpts{ + ProjectID: "projectID", + }, + ConnectionStringType: "standard", + }, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, }, - ConnectionStringType: "standard", - }, - OutputOpts: cli.OutputOpts{ - OutWriter: buf, }, } @@ -184,7 +189,7 @@ func TestRun_ConnectAtlas(t *testing.T) { Return(config.OAuth). Times(1) - if err := Run(ctx, connectOpts); err != nil { + if err := connectOpts.Run(ctx); err != nil { t.Fatalf("Run() unexpected error: %v", err) } @@ -192,6 +197,27 @@ func TestRun_ConnectAtlas(t *testing.T) { `, buf.String()) } +func TestRun_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentsTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + buf := new(bytes.Buffer) + + opts := &ConnectCommandOpts{ + options.ConnectOpts{ + DeploymentOpts: *deploymentsTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + }, + } + + deploymentsTest.MockDeploymentTelemetry.EXPECT().AppendDeploymentType().Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } +} + func TestConnectBuilder(t *testing.T) { test.CmdValidator( t, diff --git a/internal/cli/atlas/deployments/options/deployment_opts_telemetry.go b/internal/cli/atlas/deployments/options/deployment_opts_telemetry.go index e803341ef6..418a54fcb5 100644 --- a/internal/cli/atlas/deployments/options/deployment_opts_telemetry.go +++ b/internal/cli/atlas/deployments/options/deployment_opts_telemetry.go @@ -15,6 +15,7 @@ package options import ( + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry" ) @@ -34,7 +35,9 @@ func (opts *DeploymentOpts) AppendDeploymentType() { } else if opts.IsAtlasDeploymentType() { deploymentType = AtlasCluster } + log.Warning(deploymentType) if deploymentType != "" { + log.Warning(deploymentType) telemetry.AppendOption(telemetry.WithDeploymentType(deploymentType)) } } diff --git a/internal/cli/atlas/deployments/test/fixture/deployment_atlas.go b/internal/cli/atlas/deployments/test/fixture/deployment_atlas.go index b8c45bdd27..1c87018c05 100644 --- a/internal/cli/atlas/deployments/test/fixture/deployment_atlas.go +++ b/internal/cli/atlas/deployments/test/fixture/deployment_atlas.go @@ -25,16 +25,19 @@ import ( func NewMockAtlasDeploymentOpts(ctrl *gomock.Controller, deploymentName string) MockDeploymentOpts { mockCredentialsGetter := mocks.NewMockCredentialsGetter(ctrl) mockAtlasClusterListStore := mocks.NewMockClusterLister(ctrl) + mockDeploymentTelemetry := mocks.NewMockDeploymentTelemetry(ctrl) return MockDeploymentOpts{ ctrl: ctrl, MockCredentialsGetter: mockCredentialsGetter, MockAtlasClusterListStore: mockAtlasClusterListStore, + MockDeploymentTelemetry: mockDeploymentTelemetry, Opts: &options.DeploymentOpts{ CredStore: mockCredentialsGetter, AtlasClusterListStore: mockAtlasClusterListStore, DeploymentName: deploymentName, DeploymentType: "atlas", + DeploymentTelemetry: mockDeploymentTelemetry, }, } } From 12ba87742031918c46994793095bd047f0a9cef1 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 14:56:45 +0000 Subject: [PATCH 03/18] Remove testing logs --- internal/cli/deployments/options/deployment_opts_telemetry.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/internal/cli/deployments/options/deployment_opts_telemetry.go b/internal/cli/deployments/options/deployment_opts_telemetry.go index 3d9a727e15..6072c53236 100644 --- a/internal/cli/deployments/options/deployment_opts_telemetry.go +++ b/internal/cli/deployments/options/deployment_opts_telemetry.go @@ -15,7 +15,6 @@ package options import ( - "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry" ) @@ -35,9 +34,7 @@ func (opts *DeploymentOpts) AppendDeploymentType() { } else if opts.IsAtlasDeploymentType() { deploymentType = AtlasCluster } - log.Warning(deploymentType) if deploymentType != "" { - log.Warning(deploymentType) telemetry.AppendOption(telemetry.WithDeploymentType(deploymentType)) } } From c41cdad2a8865c36f0b69ae9fb8703da5e860077 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 15:10:06 +0000 Subject: [PATCH 04/18] Update connect test --- internal/cli/deployments/connect.go | 4 +--- internal/cli/deployments/connect_test.go | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/cli/deployments/connect.go b/internal/cli/deployments/connect.go index ef74e471cc..d91907d4b1 100644 --- a/internal/cli/deployments/connect.go +++ b/internal/cli/deployments/connect.go @@ -20,7 +20,6 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/deployments/options" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag" - "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage" "github.com/spf13/cobra" ) @@ -34,8 +33,7 @@ func (opts *ConnectCommandOpts) Run(ctx context.Context) error { } func (opts *ConnectCommandOpts) PostRun() error { - log.Warning("posturn") - opts.AppendDeploymentType() + opts.DeploymentTelemetry.AppendDeploymentType() return nil } diff --git a/internal/cli/deployments/connect_test.go b/internal/cli/deployments/connect_test.go index 09295ba754..1a3ec61894 100644 --- a/internal/cli/deployments/connect_test.go +++ b/internal/cli/deployments/connect_test.go @@ -211,7 +211,11 @@ func TestRun_PostRun(t *testing.T) { }, } - deploymentsTest.MockDeploymentTelemetry.EXPECT().AppendDeploymentType().Times(1) + deploymentsTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) if err := opts.PostRun(); err != nil { t.Fatalf("PostRun() unexpected error: %v", err) From a5b8efce86751c1a801d7a643fcb594a105b0bb2 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 15:43:32 +0000 Subject: [PATCH 05/18] Add remaining deployments commands --- internal/cli/deployments/logs.go | 8 +++++++ internal/cli/deployments/logs_test.go | 23 +++++++++++++++++++ .../options/deployment_opts_telemetry.go | 3 +++ internal/cli/deployments/pause.go | 8 +++++-- internal/cli/deployments/pause_test.go | 22 ++++++++++++++++++ internal/cli/deployments/start.go | 7 +++++- internal/cli/deployments/start_test.go | 21 +++++++++++++++++ 7 files changed, 89 insertions(+), 3 deletions(-) diff --git a/internal/cli/deployments/logs.go b/internal/cli/deployments/logs.go index 1216c0926a..e07bd3ab06 100644 --- a/internal/cli/deployments/logs.go +++ b/internal/cli/deployments/logs.go @@ -181,6 +181,11 @@ func (opts *DownloadOpts) validateAtlasFlags() error { return nil } +func (opts *DownloadOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return nil +} + // atlas deployments logs. func LogsBuilder() *cobra.Command { opts := &DownloadOpts{ @@ -204,6 +209,9 @@ func LogsBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, + PostRunE: func(cmd *cobra.Command, _ []string) error { + return opts.PostRun() + }, } cmd.Flags().StringVar(&opts.DeploymentType, flag.TypeFlag, "", usage.DeploymentType) diff --git a/internal/cli/deployments/logs_test.go b/internal/cli/deployments/logs_test.go index 091f28fcb6..e2cb5d96aa 100644 --- a/internal/cli/deployments/logs_test.go +++ b/internal/cli/deployments/logs_test.go @@ -112,3 +112,26 @@ func TestLogs_RunAtlas(t *testing.T) { t.Fatalf("Run() unexpected error: %v", err) } } + +func TestLogs_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + buf := new(bytes.Buffer) + + opts := &DownloadOpts{ + DeploymentOpts: *deploymentTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } +} diff --git a/internal/cli/deployments/options/deployment_opts_telemetry.go b/internal/cli/deployments/options/deployment_opts_telemetry.go index 6072c53236..aceb3d36dd 100644 --- a/internal/cli/deployments/options/deployment_opts_telemetry.go +++ b/internal/cli/deployments/options/deployment_opts_telemetry.go @@ -15,6 +15,7 @@ package options import ( + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry" ) @@ -34,7 +35,9 @@ func (opts *DeploymentOpts) AppendDeploymentType() { } else if opts.IsAtlasDeploymentType() { deploymentType = AtlasCluster } + log.Warning(deploymentType) if deploymentType != "" { + log.Debugf("Appending deployment type: %s", deploymentType) telemetry.AppendOption(telemetry.WithDeploymentType(deploymentType)) } } diff --git a/internal/cli/deployments/pause.go b/internal/cli/deployments/pause.go index 3fa2c0a88a..f9e24387eb 100644 --- a/internal/cli/deployments/pause.go +++ b/internal/cli/deployments/pause.go @@ -122,6 +122,11 @@ func (opts *PauseOpts) StopMongoD(ctx context.Context, names string) error { return opts.PodmanClient.Exec(ctx, "-d", names, "mongod", "--shutdown") } +func (opts *PauseOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return opts.PostRunMessages() +} + func PauseBuilder() *cobra.Command { opts := &PauseOpts{} cmd := &cobra.Command{ @@ -149,9 +154,8 @@ func PauseBuilder() *cobra.Command { } return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRunMessages() + return opts.PostRun() }, } diff --git a/internal/cli/deployments/pause_test.go b/internal/cli/deployments/pause_test.go index 0bdfcccc9a..cec7323d88 100644 --- a/internal/cli/deployments/pause_test.go +++ b/internal/cli/deployments/pause_test.go @@ -121,6 +121,28 @@ func TestPause_RunAtlas(t *testing.T) { t.Log(buf.String()) } +func Test_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, deploymentName) + buf := new(bytes.Buffer) + + opts := &PauseOpts{ + DeploymentOpts: *deploymentTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentTest.MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } +} + func TestPauseBuilder(t *testing.T) { test.CmdValidator( t, diff --git a/internal/cli/deployments/start.go b/internal/cli/deployments/start.go index 6351b96ae0..e1cf717f0c 100644 --- a/internal/cli/deployments/start.go +++ b/internal/cli/deployments/start.go @@ -121,6 +121,11 @@ func (opts *StartOpts) RunAtlas() error { return opts.Print(r) } +func (opts *StartOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return opts.PostRunMessages() +} + func StartBuilder() *cobra.Command { opts := &StartOpts{} cmd := &cobra.Command{ @@ -146,7 +151,7 @@ func StartBuilder() *cobra.Command { return opts.Run(cmd.Context()) }, PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRunMessages() + return opts.PostRun() }, } diff --git a/internal/cli/deployments/start_test.go b/internal/cli/deployments/start_test.go index 9cfe6b20c1..c21759e2dd 100644 --- a/internal/cli/deployments/start_test.go +++ b/internal/cli/deployments/start_test.go @@ -186,6 +186,27 @@ func TestStart_RunAtlas(t *testing.T) { t.Log(buf.String()) } +func TestStartOpts_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentsTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + buf := new(bytes.Buffer) + + opts := &StartOpts{ + DeploymentOpts: *deploymentsTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentsTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + require.NoError(t, opts.PostRun()) +} + func TestStartBuilder(t *testing.T) { test.CmdValidator( t, From a516a09b1c472fb2ea83f61de4ee4a7528e55453 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 16:22:02 +0000 Subject: [PATCH 06/18] Add indexes --- .../cli/deployments/search/indexes/create.go | 1 + .../deployments/search/indexes/create_test.go | 13 ++++++++++- .../cli/deployments/search/indexes/delete.go | 8 +++++++ .../deployments/search/indexes/delete_test.go | 19 ++++++++++++++++ .../deployments/search/indexes/describe.go | 8 +++++++ .../search/indexes/describe_test.go | 22 +++++++++++++++++++ .../cli/deployments/search/indexes/list.go | 8 +++++++ .../deployments/search/indexes/list_test.go | 22 +++++++++++++++++++ 8 files changed, 100 insertions(+), 1 deletion(-) diff --git a/internal/cli/deployments/search/indexes/create.go b/internal/cli/deployments/search/indexes/create.go index 504d5e7762..780e77d174 100644 --- a/internal/cli/deployments/search/indexes/create.go +++ b/internal/cli/deployments/search/indexes/create.go @@ -172,6 +172,7 @@ func (opts *CreateOpts) watch(ctx context.Context) (any, bool, error) { } func (opts *CreateOpts) PostRun(ctx context.Context) error { + opts.AppendDeploymentType() if !opts.EnableWatch { return opts.Print(opts.index) } diff --git a/internal/cli/deployments/search/indexes/create_test.go b/internal/cli/deployments/search/indexes/create_test.go index f899193c6c..7223583c15 100644 --- a/internal/cli/deployments/search/indexes/create_test.go +++ b/internal/cli/deployments/search/indexes/create_test.go @@ -72,6 +72,12 @@ func TestCreate_RunLocal(t *testing.T) { testDeployments.LocalMockFlow(ctx) + testDeployments. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + mockPodman. EXPECT(). ContainerInspect(ctx, options.MongodHostnamePrefix+"-"+expectedLocalDeployment). @@ -159,7 +165,6 @@ func TestCreate_RunLocal(t *testing.T) { if err := opts.Run(ctx); err != nil { t.Fatalf("Run() unexpected error: %v", err) } - if err := opts.PostRun(ctx); err != nil { t.Fatalf("PostRun() unexpected error: %v", err) } @@ -334,6 +339,12 @@ func TestCreate_RunAtlas(t *testing.T) { Times(1). Return(indexWithID, nil) + deploymentTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + if err := opts.Run(ctx); err != nil { t.Fatalf("Run() unexpected error: %v", err) } diff --git a/internal/cli/deployments/search/indexes/delete.go b/internal/cli/deployments/search/indexes/delete.go index 64de1a4132..4e2bb09a3e 100644 --- a/internal/cli/deployments/search/indexes/delete.go +++ b/internal/cli/deployments/search/indexes/delete.go @@ -99,6 +99,11 @@ func (opts *DeleteOpts) initMongoDBClient(ctx context.Context) func() error { } } +func (opts *DeleteOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return nil +} + func DeleteBuilder() *cobra.Command { opts := &DeleteOpts{ DeleteOpts: cli.NewDeleteOpts(deletedMessage, deleteMessageFailed), @@ -127,6 +132,9 @@ func DeleteBuilder() *cobra.Command { return opts.Run(cmd.Context()) }, + PostRunE: func(_ *cobra.Command, _ []string) error { + return opts.PostRun() + }, } cmd.Flags().StringVar(&opts.DeploymentName, flag.DeploymentName, "", usage.DeploymentName) diff --git a/internal/cli/deployments/search/indexes/delete_test.go b/internal/cli/deployments/search/indexes/delete_test.go index ae1a214727..62fc2f14aa 100644 --- a/internal/cli/deployments/search/indexes/delete_test.go +++ b/internal/cli/deployments/search/indexes/delete_test.go @@ -147,6 +147,25 @@ func TestDelete_RunAtlas(t *testing.T) { } } +func TestDelete_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + opts := &DeleteOpts{ + DeploymentOpts: *deploymentTest.Opts, + } + + deploymentTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } + +} + func TestDeleteBuilder(t *testing.T) { test.CmdValidator( t, diff --git a/internal/cli/deployments/search/indexes/describe.go b/internal/cli/deployments/search/indexes/describe.go index 22f4fe1ef6..bbe910731c 100644 --- a/internal/cli/deployments/search/indexes/describe.go +++ b/internal/cli/deployments/search/indexes/describe.go @@ -103,6 +103,11 @@ func (opts *DescribeOpts) initStore(ctx context.Context) func() error { } } +func (opts *DescribeOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return nil +} + func DescribeBuilder() *cobra.Command { opts := &DescribeOpts{} cmd := &cobra.Command{ @@ -129,6 +134,9 @@ func DescribeBuilder() *cobra.Command { } return opts.Run(cmd.Context()) }, + PostRunE: func(_ *cobra.Command, _ []string) error { + return opts.PostRun() + }, } cmd.Flags().StringVar(&opts.DeploymentType, flag.TypeFlag, "", usage.DeploymentType) diff --git a/internal/cli/deployments/search/indexes/describe_test.go b/internal/cli/deployments/search/indexes/describe_test.go index ba96ebc565..e3d2c53a74 100644 --- a/internal/cli/deployments/search/indexes/describe_test.go +++ b/internal/cli/deployments/search/indexes/describe_test.go @@ -31,6 +31,7 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" atlasv2 "go.mongodb.org/atlas-sdk/v20231115008/admin" ) @@ -181,6 +182,27 @@ func TestDescribe_RunAtlas(t *testing.T) { } } +func TestDescribe_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + buf := new(bytes.Buffer) + + opts := &DescribeOpts{ + DeploymentOpts: *deploymentTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentTest. + MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + require.NoError(t, opts.PostRun()) +} + func TestDescribeBuilder(t *testing.T) { test.CmdValidator( t, diff --git a/internal/cli/deployments/search/indexes/list.go b/internal/cli/deployments/search/indexes/list.go index 88dbcb9e99..f73c0571d4 100644 --- a/internal/cli/deployments/search/indexes/list.go +++ b/internal/cli/deployments/search/indexes/list.go @@ -112,6 +112,11 @@ func (opts *ListOpts) validateAndPrompt() error { return nil } +func (opts *ListOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return nil +} + func ListBuilder() *cobra.Command { opts := &ListOpts{} cmd := &cobra.Command{ @@ -135,6 +140,9 @@ func ListBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, + PostRunE: func(_ *cobra.Command, _ []string) error { + return opts.PostRun() + }, } cmd.Flags().StringVar(&opts.DeploymentName, flag.DeploymentName, "", usage.DeploymentName) diff --git a/internal/cli/deployments/search/indexes/list_test.go b/internal/cli/deployments/search/indexes/list_test.go index f13b3d0743..a9dbc362ea 100644 --- a/internal/cli/deployments/search/indexes/list_test.go +++ b/internal/cli/deployments/search/indexes/list_test.go @@ -209,6 +209,28 @@ func TestList_RunAtlas(t *testing.T) { } } +func TestList_PostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") + buf := new(bytes.Buffer) + + opts := &ListOpts{ + DeploymentOpts: *deploymentTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentTest.MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } +} + func TestListBuilder(t *testing.T) { test.CmdValidator( t, From e20990e378006478dc1d0f11429a3d71e3116592 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 16:23:02 +0000 Subject: [PATCH 07/18] Add setup --- internal/cli/deployments/setup.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/cli/deployments/setup.go b/internal/cli/deployments/setup.go index c44e2ded89..ae56ed0e97 100644 --- a/internal/cli/deployments/setup.go +++ b/internal/cli/deployments/setup.go @@ -823,6 +823,11 @@ func (opts *SetupOpts) Run(ctx context.Context) error { return opts.runAtlas(ctx) } +func (opts *SetupOpts) PostRun() error { + opts.DeploymentTelemetry.AppendDeploymentType() + return nil +} + // atlas deployments setup. func SetupBuilder() *cobra.Command { opts := &SetupOpts{ @@ -856,6 +861,9 @@ func SetupBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, + PostRunE: func(cmd *cobra.Command, _ []string) error { + return opts.PostRun() + }, } // Local and Atlas From d279d09cb76c52a9c9b6514c401a14cd80aae379 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 16:27:01 +0000 Subject: [PATCH 08/18] Add setup test --- internal/cli/deployments/setup_test.go | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 internal/cli/deployments/setup_test.go diff --git a/internal/cli/deployments/setup_test.go b/internal/cli/deployments/setup_test.go new file mode 100644 index 0000000000..798ae13027 --- /dev/null +++ b/internal/cli/deployments/setup_test.go @@ -0,0 +1,48 @@ +// Copyright 2023 MongoDB Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build unit + +package deployments + +import ( + "bytes" + "testing" + + "github.com/golang/mock/gomock" + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli" + "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/deployments/test/fixture" +) + +func TestPostRun(t *testing.T) { + ctrl := gomock.NewController(t) + deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, deploymentName) + buf := new(bytes.Buffer) + + opts := &SetupOpts{ + DeploymentOpts: *deploymentTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, + }, + } + + deploymentTest.MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) + + if err := opts.PostRun(); err != nil { + t.Fatalf("PostRun() unexpected error: %v", err) + } +} From 4fba73da8793178d6083b3817f7fba3096355bc6 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 16:31:28 +0000 Subject: [PATCH 09/18] Lint --- internal/cli/deployments/connect.go | 2 +- internal/cli/deployments/setup.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/cli/deployments/connect.go b/internal/cli/deployments/connect.go index d91907d4b1..0056db3622 100644 --- a/internal/cli/deployments/connect.go +++ b/internal/cli/deployments/connect.go @@ -62,7 +62,7 @@ func ConnectBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(cmd *cobra.Command, _ []string) error { + PostRunE: func(_ *cobra.Command, _ []string) error { return opts.PostRun() }, } diff --git a/internal/cli/deployments/setup.go b/internal/cli/deployments/setup.go index ae56ed0e97..ff52efe694 100644 --- a/internal/cli/deployments/setup.go +++ b/internal/cli/deployments/setup.go @@ -861,7 +861,7 @@ func SetupBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(cmd *cobra.Command, _ []string) error { + PostRunE: func(_ *cobra.Command, _ []string) error { return opts.PostRun() }, } From a6555e4e8f4ed803390a0e344722528e90b41362 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 17:23:26 +0000 Subject: [PATCH 10/18] Revert connect changes --- internal/cli/deployments/connect.go | 16 ++--- internal/cli/deployments/connect_test.go | 74 ++++++++++-------------- 2 files changed, 37 insertions(+), 53 deletions(-) diff --git a/internal/cli/deployments/connect.go b/internal/cli/deployments/connect.go index 0056db3622..c6eaf3205b 100644 --- a/internal/cli/deployments/connect.go +++ b/internal/cli/deployments/connect.go @@ -24,22 +24,18 @@ import ( "github.com/spf13/cobra" ) -type ConnectCommandOpts struct { - options.ConnectOpts -} - -func (opts *ConnectCommandOpts) Run(ctx context.Context) error { +func Run(ctx context.Context, opts *options.ConnectOpts) error { return opts.Connect(ctx) } -func (opts *ConnectCommandOpts) PostRun() error { - opts.DeploymentTelemetry.AppendDeploymentType() +func PostRun(opts *options.ConnectOpts) error { + opts.AppendDeploymentType() return nil } // atlas deployments connect [clusterName]. func ConnectBuilder() *cobra.Command { - opts := &ConnectCommandOpts{} + opts := &options.ConnectOpts{} cmd := &cobra.Command{ Use: "connect [deploymentName]", Short: "Connect to a deployment that is running locally or in Atlas. If the deployment is paused, make sure to run atlas deployments start first.", @@ -60,10 +56,10 @@ func ConnectBuilder() *cobra.Command { ) }, RunE: func(cmd *cobra.Command, _ []string) error { - return opts.Run(cmd.Context()) + return Run(cmd.Context(), opts) }, PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + return PostRun(opts) }, } diff --git a/internal/cli/deployments/connect_test.go b/internal/cli/deployments/connect_test.go index 1a3ec61894..0bc13b10e0 100644 --- a/internal/cli/deployments/connect_test.go +++ b/internal/cli/deployments/connect_test.go @@ -47,17 +47,15 @@ func TestRun_ConnectLocal(t *testing.T) { mockPodman := mocks.NewMockClient(ctrl) buf := new(bytes.Buffer) - connectOpts := &ConnectCommandOpts{ - options.ConnectOpts{ - ConnectWith: "connectionString", - DeploymentOpts: options.DeploymentOpts{ - PodmanClient: mockPodman, - DeploymentName: expectedLocalDeployment, - DeploymentType: "local", - }, - OutputOpts: cli.OutputOpts{ - OutWriter: buf, - }, + connectOpts := &options.ConnectOpts{ + ConnectWith: "connectionString", + DeploymentOpts: options.DeploymentOpts{ + PodmanClient: mockPodman, + DeploymentName: expectedLocalDeployment, + DeploymentType: "local", + }, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, }, } @@ -112,7 +110,7 @@ func TestRun_ConnectLocal(t *testing.T) { }, nil). Times(1) - if err := connectOpts.Run(ctx); err != nil { + if err := Run(ctx, connectOpts); err != nil { t.Fatalf("Run() unexpected error: %v", err) } @@ -125,29 +123,21 @@ func TestRun_ConnectAtlas(t *testing.T) { ctx := context.Background() buf := new(bytes.Buffer) - mockAtlasClusterListStore := mocks.NewMockClusterLister(ctrl) - mockCredentialsGetter := mocks.NewMockCredentialsGetter(ctrl) mockAtlasClusterDescriber := mocks.NewMockClusterDescriber(ctrl) - - connectOpts := &ConnectCommandOpts{ - options.ConnectOpts{ - ConnectWith: "connectionString", - DeploymentOpts: options.DeploymentOpts{ - AtlasClusterListStore: mockAtlasClusterListStore, - DeploymentName: expectedAtlasDeployment, - DeploymentType: "atlas", - CredStore: mockCredentialsGetter, - }, - ConnectToAtlasOpts: options.ConnectToAtlasOpts{ - Store: mockAtlasClusterDescriber, - GlobalOpts: cli.GlobalOpts{ - ProjectID: "projectID", - }, - ConnectionStringType: "standard", - }, - OutputOpts: cli.OutputOpts{ - OutWriter: buf, + deploymenTest := fixture.NewMockAtlasDeploymentOpts(ctrl, expectedAtlasDeployment) + + connectOpts := &options.ConnectOpts{ + ConnectWith: "connectionString", + DeploymentOpts: *deploymenTest.Opts, + ConnectToAtlasOpts: options.ConnectToAtlasOpts{ + Store: mockAtlasClusterDescriber, + GlobalOpts: cli.GlobalOpts{ + ProjectID: "projectID", }, + ConnectionStringType: "standard", + }, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, }, } @@ -166,7 +156,7 @@ func TestRun_ConnectAtlas(t *testing.T) { }, } - mockAtlasClusterListStore. + deploymenTest.MockAtlasClusterListStore. EXPECT(). ProjectClusters(connectOpts.ProjectID, &store.ListOptions{ @@ -183,13 +173,13 @@ func TestRun_ConnectAtlas(t *testing.T) { Return(&expectedAtlasClusters.GetResults()[0], nil). Times(1) - mockCredentialsGetter. + deploymenTest.MockCredentialsGetter. EXPECT(). AuthType(). Return(config.OAuth). Times(1) - if err := connectOpts.Run(ctx); err != nil { + if err := Run(ctx, connectOpts); err != nil { t.Fatalf("Run() unexpected error: %v", err) } @@ -202,12 +192,10 @@ func TestRun_PostRun(t *testing.T) { deploymentsTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") buf := new(bytes.Buffer) - opts := &ConnectCommandOpts{ - options.ConnectOpts{ - DeploymentOpts: *deploymentsTest.Opts, - OutputOpts: cli.OutputOpts{ - OutWriter: buf, - }, + opts := &options.ConnectOpts{ + DeploymentOpts: *deploymentsTest.Opts, + OutputOpts: cli.OutputOpts{ + OutWriter: buf, }, } @@ -217,7 +205,7 @@ func TestRun_PostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := opts.PostRun(); err != nil { + if err := PostRun(opts); err != nil { t.Fatalf("PostRun() unexpected error: %v", err) } } From 4d7100a0761fbb93c9b22bbbc2c2d8650797976e Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 17:54:34 +0000 Subject: [PATCH 11/18] Remove debug msg --- internal/cli/deployments/options/deployment_opts_telemetry.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/cli/deployments/options/deployment_opts_telemetry.go b/internal/cli/deployments/options/deployment_opts_telemetry.go index aceb3d36dd..69af0164b9 100644 --- a/internal/cli/deployments/options/deployment_opts_telemetry.go +++ b/internal/cli/deployments/options/deployment_opts_telemetry.go @@ -37,7 +37,6 @@ func (opts *DeploymentOpts) AppendDeploymentType() { } log.Warning(deploymentType) if deploymentType != "" { - log.Debugf("Appending deployment type: %s", deploymentType) telemetry.AppendOption(telemetry.WithDeploymentType(deploymentType)) } } From af4b72dd3b4c301130b0a811ef4c61855bbeaf2b Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 18:18:07 +0000 Subject: [PATCH 12/18] Simplify tests --- internal/cli/deployments/connect.go | 2 +- internal/cli/deployments/connect_test.go | 52 +++---------------- .../deployments/options/deployment_opts.go | 3 ++ .../deployments/search/indexes/create_test.go | 12 ----- .../test/fixture/deployment_atlas.go | 5 ++ .../test/fixture/deployment_local.go | 5 ++ 6 files changed, 20 insertions(+), 59 deletions(-) diff --git a/internal/cli/deployments/connect.go b/internal/cli/deployments/connect.go index c6eaf3205b..7898c7c1e7 100644 --- a/internal/cli/deployments/connect.go +++ b/internal/cli/deployments/connect.go @@ -29,7 +29,7 @@ func Run(ctx context.Context, opts *options.ConnectOpts) error { } func PostRun(opts *options.ConnectOpts) error { - opts.AppendDeploymentType() + opts.DeploymentTelemetry.AppendDeploymentType() return nil } diff --git a/internal/cli/deployments/connect_test.go b/internal/cli/deployments/connect_test.go index 0bc13b10e0..6211eeebe3 100644 --- a/internal/cli/deployments/connect_test.go +++ b/internal/cli/deployments/connect_test.go @@ -25,12 +25,10 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/deployments/options" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/deployments/test/fixture" - "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/podman" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer" - "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test" "github.com/stretchr/testify/assert" "go.mongodb.org/atlas-sdk/v20231115008/admin" @@ -44,43 +42,20 @@ const ( func TestRun_ConnectLocal(t *testing.T) { ctrl := gomock.NewController(t) ctx := context.Background() - mockPodman := mocks.NewMockClient(ctrl) buf := new(bytes.Buffer) + deploymenTest := fixture.NewMockLocalDeploymentOpts(ctrl, expectedLocalDeployment) connectOpts := &options.ConnectOpts{ - ConnectWith: "connectionString", - DeploymentOpts: options.DeploymentOpts{ - PodmanClient: mockPodman, - DeploymentName: expectedLocalDeployment, - DeploymentType: "local", - }, + ConnectWith: "connectionString", + DeploymentOpts: *deploymenTest.Opts, OutputOpts: cli.OutputOpts{ OutWriter: buf, }, } - expectedContainers := []*podman.Container{ - { - Names: []string{expectedLocalDeployment}, - State: "running", - Labels: map[string]string{"version": "6.0.9"}, - ID: expectedLocalDeployment, - }, - } + deploymenTest.LocalMockFlow(ctx) - mockPodman. - EXPECT(). - Ready(ctx). - Return(nil). - Times(1) - - mockPodman. - EXPECT(). - ListContainers(ctx, options.MongodHostnamePrefix). - Return(expectedContainers, nil). - Times(1) - - mockPodman. + deploymenTest.MockPodman. EXPECT(). ContainerInspect(ctx, options.MongodHostnamePrefix+"-"+expectedLocalDeployment). Return([]*podman.InspectContainerData{ @@ -156,16 +131,7 @@ func TestRun_ConnectAtlas(t *testing.T) { }, } - deploymenTest.MockAtlasClusterListStore. - EXPECT(). - ProjectClusters(connectOpts.ProjectID, - &store.ListOptions{ - PageNum: cli.DefaultPage, - ItemsPerPage: options.MaxItemsPerPage, - }, - ). - Return(expectedAtlasClusters, nil). - Times(1) + deploymenTest.CommonAtlasMocks(connectOpts.ProjectID) mockAtlasClusterDescriber. EXPECT(). @@ -173,12 +139,6 @@ func TestRun_ConnectAtlas(t *testing.T) { Return(&expectedAtlasClusters.GetResults()[0], nil). Times(1) - deploymenTest.MockCredentialsGetter. - EXPECT(). - AuthType(). - Return(config.OAuth). - Times(1) - if err := Run(ctx, connectOpts); err != nil { t.Fatalf("Run() unexpected error: %v", err) } diff --git a/internal/cli/deployments/options/deployment_opts.go b/internal/cli/deployments/options/deployment_opts.go index b22cb7a950..858322d664 100644 --- a/internal/cli/deployments/options/deployment_opts.go +++ b/internal/cli/deployments/options/deployment_opts.go @@ -261,5 +261,8 @@ func (opts *DeploymentOpts) IsAuthEnabled() bool { } func (opts *DeploymentOpts) UpdateDeploymentTelemetry() { + if opts.DeploymentTelemetry == nil { + opts.DeploymentTelemetry = NewDeploymentTypeTelemetry(opts) + } opts.DeploymentTelemetry.AppendDeploymentType() } diff --git a/internal/cli/deployments/search/indexes/create_test.go b/internal/cli/deployments/search/indexes/create_test.go index 7223583c15..07cab920b1 100644 --- a/internal/cli/deployments/search/indexes/create_test.go +++ b/internal/cli/deployments/search/indexes/create_test.go @@ -72,12 +72,6 @@ func TestCreate_RunLocal(t *testing.T) { testDeployments.LocalMockFlow(ctx) - testDeployments. - MockDeploymentTelemetry. - EXPECT(). - AppendDeploymentType(). - Times(1) - mockPodman. EXPECT(). ContainerInspect(ctx, options.MongodHostnamePrefix+"-"+expectedLocalDeployment). @@ -339,12 +333,6 @@ func TestCreate_RunAtlas(t *testing.T) { Times(1). Return(indexWithID, nil) - deploymentTest. - MockDeploymentTelemetry. - EXPECT(). - AppendDeploymentType(). - Times(1) - if err := opts.Run(ctx); err != nil { t.Fatalf("Run() unexpected error: %v", err) } diff --git a/internal/cli/deployments/test/fixture/deployment_atlas.go b/internal/cli/deployments/test/fixture/deployment_atlas.go index 50db89f42f..35001008b8 100644 --- a/internal/cli/deployments/test/fixture/deployment_atlas.go +++ b/internal/cli/deployments/test/fixture/deployment_atlas.go @@ -68,4 +68,9 @@ func (m *MockDeploymentOpts) CommonAtlasMocks(projectID string) { ProjectClusters(projectID, gomock.Any()). Return(m.MockPaginatedAdvancedClusterDescription(), nil). Times(1) + + m.MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) } diff --git a/internal/cli/deployments/test/fixture/deployment_local.go b/internal/cli/deployments/test/fixture/deployment_local.go index 8873b03392..8cb39074cf 100644 --- a/internal/cli/deployments/test/fixture/deployment_local.go +++ b/internal/cli/deployments/test/fixture/deployment_local.go @@ -51,6 +51,11 @@ func (m *MockDeploymentOpts) LocalMockFlowWithMockContainer(ctx context.Context, ListContainers(ctx, options.MongodHostnamePrefix). Return(mockContainer, nil). Times(1) + + m.MockDeploymentTelemetry. + EXPECT(). + AppendDeploymentType(). + Times(1) } func (m *MockDeploymentOpts) LocalMockFlow(ctx context.Context) { From a27346a4b8fd3a0b4d9c82070bdeecdd25395ed5 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 18:23:15 +0000 Subject: [PATCH 13/18] Lint --- internal/cli/deployments/search/indexes/delete_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/cli/deployments/search/indexes/delete_test.go b/internal/cli/deployments/search/indexes/delete_test.go index 62fc2f14aa..a6a039c774 100644 --- a/internal/cli/deployments/search/indexes/delete_test.go +++ b/internal/cli/deployments/search/indexes/delete_test.go @@ -163,7 +163,6 @@ func TestDelete_PostRun(t *testing.T) { if err := opts.PostRun(); err != nil { t.Fatalf("PostRun() unexpected error: %v", err) } - } func TestDeleteBuilder(t *testing.T) { From 0363088404a8846e4a1788c26731dc6e6e5c71ec Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 18:24:07 +0000 Subject: [PATCH 14/18] Remove warnings --- internal/cli/deployments/options/deployment_opts_telemetry.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/cli/deployments/options/deployment_opts_telemetry.go b/internal/cli/deployments/options/deployment_opts_telemetry.go index 69af0164b9..6072c53236 100644 --- a/internal/cli/deployments/options/deployment_opts_telemetry.go +++ b/internal/cli/deployments/options/deployment_opts_telemetry.go @@ -15,7 +15,6 @@ package options import ( - "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/log" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry" ) @@ -35,7 +34,6 @@ func (opts *DeploymentOpts) AppendDeploymentType() { } else if opts.IsAtlasDeploymentType() { deploymentType = AtlasCluster } - log.Warning(deploymentType) if deploymentType != "" { telemetry.AppendOption(telemetry.WithDeploymentType(deploymentType)) } From a7c2c4b25ccc2e32c18c624f443f05f7b0d3d8a5 Mon Sep 17 00:00:00 2001 From: Bianca Date: Mon, 25 Mar 2024 18:30:52 +0000 Subject: [PATCH 15/18] Lint --- internal/cli/deployments/logs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/cli/deployments/logs.go b/internal/cli/deployments/logs.go index e07bd3ab06..96e8c26312 100644 --- a/internal/cli/deployments/logs.go +++ b/internal/cli/deployments/logs.go @@ -209,7 +209,7 @@ func LogsBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(cmd *cobra.Command, _ []string) error { + PostRunE: func(_ *cobra.Command, _ []string) error { return opts.PostRun() }, } From 494a1365dcba19424fee3410b167e756fab67fa2 Mon Sep 17 00:00:00 2001 From: Bianca Date: Tue, 26 Mar 2024 10:50:00 +0000 Subject: [PATCH 16/18] Address comments on atlas search indexes --- internal/cli/deployments/search/indexes/delete.go | 7 +++---- internal/cli/deployments/search/indexes/delete_test.go | 6 ++---- internal/cli/deployments/search/indexes/describe.go | 7 +++---- internal/cli/deployments/search/indexes/describe_test.go | 5 ++--- internal/cli/deployments/search/indexes/list.go | 7 +++---- internal/cli/deployments/search/indexes/list_test.go | 4 +--- 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/internal/cli/deployments/search/indexes/delete.go b/internal/cli/deployments/search/indexes/delete.go index 4e2bb09a3e..6202217736 100644 --- a/internal/cli/deployments/search/indexes/delete.go +++ b/internal/cli/deployments/search/indexes/delete.go @@ -99,9 +99,8 @@ func (opts *DeleteOpts) initMongoDBClient(ctx context.Context) func() error { } } -func (opts *DeleteOpts) PostRun() error { +func (opts *DeleteOpts) PostRun() { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } func DeleteBuilder() *cobra.Command { @@ -132,8 +131,8 @@ func DeleteBuilder() *cobra.Command { return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + PostRun: func(_ *cobra.Command, _ []string) { + opts.PostRun() }, } diff --git a/internal/cli/deployments/search/indexes/delete_test.go b/internal/cli/deployments/search/indexes/delete_test.go index a6a039c774..adf93f23e2 100644 --- a/internal/cli/deployments/search/indexes/delete_test.go +++ b/internal/cli/deployments/search/indexes/delete_test.go @@ -147,7 +147,7 @@ func TestDelete_RunAtlas(t *testing.T) { } } -func TestDelete_PostRun(t *testing.T) { +func TestDeleteOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") opts := &DeleteOpts{ @@ -160,9 +160,7 @@ func TestDelete_PostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := opts.PostRun(); err != nil { - t.Fatalf("PostRun() unexpected error: %v", err) - } + opts.PostRun() } func TestDeleteBuilder(t *testing.T) { diff --git a/internal/cli/deployments/search/indexes/describe.go b/internal/cli/deployments/search/indexes/describe.go index bbe910731c..45d3be8a7f 100644 --- a/internal/cli/deployments/search/indexes/describe.go +++ b/internal/cli/deployments/search/indexes/describe.go @@ -103,9 +103,8 @@ func (opts *DescribeOpts) initStore(ctx context.Context) func() error { } } -func (opts *DescribeOpts) PostRun() error { +func (opts *DescribeOpts) PostRun() { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } func DescribeBuilder() *cobra.Command { @@ -134,8 +133,8 @@ func DescribeBuilder() *cobra.Command { } return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + PostRun: func(_ *cobra.Command, _ []string) { + opts.PostRun() }, } diff --git a/internal/cli/deployments/search/indexes/describe_test.go b/internal/cli/deployments/search/indexes/describe_test.go index e3d2c53a74..7b95fe6fc8 100644 --- a/internal/cli/deployments/search/indexes/describe_test.go +++ b/internal/cli/deployments/search/indexes/describe_test.go @@ -31,7 +31,6 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer" "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" atlasv2 "go.mongodb.org/atlas-sdk/v20231115008/admin" ) @@ -182,7 +181,7 @@ func TestDescribe_RunAtlas(t *testing.T) { } } -func TestDescribe_PostRun(t *testing.T) { +func TestDescribeOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") buf := new(bytes.Buffer) @@ -200,7 +199,7 @@ func TestDescribe_PostRun(t *testing.T) { AppendDeploymentType(). Times(1) - require.NoError(t, opts.PostRun()) + opts.PostRun() } func TestDescribeBuilder(t *testing.T) { diff --git a/internal/cli/deployments/search/indexes/list.go b/internal/cli/deployments/search/indexes/list.go index f73c0571d4..8efbecb247 100644 --- a/internal/cli/deployments/search/indexes/list.go +++ b/internal/cli/deployments/search/indexes/list.go @@ -112,9 +112,8 @@ func (opts *ListOpts) validateAndPrompt() error { return nil } -func (opts *ListOpts) PostRun() error { +func (opts *ListOpts) PostRun() { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } func ListBuilder() *cobra.Command { @@ -140,8 +139,8 @@ func ListBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + PostRun: func(_ *cobra.Command, _ []string) { + opts.PostRun() }, } diff --git a/internal/cli/deployments/search/indexes/list_test.go b/internal/cli/deployments/search/indexes/list_test.go index a9dbc362ea..0d5ac0328a 100644 --- a/internal/cli/deployments/search/indexes/list_test.go +++ b/internal/cli/deployments/search/indexes/list_test.go @@ -226,9 +226,7 @@ func TestList_PostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := opts.PostRun(); err != nil { - t.Fatalf("PostRun() unexpected error: %v", err) - } + opts.PostRun() } func TestListBuilder(t *testing.T) { From 7e108b02b96198d15fb391c264c82e6c3a44395e Mon Sep 17 00:00:00 2001 From: Bianca Date: Tue, 26 Mar 2024 10:55:04 +0000 Subject: [PATCH 17/18] Address comments in deployments commands --- internal/cli/deployments/connect_test.go | 2 +- internal/cli/deployments/delete_test.go | 2 +- internal/cli/deployments/list_test.go | 2 +- internal/cli/deployments/logs.go | 7 +++---- internal/cli/deployments/logs_test.go | 6 ++---- internal/cli/deployments/pause_test.go | 2 +- internal/cli/deployments/setup.go | 7 +++---- internal/cli/deployments/setup_test.go | 6 ++---- 8 files changed, 14 insertions(+), 20 deletions(-) diff --git a/internal/cli/deployments/connect_test.go b/internal/cli/deployments/connect_test.go index 6211eeebe3..dd256f2b06 100644 --- a/internal/cli/deployments/connect_test.go +++ b/internal/cli/deployments/connect_test.go @@ -147,7 +147,7 @@ func TestRun_ConnectAtlas(t *testing.T) { `, buf.String()) } -func TestRun_PostRun(t *testing.T) { +func TestPostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentsTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") buf := new(bytes.Buffer) diff --git a/internal/cli/deployments/delete_test.go b/internal/cli/deployments/delete_test.go index 0e076079f0..094e123f4d 100644 --- a/internal/cli/deployments/delete_test.go +++ b/internal/cli/deployments/delete_test.go @@ -160,7 +160,7 @@ func TestDeleteBuilder(t *testing.T) { ) } -func TestDelete_PostRun(t *testing.T) { +func TestDeleteOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentsTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") buf := new(bytes.Buffer) diff --git a/internal/cli/deployments/list_test.go b/internal/cli/deployments/list_test.go index 310e01f265..7b94078ada 100644 --- a/internal/cli/deployments/list_test.go +++ b/internal/cli/deployments/list_test.go @@ -149,7 +149,7 @@ func TestListBuilder(t *testing.T) { ) } -func TestList_PostRun(t *testing.T) { +func TestListOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) buf := new(bytes.Buffer) diff --git a/internal/cli/deployments/logs.go b/internal/cli/deployments/logs.go index 96e8c26312..9c96b8929a 100644 --- a/internal/cli/deployments/logs.go +++ b/internal/cli/deployments/logs.go @@ -181,9 +181,8 @@ func (opts *DownloadOpts) validateAtlasFlags() error { return nil } -func (opts *DownloadOpts) PostRun() error { +func (opts *DownloadOpts) PostRun() { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } // atlas deployments logs. @@ -209,8 +208,8 @@ func LogsBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + PostRun: func(_ *cobra.Command, _ []string) { + opts.PostRun() }, } diff --git a/internal/cli/deployments/logs_test.go b/internal/cli/deployments/logs_test.go index e2cb5d96aa..f37b153f91 100644 --- a/internal/cli/deployments/logs_test.go +++ b/internal/cli/deployments/logs_test.go @@ -113,7 +113,7 @@ func TestLogs_RunAtlas(t *testing.T) { } } -func TestLogs_PostRun(t *testing.T) { +func TestDownloadOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, "localDeployment") buf := new(bytes.Buffer) @@ -131,7 +131,5 @@ func TestLogs_PostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := opts.PostRun(); err != nil { - t.Fatalf("PostRun() unexpected error: %v", err) - } + opts.PostRun() } diff --git a/internal/cli/deployments/pause_test.go b/internal/cli/deployments/pause_test.go index cec7323d88..ba50342937 100644 --- a/internal/cli/deployments/pause_test.go +++ b/internal/cli/deployments/pause_test.go @@ -121,7 +121,7 @@ func TestPause_RunAtlas(t *testing.T) { t.Log(buf.String()) } -func Test_PostRun(t *testing.T) { +func TestPauseOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, deploymentName) buf := new(bytes.Buffer) diff --git a/internal/cli/deployments/setup.go b/internal/cli/deployments/setup.go index ff52efe694..d26b78b1ce 100644 --- a/internal/cli/deployments/setup.go +++ b/internal/cli/deployments/setup.go @@ -823,9 +823,8 @@ func (opts *SetupOpts) Run(ctx context.Context) error { return opts.runAtlas(ctx) } -func (opts *SetupOpts) PostRun() error { +func (opts *SetupOpts) PostRun() { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } // atlas deployments setup. @@ -861,8 +860,8 @@ func SetupBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return opts.Run(cmd.Context()) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return opts.PostRun() + PostRun: func(_ *cobra.Command, _ []string) { + opts.PostRun() }, } diff --git a/internal/cli/deployments/setup_test.go b/internal/cli/deployments/setup_test.go index 798ae13027..4268734881 100644 --- a/internal/cli/deployments/setup_test.go +++ b/internal/cli/deployments/setup_test.go @@ -25,7 +25,7 @@ import ( "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/deployments/test/fixture" ) -func TestPostRun(t *testing.T) { +func TestSetupOpts_PostRun(t *testing.T) { ctrl := gomock.NewController(t) deploymentTest := fixture.NewMockLocalDeploymentOpts(ctrl, deploymentName) buf := new(bytes.Buffer) @@ -42,7 +42,5 @@ func TestPostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := opts.PostRun(); err != nil { - t.Fatalf("PostRun() unexpected error: %v", err) - } + opts.PostRun() } From 4cfd79fec65a757fe1c880e999c34714a257c8ed Mon Sep 17 00:00:00 2001 From: Bianca Date: Tue, 26 Mar 2024 10:56:46 +0000 Subject: [PATCH 18/18] Update connect command --- internal/cli/deployments/connect.go | 7 +++---- internal/cli/deployments/connect_test.go | 4 +--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/internal/cli/deployments/connect.go b/internal/cli/deployments/connect.go index 7898c7c1e7..8a3aa3ef2f 100644 --- a/internal/cli/deployments/connect.go +++ b/internal/cli/deployments/connect.go @@ -28,9 +28,8 @@ func Run(ctx context.Context, opts *options.ConnectOpts) error { return opts.Connect(ctx) } -func PostRun(opts *options.ConnectOpts) error { +func PostRun(opts *options.ConnectOpts) { opts.DeploymentTelemetry.AppendDeploymentType() - return nil } // atlas deployments connect [clusterName]. @@ -58,8 +57,8 @@ func ConnectBuilder() *cobra.Command { RunE: func(cmd *cobra.Command, _ []string) error { return Run(cmd.Context(), opts) }, - PostRunE: func(_ *cobra.Command, _ []string) error { - return PostRun(opts) + PostRun: func(_ *cobra.Command, _ []string) { + PostRun(opts) }, } diff --git a/internal/cli/deployments/connect_test.go b/internal/cli/deployments/connect_test.go index dd256f2b06..09aaff9384 100644 --- a/internal/cli/deployments/connect_test.go +++ b/internal/cli/deployments/connect_test.go @@ -165,9 +165,7 @@ func TestPostRun(t *testing.T) { AppendDeploymentType(). Times(1) - if err := PostRun(opts); err != nil { - t.Fatalf("PostRun() unexpected error: %v", err) - } + PostRun(opts) } func TestConnectBuilder(t *testing.T) {