From a1f231c9feae47da881e8c9fdc9a543023c4a4c9 Mon Sep 17 00:00:00 2001 From: svc-apix-bot Date: Fri, 11 Apr 2025 20:54:06 +0100 Subject: [PATCH 1/5] include previewProviderV2Cluster info in user agent --- internal/config/client.go | 40 +++++++++++++++++------------------ internal/provider/provider.go | 11 +++++----- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/internal/config/client.go b/internal/config/client.go index a8490f2608..d90d14620e 100644 --- a/internal/config/client.go +++ b/internal/config/client.go @@ -9,7 +9,6 @@ import ( "strings" "time" - adminpreview "github.com/mongodb/atlas-sdk-go/admin" admin20240530 "go.mongodb.org/atlas-sdk/v20240530005/admin" admin20240805 "go.mongodb.org/atlas-sdk/v20240805005/admin" admin20241113 "go.mongodb.org/atlas-sdk/v20241113005/admin" @@ -20,6 +19,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging" "github.com/mongodb-forks/digest" + adminpreview "github.com/mongodb/atlas-sdk-go/admin" "github.com/spf13/cast" "github.com/mongodb/terraform-provider-mongodbatlas/version" @@ -43,12 +43,13 @@ type MongoDBClient struct { // Config contains the configurations needed to use SDKs type Config struct { - AssumeRole *AssumeRole - PublicKey string - PrivateKey string - BaseURL string - RealmBaseURL string - TerraformVersion string + AssumeRole *AssumeRole + PublicKey string + PrivateKey string + BaseURL string + RealmBaseURL string + TerraformVersion string + PreviewV2AdvancedClusterEnabled bool } type AssumeRole struct { @@ -68,11 +69,6 @@ type SecretData struct { PrivateKey string `json:"private_key"` } -type PlatformVersion struct { - Name string - Version string -} - // NewClient func... func (c *Config) NewClient(ctx context.Context) (any, error) { // setup a transport to handle digest @@ -237,16 +233,20 @@ func (c *MongoDBClient) GetRealmClient(ctx context.Context) (*realm.Client, erro } func userAgent(c *Config) string { - platformVersions := []PlatformVersion{ - {toolName, version.ProviderVersion}, - {terraformPlatformName, c.TerraformVersion}, + versions := []string{ + fmt.Sprintf("%s/%s", toolName, version.ProviderVersion), + fmt.Sprintf("%s/%s", terraformPlatformName, c.TerraformVersion), + } + + var metadata []string + if c.PreviewV2AdvancedClusterEnabled { + metadata = append(metadata, "IsPreviewV2AdvancedClusterEnabled=true") } - var parts []string - for _, info := range platformVersions { - part := fmt.Sprintf("%s/%s", info.Name, info.Version) - parts = append(parts, part) + userAgent := strings.Join(versions, " ") + if len(metadata) > 0 { + userAgent = fmt.Sprintf("%s (%s)", userAgent, strings.Join(metadata, "; ")) } - return strings.Join(parts, " ") + return userAgent } diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 44c26bf2e0..586ef9d007 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -243,11 +243,12 @@ func (p *MongodbtlasProvider) Configure(ctx context.Context, req provider.Config } cfg := config.Config{ - PublicKey: data.PublicKey.ValueString(), - PrivateKey: data.PrivateKey.ValueString(), - BaseURL: data.BaseURL.ValueString(), - RealmBaseURL: data.RealmBaseURL.ValueString(), - TerraformVersion: req.TerraformVersion, + PublicKey: data.PublicKey.ValueString(), + PrivateKey: data.PrivateKey.ValueString(), + BaseURL: data.BaseURL.ValueString(), + RealmBaseURL: data.RealmBaseURL.ValueString(), + TerraformVersion: req.TerraformVersion, + PreviewV2AdvancedClusterEnabled: config.PreviewProviderV2AdvancedCluster(), } var assumeRoles []tfAssumeRoleModel From 798046df9106882267b1b7397aeeb7bbd55d7a21 Mon Sep 17 00:00:00 2001 From: svc-apix-bot Date: Mon, 14 Apr 2025 19:22:58 +0100 Subject: [PATCH 2/5] comments --- internal/config/client.go | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/internal/config/client.go b/internal/config/client.go index d90d14620e..abf7b994ed 100644 --- a/internal/config/client.go +++ b/internal/config/client.go @@ -6,6 +6,7 @@ import ( "fmt" "net/http" "net/url" + "strconv" "strings" "time" @@ -26,8 +27,9 @@ import ( ) const ( - toolName = "terraform-provider-mongodbatlas" - terraformPlatformName = "Terraform" + toolName = "terraform-provider-mongodbatlas" + terraformPlatformName = "Terraform" + previewV2AdvancedClusterEnabledUAKey = "IsAdvancedClusterPreview" ) // MongoDBClient contains the mongodbatlas clients and configurations @@ -69,6 +71,11 @@ type SecretData struct { PrivateKey string `json:"private_key"` } +type UAMetadata struct { + Name string + Version string +} + // NewClient func... func (c *Config) NewClient(ctx context.Context) (any, error) { // setup a transport to handle digest @@ -233,20 +240,22 @@ func (c *MongoDBClient) GetRealmClient(ctx context.Context) (*realm.Client, erro } func userAgent(c *Config) string { - versions := []string{ - fmt.Sprintf("%s/%s", toolName, version.ProviderVersion), - fmt.Sprintf("%s/%s", terraformPlatformName, c.TerraformVersion), + isPreviewV2AdvancedClusterEnabled := false + if c.PreviewV2AdvancedClusterEnabled { + isPreviewV2AdvancedClusterEnabled = true } - var metadata []string - if c.PreviewV2AdvancedClusterEnabled { - metadata = append(metadata, "IsPreviewV2AdvancedClusterEnabled=true") + metadata := []UAMetadata{ + {toolName, version.ProviderVersion}, + {terraformPlatformName, c.TerraformVersion}, + {previewV2AdvancedClusterEnabledUAKey, strconv.FormatBool(isPreviewV2AdvancedClusterEnabled)}, } - userAgent := strings.Join(versions, " ") - if len(metadata) > 0 { - userAgent = fmt.Sprintf("%s (%s)", userAgent, strings.Join(metadata, "; ")) + var parts []string + for _, info := range metadata { + part := fmt.Sprintf("%s/%s", info.Name, info.Version) + parts = append(parts, part) } - return userAgent + return strings.Join(parts, " ") } From 57388e36fa1ae860909307052feba4c85483309b Mon Sep 17 00:00:00 2001 From: svc-apix-bot Date: Mon, 14 Apr 2025 19:29:34 +0100 Subject: [PATCH 3/5] min --- internal/config/client.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/internal/config/client.go b/internal/config/client.go index abf7b994ed..fb350126c7 100644 --- a/internal/config/client.go +++ b/internal/config/client.go @@ -240,13 +240,7 @@ func (c *MongoDBClient) GetRealmClient(ctx context.Context) (*realm.Client, erro } func userAgent(c *Config) string { - isPreviewV2AdvancedClusterEnabled := false - if c.PreviewV2AdvancedClusterEnabled { - isPreviewV2AdvancedClusterEnabled = true - } - - metadata := []UAMetadata{ - {toolName, version.ProviderVersion}, + isPreviewV2AdvancedClusterEnabled := c.PreviewV2AdvancedClusterEnabledviVersion}, {terraformPlatformName, c.TerraformVersion}, {previewV2AdvancedClusterEnabledUAKey, strconv.FormatBool(isPreviewV2AdvancedClusterEnabled)}, } From 6051cb978e1d0973f79e2d4943b6da6d08066c55 Mon Sep 17 00:00:00 2001 From: svc-apix-bot Date: Mon, 14 Apr 2025 19:30:02 +0100 Subject: [PATCH 4/5] min --- internal/config/client.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/config/client.go b/internal/config/client.go index fb350126c7..12d48b8b32 100644 --- a/internal/config/client.go +++ b/internal/config/client.go @@ -240,7 +240,10 @@ func (c *MongoDBClient) GetRealmClient(ctx context.Context) (*realm.Client, erro } func userAgent(c *Config) string { - isPreviewV2AdvancedClusterEnabled := c.PreviewV2AdvancedClusterEnabledviVersion}, + isPreviewV2AdvancedClusterEnabled := c.PreviewV2AdvancedClusterEnabled + + metadata := []UAMetadata{ + {toolName, version.ProviderVersion}, {terraformPlatformName, c.TerraformVersion}, {previewV2AdvancedClusterEnabledUAKey, strconv.FormatBool(isPreviewV2AdvancedClusterEnabled)}, } From 07c9915e3c9da403bbbce43bf1cfa239d10940b3 Mon Sep 17 00:00:00 2001 From: svc-apix-bot Date: Wed, 16 Apr 2025 13:01:27 +0100 Subject: [PATCH 5/5] PR comments --- internal/config/client.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/config/client.go b/internal/config/client.go index 12d48b8b32..a79cb0e905 100644 --- a/internal/config/client.go +++ b/internal/config/client.go @@ -29,7 +29,7 @@ import ( const ( toolName = "terraform-provider-mongodbatlas" terraformPlatformName = "Terraform" - previewV2AdvancedClusterEnabledUAKey = "IsAdvancedClusterPreview" + previewV2AdvancedClusterEnabledUAKey = "AdvancedClusterPreview" ) // MongoDBClient contains the mongodbatlas clients and configurations @@ -72,8 +72,8 @@ type SecretData struct { } type UAMetadata struct { - Name string - Version string + Name string + Value string } // NewClient func... @@ -250,7 +250,7 @@ func userAgent(c *Config) string { var parts []string for _, info := range metadata { - part := fmt.Sprintf("%s/%s", info.Name, info.Version) + part := fmt.Sprintf("%s/%s", info.Name, info.Value) parts = append(parts, part) }