Skip to content

Commit 7d368d8

Browse files
authored
INTMDB-543: LDAP Config and LDAP Verify Resources Fix (#1004)
* Update for breaking change in mongodb go library * go mod tidy * Update error logging and constant
1 parent dbf405f commit 7d368d8

File tree

5 files changed

+44
-43
lines changed

5 files changed

+44
-43
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/mongodb/terraform-provider-mongodbatlas
33
go 1.18
44

55
require (
6+
github.com/aws/aws-sdk-go v1.40.56
67
github.com/go-test/deep v1.1.0
78
github.com/gruntwork-io/terratest v0.41.7
89
github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.1
@@ -11,7 +12,7 @@ require (
1112
github.com/mwielbut/pointy v1.1.0
1213
github.com/spf13/cast v1.5.0
1314
github.com/terraform-providers/terraform-provider-aws v1.60.1-0.20210625132053-af2d5c0ad54f
14-
go.mongodb.org/atlas v0.20.1-0.20221216175724-08be1f503b9a
15+
go.mongodb.org/atlas v0.21.0
1516
go.mongodb.org/realm v0.1.0
1617
)
1718

@@ -26,7 +27,6 @@ require (
2627
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect
2728
github.com/apparentlymart/go-cidr v1.1.0 // indirect
2829
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
29-
github.com/aws/aws-sdk-go v1.40.56 // indirect
3030
github.com/beevik/etree v1.1.0 // indirect
3131
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
3232
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect

go.sum

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -919,12 +919,8 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
919919
go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
920920
go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k=
921921
go.mongodb.org/atlas v0.12.0/go.mod h1:wVCnHcm/7/IfTjEB6K8K35PLG70yGz8BdkRwX0oK9/M=
922-
go.mongodb.org/atlas v0.19.1-0.20221216041907-cf0875bb4b4b h1:frOL6IVpql4z1ApvVPZ2DaqkPp//Ez6LLOjB4r868BE=
923-
go.mongodb.org/atlas v0.19.1-0.20221216041907-cf0875bb4b4b/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts=
924-
go.mongodb.org/atlas v0.19.1-0.20221216044137-9eeca171e6ce h1:7/vO1GEEQkCFgfBm5fNXh7P0smTuIk6ebC7nlnFKVHI=
925-
go.mongodb.org/atlas v0.19.1-0.20221216044137-9eeca171e6ce/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts=
926-
go.mongodb.org/atlas v0.20.1-0.20221216175724-08be1f503b9a h1:bM1g5SMFRebki6zPratsKPXmtPPUxYEZkPLFp3BD0cI=
927-
go.mongodb.org/atlas v0.20.1-0.20221216175724-08be1f503b9a/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts=
922+
go.mongodb.org/atlas v0.21.0 h1:7Wi8Yy3hJGAyMvb8vZZjoYaQ89l58GCmIx5ppxtrrqc=
923+
go.mongodb.org/atlas v0.21.0/go.mod h1:XTjsxWgoOSwaZrQUvhTEuwjymxnF0r12RPibZuW1Uts=
928924
go.mongodb.org/realm v0.1.0 h1:zJiXyLaZrznQ+Pz947ziSrDKUep39DO4SfA0Fzx8M4M=
929925
go.mongodb.org/realm v0.1.0/go.mod h1:4Vj6iy+Puo1TDERcoh4XZ+pjtwbOzPpzqy3Cwe8ZmDM=
930926
go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o=

mongodbatlas/provider.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ var (
3535
baseURL = ""
3636
)
3737

38+
const (
39+
endPointSTSDefault = "https://sts.amazonaws.com"
40+
)
41+
3842
type SecretData struct {
3943
PublicKey string `json:"public_key"`
4044
PrivateKey string `json:"private_key"`
@@ -318,7 +322,7 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{}
318322
func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, awsSecretAccessKey, awsSessionToken, endpoint string) (Config, error) {
319323
ep, err := endpoints.GetSTSRegionalEndpoint("regional")
320324
if err != nil {
321-
fmt.Printf("GetSTSRegionalEndpoint error: %s", err)
325+
log.Printf("GetSTSRegionalEndpoint error: %s", err)
322326
return *config, err
323327
}
324328

@@ -327,7 +331,7 @@ func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, aws
327331
if service == endpoints.StsServiceID {
328332
if endpoint == "" {
329333
return endpoints.ResolvedEndpoint{
330-
URL: "https://sts.amazonaws.com",
334+
URL: endPointSTSDefault,
331335
SigningRegion: region,
332336
}, nil
333337
}
@@ -353,17 +357,17 @@ func configureCredentialsSTS(config *Config, secret, region, awsAccessKeyID, aws
353357

354358
_, err = sess.Config.Credentials.Get()
355359
if err != nil {
356-
fmt.Printf("Session get credentials error: %s", err)
360+
log.Printf("Session get credentials error: %s", err)
357361
return *config, err
358362
}
359363
_, err = creds.Get()
360364
if err != nil {
361-
fmt.Printf("STS get credentials error: %s", err)
365+
log.Printf("STS get credentials error: %s", err)
362366
return *config, err
363367
}
364368
secretString, err := secretsManagerGetSecretValue(sess, &aws.Config{Credentials: creds, Region: aws.String(region)}, secret)
365369
if err != nil {
366-
fmt.Printf("Get Secrets error: %s", err)
370+
log.Printf("Get Secrets error: %s", err)
367371
return *config, err
368372
}
369373

@@ -397,25 +401,24 @@ func secretsManagerGetSecretValue(sess *session.Session, creds *aws.Config, secr
397401
if aerr, ok := err.(awserr.Error); ok {
398402
switch aerr.Code() {
399403
case secretsmanager.ErrCodeResourceNotFoundException:
400-
fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
404+
log.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
401405
case secretsmanager.ErrCodeInvalidParameterException:
402-
fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
406+
log.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
403407
case secretsmanager.ErrCodeInvalidRequestException:
404-
fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
408+
log.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
405409
case secretsmanager.ErrCodeDecryptionFailure:
406-
fmt.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error())
410+
log.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error())
407411
case secretsmanager.ErrCodeInternalServiceError:
408-
fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
412+
log.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
409413
default:
410-
fmt.Println(aerr.Error())
414+
log.Println(aerr.Error())
411415
}
412416
} else {
413-
fmt.Println(err.Error())
417+
log.Println(err.Error())
414418
}
415419
return "", err
416420
}
417421

418-
fmt.Println(result)
419422
return *result.SecretString, err
420423
}
421424

mongodbatlas/resource_mongodbatlas_ldap_configuration.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
10+
"github.com/mwielbut/pointy"
1011
matlas "go.mongodb.org/atlas/mongodbatlas"
1112
)
1213

@@ -104,35 +105,35 @@ func resourceMongoDBAtlasLDAPConfigurationCreate(ctx context.Context, d *schema.
104105
ldap := &matlas.LDAP{}
105106

106107
if v, ok := d.GetOk("authentication_enabled"); ok {
107-
ldap.AuthenticationEnabled = v.(bool)
108+
ldap.AuthenticationEnabled = pointy.Bool(v.(bool))
108109
}
109110

110111
if v, ok := d.GetOk("authorization_enabled"); ok {
111-
ldap.AuthorizationEnabled = v.(bool)
112+
ldap.AuthorizationEnabled = pointy.Bool(v.(bool))
112113
}
113114

114115
if v, ok := d.GetOk("hostname"); ok {
115-
ldap.Hostname = v.(string)
116+
ldap.Hostname = pointy.String(v.(string))
116117
}
117118

118119
if v, ok := d.GetOk("port"); ok {
119-
ldap.Port = v.(int)
120+
ldap.Port = pointy.Int(v.(int))
120121
}
121122

122123
if v, ok := d.GetOk("bind_username"); ok {
123-
ldap.BindUsername = v.(string)
124+
ldap.BindUsername = pointy.String(v.(string))
124125
}
125126

126127
if v, ok := d.GetOk("bind_password"); ok {
127-
ldap.BindPassword = v.(string)
128+
ldap.BindPassword = pointy.String(v.(string))
128129
}
129130

130131
if v, ok := d.GetOk("ca_certificate"); ok {
131-
ldap.CaCertificate = v.(string)
132+
ldap.CaCertificate = pointy.String(v.(string))
132133
}
133134

134135
if v, ok := d.GetOk("authz_query_template"); ok {
135-
ldap.AuthzQueryTemplate = v.(string)
136+
ldap.AuthzQueryTemplate = pointy.String(v.(string))
136137
}
137138

138139
if v, ok := d.GetOk("user_to_dn_mapping"); ok {
@@ -201,35 +202,35 @@ func resourceMongoDBAtlasLDAPConfigurationUpdate(ctx context.Context, d *schema.
201202
ldap := &matlas.LDAP{}
202203

203204
if d.HasChange("authentication_enabled") {
204-
ldap.AuthenticationEnabled = d.Get("").(bool)
205+
ldap.AuthenticationEnabled = pointy.Bool(d.Get("").(bool))
205206
}
206207

207208
if d.HasChange("authorization_enabled") {
208-
ldap.AuthorizationEnabled = d.Get("authorization_enabled").(bool)
209+
ldap.AuthorizationEnabled = pointy.Bool(d.Get("authorization_enabled").(bool))
209210
}
210211

211212
if d.HasChange("hostname") {
212-
ldap.Hostname = d.Get("hostname").(string)
213+
ldap.Hostname = pointy.String(d.Get("hostname").(string))
213214
}
214215

215216
if d.HasChange("port") {
216-
ldap.Port = d.Get("port").(int)
217+
ldap.Port = pointy.Int(d.Get("port").(int))
217218
}
218219

219220
if d.HasChange("bind_username") {
220-
ldap.BindUsername = d.Get("bind_username").(string)
221+
ldap.BindUsername = pointy.String(d.Get("bind_username").(string))
221222
}
222223

223224
if d.HasChange("bind_password") {
224-
ldap.BindPassword = d.Get("bind_password").(string)
225+
ldap.BindPassword = pointy.String(d.Get("bind_password").(string))
225226
}
226227

227228
if d.HasChange("ca_certificate") {
228-
ldap.CaCertificate = d.Get("ca_certificate").(string)
229+
ldap.CaCertificate = pointy.String(d.Get("ca_certificate").(string))
229230
}
230231

231232
if d.HasChange("authz_query_template") {
232-
ldap.AuthzQueryTemplate = d.Get("authz_query_template").(string)
233+
ldap.AuthzQueryTemplate = pointy.String(d.Get("authz_query_template").(string))
233234
}
234235

235236
if d.HasChange("user_to_dn_mapping") {

mongodbatlas/resource_mongodbatlas_ldap_verify.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1212
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
13+
"github.com/mwielbut/pointy"
1314

1415
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1516
matlas "go.mongodb.org/atlas/mongodbatlas"
@@ -118,22 +119,22 @@ func resourceMongoDBAtlasLDAPVerifyCreate(ctx context.Context, d *schema.Resourc
118119
ldapReq := &matlas.LDAP{}
119120

120121
if v, ok := d.GetOk("hostname"); ok {
121-
ldapReq.Hostname = v.(string)
122+
ldapReq.Hostname = pointy.String(v.(string))
122123
}
123124
if v, ok := d.GetOk("port"); ok {
124-
ldapReq.Port = v.(int)
125+
ldapReq.Port = pointy.Int(v.(int))
125126
}
126127
if v, ok := d.GetOk("bind_username"); ok {
127-
ldapReq.BindUsername = v.(string)
128+
ldapReq.BindUsername = pointy.String(v.(string))
128129
}
129130
if v, ok := d.GetOk("bind_password"); ok {
130-
ldapReq.BindPassword = v.(string)
131+
ldapReq.BindPassword = pointy.String(v.(string))
131132
}
132133
if v, ok := d.GetOk("ca_certificate"); ok {
133-
ldapReq.CaCertificate = v.(string)
134+
ldapReq.CaCertificate = pointy.String(v.(string))
134135
}
135136
if v, ok := d.GetOk("authz_query_template"); ok {
136-
ldapReq.AuthzQueryTemplate = v.(string)
137+
ldapReq.AuthzQueryTemplate = pointy.String(v.(string))
137138
}
138139

139140
ldap, _, err := conn.LDAPConfigurations.Verify(ctx, projectID, ldapReq)

0 commit comments

Comments
 (0)