From e05220eb0e819575ed22c553030d5226a3b5c301 Mon Sep 17 00:00:00 2001 From: admin <33664051+martinstibbe@users.noreply.github.com> Date: Thu, 12 Jan 2023 12:30:57 -0600 Subject: [PATCH 1/3] Update for breaking change in mongodb go library --- go.mod | 2 +- go.sum | 2 ++ ...esource_mongodbatlas_ldap_configuration.go | 33 ++++++++++--------- .../resource_mongodbatlas_ldap_verify.go | 13 ++++---- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/go.mod b/go.mod index 554e240f7e..4645c50f3c 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/mwielbut/pointy v1.1.0 github.com/spf13/cast v1.5.0 github.com/terraform-providers/terraform-provider-aws v1.60.1-0.20210625132053-af2d5c0ad54f - go.mongodb.org/atlas v0.19.0 + go.mongodb.org/atlas v0.21.0 go.mongodb.org/realm v0.1.0 ) diff --git a/go.sum b/go.sum index 103fa1981f..5f884466bf 100644 --- a/go.sum +++ b/go.sum @@ -923,6 +923,8 @@ go.mongodb.org/atlas v0.18.1-0.20221109142841-f9f8ebe7b9b9 h1:9m35o4kyRYjwbsIb/l go.mongodb.org/atlas v0.18.1-0.20221109142841-f9f8ebe7b9b9/go.mod h1:PFk1IGhiGjFXHGVspOK7i1U2nnPjK8wAjYwQf6FoVf4= go.mongodb.org/atlas v0.19.0 h1:gvezG9d0KsSDaExEdTtcGqZHRvvVazzuEcBUpBXxmlg= go.mongodb.org/atlas v0.19.0/go.mod h1:PFk1IGhiGjFXHGVspOK7i1U2nnPjK8wAjYwQf6FoVf4= +go.mongodb.org/atlas v0.21.0 h1:7Wi8Yy3hJGAyMvb8vZZjoYaQ89l58GCmIx5ppxtrrqc= +go.mongodb.org/atlas v0.21.0/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts= go.mongodb.org/realm v0.1.0 h1:zJiXyLaZrznQ+Pz947ziSrDKUep39DO4SfA0Fzx8M4M= go.mongodb.org/realm v0.1.0/go.mod h1:4Vj6iy+Puo1TDERcoh4XZ+pjtwbOzPpzqy3Cwe8ZmDM= go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= diff --git a/mongodbatlas/resource_mongodbatlas_ldap_configuration.go b/mongodbatlas/resource_mongodbatlas_ldap_configuration.go index 9504e9531f..014fb4ed98 100644 --- a/mongodbatlas/resource_mongodbatlas_ldap_configuration.go +++ b/mongodbatlas/resource_mongodbatlas_ldap_configuration.go @@ -7,6 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/mwielbut/pointy" matlas "go.mongodb.org/atlas/mongodbatlas" ) @@ -104,35 +105,35 @@ func resourceMongoDBAtlasLDAPConfigurationCreate(ctx context.Context, d *schema. ldap := &matlas.LDAP{} if v, ok := d.GetOk("authentication_enabled"); ok { - ldap.AuthenticationEnabled = v.(bool) + ldap.AuthenticationEnabled = pointy.Bool(v.(bool)) } if v, ok := d.GetOk("authorization_enabled"); ok { - ldap.AuthorizationEnabled = v.(bool) + ldap.AuthorizationEnabled = pointy.Bool(v.(bool)) } if v, ok := d.GetOk("hostname"); ok { - ldap.Hostname = v.(string) + ldap.Hostname = pointy.String(v.(string)) } if v, ok := d.GetOk("port"); ok { - ldap.Port = v.(int) + ldap.Port = pointy.Int(v.(int)) } if v, ok := d.GetOk("bind_username"); ok { - ldap.BindUsername = v.(string) + ldap.BindUsername = pointy.String(v.(string)) } if v, ok := d.GetOk("bind_password"); ok { - ldap.BindPassword = v.(string) + ldap.BindPassword = pointy.String(v.(string)) } if v, ok := d.GetOk("ca_certificate"); ok { - ldap.CaCertificate = v.(string) + ldap.CaCertificate = pointy.String(v.(string)) } if v, ok := d.GetOk("authz_query_template"); ok { - ldap.AuthzQueryTemplate = v.(string) + ldap.AuthzQueryTemplate = pointy.String(v.(string)) } if v, ok := d.GetOk("user_to_dn_mapping"); ok { @@ -201,35 +202,35 @@ func resourceMongoDBAtlasLDAPConfigurationUpdate(ctx context.Context, d *schema. ldap := &matlas.LDAP{} if d.HasChange("authentication_enabled") { - ldap.AuthenticationEnabled = d.Get("").(bool) + ldap.AuthenticationEnabled = pointy.Bool(d.Get("").(bool)) } if d.HasChange("authorization_enabled") { - ldap.AuthorizationEnabled = d.Get("authorization_enabled").(bool) + ldap.AuthorizationEnabled = pointy.Bool(d.Get("authorization_enabled").(bool)) } if d.HasChange("hostname") { - ldap.Hostname = d.Get("hostname").(string) + ldap.Hostname = pointy.String(d.Get("hostname").(string)) } if d.HasChange("port") { - ldap.Port = d.Get("port").(int) + ldap.Port = pointy.Int(d.Get("port").(int)) } if d.HasChange("bind_username") { - ldap.BindUsername = d.Get("bind_username").(string) + ldap.BindUsername = pointy.String(d.Get("bind_username").(string)) } if d.HasChange("bind_password") { - ldap.BindPassword = d.Get("bind_password").(string) + ldap.BindPassword = pointy.String(d.Get("bind_password").(string)) } if d.HasChange("ca_certificate") { - ldap.CaCertificate = d.Get("ca_certificate").(string) + ldap.CaCertificate = pointy.String(d.Get("ca_certificate").(string)) } if d.HasChange("authz_query_template") { - ldap.AuthzQueryTemplate = d.Get("authz_query_template").(string) + ldap.AuthzQueryTemplate = pointy.String(d.Get("authz_query_template").(string)) } if d.HasChange("user_to_dn_mapping") { diff --git a/mongodbatlas/resource_mongodbatlas_ldap_verify.go b/mongodbatlas/resource_mongodbatlas_ldap_verify.go index 4dda10b26d..756f7ca249 100644 --- a/mongodbatlas/resource_mongodbatlas_ldap_verify.go +++ b/mongodbatlas/resource_mongodbatlas_ldap_verify.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/mwielbut/pointy" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" matlas "go.mongodb.org/atlas/mongodbatlas" @@ -118,22 +119,22 @@ func resourceMongoDBAtlasLDAPVerifyCreate(ctx context.Context, d *schema.Resourc ldapReq := &matlas.LDAP{} if v, ok := d.GetOk("hostname"); ok { - ldapReq.Hostname = v.(string) + ldapReq.Hostname = pointy.String(v.(string)) } if v, ok := d.GetOk("port"); ok { - ldapReq.Port = v.(int) + ldapReq.Port = pointy.Int(v.(int)) } if v, ok := d.GetOk("bind_username"); ok { - ldapReq.BindUsername = v.(string) + ldapReq.BindUsername = pointy.String(v.(string)) } if v, ok := d.GetOk("bind_password"); ok { - ldapReq.BindPassword = v.(string) + ldapReq.BindPassword = pointy.String(v.(string)) } if v, ok := d.GetOk("ca_certificate"); ok { - ldapReq.CaCertificate = v.(string) + ldapReq.CaCertificate = pointy.String(v.(string)) } if v, ok := d.GetOk("authz_query_template"); ok { - ldapReq.AuthzQueryTemplate = v.(string) + ldapReq.AuthzQueryTemplate = pointy.String(v.(string)) } ldap, _, err := conn.LDAPConfigurations.Verify(ctx, projectID, ldapReq) From 4fbfa36fa0a51006c1b985b22bf71616e5bdd53a Mon Sep 17 00:00:00 2001 From: admin <33664051+martinstibbe@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:59:16 -0600 Subject: [PATCH 2/3] go mod tidy --- go.mod | 3 ++- go.sum | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 20ce7bc97b..866a36b6f7 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/mongodb/terraform-provider-mongodbatlas go 1.18 require ( + github.com/aws/aws-sdk-go v1.40.56 github.com/go-test/deep v1.1.0 github.com/gruntwork-io/terratest v0.41.7 github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.1 @@ -12,6 +13,7 @@ require ( github.com/spf13/cast v1.5.0 github.com/terraform-providers/terraform-provider-aws v1.60.1-0.20210625132053-af2d5c0ad54f go.mongodb.org/atlas v0.21.0 + go.mongodb.org/realm v0.1.0 ) require ( @@ -25,7 +27,6 @@ require ( github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/aws/aws-sdk-go v1.40.56 // indirect github.com/beevik/etree v1.1.0 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect diff --git a/go.sum b/go.sum index 5f884466bf..f2f150a18d 100644 --- a/go.sum +++ b/go.sum @@ -919,10 +919,6 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= go.mongodb.org/atlas v0.12.0/go.mod h1:wVCnHcm/7/IfTjEB6K8K35PLG70yGz8BdkRwX0oK9/M= -go.mongodb.org/atlas v0.18.1-0.20221109142841-f9f8ebe7b9b9 h1:9m35o4kyRYjwbsIb/lPrjxJ6afPpn9zwOF5i3SIY5Lg= -go.mongodb.org/atlas v0.18.1-0.20221109142841-f9f8ebe7b9b9/go.mod h1:PFk1IGhiGjFXHGVspOK7i1U2nnPjK8wAjYwQf6FoVf4= -go.mongodb.org/atlas v0.19.0 h1:gvezG9d0KsSDaExEdTtcGqZHRvvVazzuEcBUpBXxmlg= -go.mongodb.org/atlas v0.19.0/go.mod h1:PFk1IGhiGjFXHGVspOK7i1U2nnPjK8wAjYwQf6FoVf4= go.mongodb.org/atlas v0.21.0 h1:7Wi8Yy3hJGAyMvb8vZZjoYaQ89l58GCmIx5ppxtrrqc= go.mongodb.org/atlas v0.21.0/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts= go.mongodb.org/realm v0.1.0 h1:zJiXyLaZrznQ+Pz947ziSrDKUep39DO4SfA0Fzx8M4M= From eeaf830a50203838ba2c59f38796ce5eac92d277 Mon Sep 17 00:00:00 2001 From: admin <33664051+martinstibbe@users.noreply.github.com> Date: Wed, 18 Jan 2023 13:31:19 -0600 Subject: [PATCH 3/3] Update error logging and constant --- mongodbatlas/provider.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/mongodbatlas/provider.go b/mongodbatlas/provider.go index 4048a45565..2d94cdb26a 100644 --- a/mongodbatlas/provider.go +++ b/mongodbatlas/provider.go @@ -35,6 +35,10 @@ var ( baseURL = "" ) +const ( + endPointSTSDefault = "https://sts.amazonaws.com" +) + type SecretData struct { PublicKey string `json:"public_key"` PrivateKey string `json:"private_key"` @@ -309,7 +313,7 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{} func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, awsSecretAccessKey, awsSessionToken, endpoint string) (Config, error) { ep, err := endpoints.GetSTSRegionalEndpoint("regional") if err != nil { - fmt.Printf("GetSTSRegionalEndpoint error: %s", err) + log.Printf("GetSTSRegionalEndpoint error: %s", err) return *config, err } @@ -318,7 +322,7 @@ func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, aws if service == endpoints.StsServiceID { if endpoint == "" { return endpoints.ResolvedEndpoint{ - URL: "https://sts.amazonaws.com", + URL: endPointSTSDefault, SigningRegion: region, }, nil } @@ -344,17 +348,17 @@ func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, aws _, err = sess.Config.Credentials.Get() if err != nil { - fmt.Printf("Session get credentials error: %s", err) + log.Printf("Session get credentials error: %s", err) return *config, err } _, err = creds.Get() if err != nil { - fmt.Printf("STS get credentials error: %s", err) + log.Printf("STS get credentials error: %s", err) return *config, err } secretString, err := secretsManagerGetSecretValue(sess, &aws.Config{Credentials: creds, Region: aws.String(region)}, secret) if err != nil { - fmt.Printf("Get Secrets error: %s", err) + log.Printf("Get Secrets error: %s", err) return *config, err } @@ -388,25 +392,24 @@ func secretsManagerGetSecretValue(sess *session.Session, creds *aws.Config, secr if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case secretsmanager.ErrCodeResourceNotFoundException: - fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error()) + log.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error()) case secretsmanager.ErrCodeInvalidParameterException: - fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error()) + log.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error()) case secretsmanager.ErrCodeInvalidRequestException: - fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error()) + log.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error()) case secretsmanager.ErrCodeDecryptionFailure: - fmt.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error()) + log.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error()) case secretsmanager.ErrCodeInternalServiceError: - fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error()) + log.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error()) default: - fmt.Println(aerr.Error()) + log.Println(aerr.Error()) } } else { - fmt.Println(err.Error()) + log.Println(err.Error()) } return "", err } - fmt.Println(result) return *result.SecretString, err }