@@ -55,29 +55,30 @@ func testSweepIamServerCertificates(region string) error {
55
55
56
56
func TestAccAWSIAMServerCertificate_basic (t * testing.T ) {
57
57
var cert iam.ServerCertificate
58
- rInt := acctest .RandInt ()
59
- var certBody string
58
+
60
59
resourceName := "aws_iam_server_certificate.test_cert"
61
- resourceId := fmt .Sprintf ("terraform-test-cert-%d" , rInt )
60
+ rName := acctest .RandomWithPrefix ("tf-acc-test" )
61
+
62
+ key := tlsRsaPrivateKeyPem (2048 )
63
+ certificate := tlsRsaX509SelfSignedCertificatePem (key , "example.com" )
62
64
63
65
resource .ParallelTest (t , resource.TestCase {
64
66
PreCheck : func () { testAccPreCheck (t ) },
65
- Providers : testAccProvidersWithTLS ,
67
+ Providers : testAccProviders ,
66
68
CheckDestroy : testAccCheckIAMServerCertificateDestroy ,
67
69
Steps : []resource.TestStep {
68
70
{
69
- Config : testAccIAMServerCertConfig (rInt ),
71
+ Config : testAccIAMServerCertConfig (rName , key , certificate ),
70
72
Check : resource .ComposeTestCheckFunc (
71
73
testAccCheckCertExists (resourceName , & cert ),
72
- getCertBody (& certBody ),
73
- testAccCheckAWSServerCertAttributes (& cert , & certBody ),
74
+ testAccCheckAWSServerCertAttributes (& cert , & certificate ),
74
75
),
75
76
},
76
77
{
77
78
ResourceName : resourceName ,
78
79
ImportState : true ,
79
80
ImportStateVerify : true ,
80
- ImportStateId : resourceId ,
81
+ ImportStateId : rName ,
81
82
ImportStateVerifyIgnore : []string {
82
83
"private_key" },
83
84
},
@@ -87,20 +88,22 @@ func TestAccAWSIAMServerCertificate_basic(t *testing.T) {
87
88
88
89
func TestAccAWSIAMServerCertificate_name_prefix (t * testing.T ) {
89
90
var cert iam.ServerCertificate
90
- var certBody string
91
+
91
92
resourceName := "aws_iam_server_certificate.test_cert"
92
93
94
+ key := tlsRsaPrivateKeyPem (2048 )
95
+ certificate := tlsRsaX509SelfSignedCertificatePem (key , "example.com" )
96
+
93
97
resource .ParallelTest (t , resource.TestCase {
94
98
PreCheck : func () { testAccPreCheck (t ) },
95
- Providers : testAccProvidersWithTLS ,
99
+ Providers : testAccProviders ,
96
100
CheckDestroy : testAccCheckIAMServerCertificateDestroy ,
97
101
Steps : []resource.TestStep {
98
102
{
99
- Config : testAccIAMServerCertConfig_random (),
103
+ Config : testAccIAMServerCertConfig_random (key , certificate ),
100
104
Check : resource .ComposeTestCheckFunc (
101
105
testAccCheckCertExists (resourceName , & cert ),
102
- getCertBody (& certBody ),
103
- testAccCheckAWSServerCertAttributes (& cert , & certBody ),
106
+ testAccCheckAWSServerCertAttributes (& cert , & certificate ),
104
107
),
105
108
},
106
109
},
@@ -111,6 +114,9 @@ func TestAccAWSIAMServerCertificate_disappears(t *testing.T) {
111
114
var cert iam.ServerCertificate
112
115
resourceName := "aws_iam_server_certificate.test_cert"
113
116
117
+ key := tlsRsaPrivateKeyPem (2048 )
118
+ certificate := tlsRsaX509SelfSignedCertificatePem (key , "example.com" )
119
+
114
120
testDestroyCert := func (* terraform.State ) error {
115
121
// reach out and DELETE the Cert
116
122
conn := testAccProvider .Meta ().(* AWSClient ).iamconn
@@ -127,11 +133,11 @@ func TestAccAWSIAMServerCertificate_disappears(t *testing.T) {
127
133
128
134
resource .ParallelTest (t , resource.TestCase {
129
135
PreCheck : func () { testAccPreCheck (t ) },
130
- Providers : testAccProvidersWithTLS ,
136
+ Providers : testAccProviders ,
131
137
CheckDestroy : testAccCheckIAMServerCertificateDestroy ,
132
138
Steps : []resource.TestStep {
133
139
{
134
- Config : testAccIAMServerCertConfig_random (),
140
+ Config : testAccIAMServerCertConfig_random (key , certificate ),
135
141
Check : resource .ComposeTestCheckFunc (
136
142
testAccCheckCertExists (resourceName , & cert ),
137
143
testDestroyCert ,
@@ -180,6 +186,40 @@ func TestAccAWSIAMServerCertificate_file(t *testing.T) {
180
186
})
181
187
}
182
188
189
+ func TestAccAWSIAMServerCertificate_Path (t * testing.T ) {
190
+ var cert iam.ServerCertificate
191
+
192
+ resourceName := "aws_iam_server_certificate.test_cert"
193
+ rName := acctest .RandomWithPrefix ("tf-acc-test" )
194
+
195
+ key := tlsRsaPrivateKeyPem (2048 )
196
+ certificate := tlsRsaX509SelfSignedCertificatePem (key , "example.com" )
197
+
198
+ resource .ParallelTest (t , resource.TestCase {
199
+ PreCheck : func () { testAccPreCheck (t ) },
200
+ Providers : testAccProviders ,
201
+ CheckDestroy : testAccCheckIAMServerCertificateDestroy ,
202
+ Steps : []resource.TestStep {
203
+ {
204
+ Config : testAccIAMServerCertConfig_path (rName , "/test/" , key , certificate ),
205
+ Check : resource .ComposeTestCheckFunc (
206
+ testAccCheckCertExists (resourceName , & cert ),
207
+ testAccCheckAWSServerCertAttributes (& cert , & certificate ),
208
+ resource .TestCheckResourceAttr (resourceName , "path" , "/test/" ),
209
+ ),
210
+ },
211
+ {
212
+ ResourceName : resourceName ,
213
+ ImportState : true ,
214
+ ImportStateVerify : true ,
215
+ ImportStateId : rName ,
216
+ ImportStateVerifyIgnore : []string {
217
+ "private_key" },
218
+ },
219
+ },
220
+ })
221
+ }
222
+
183
223
func testAccCheckCertExists (n string , cert * iam.ServerCertificate ) resource.TestCheckFunc {
184
224
return func (s * terraform.State ) error {
185
225
rs , ok := s .RootModule ().Resources [n ]
@@ -206,22 +246,9 @@ func testAccCheckCertExists(n string, cert *iam.ServerCertificate) resource.Test
206
246
}
207
247
}
208
248
209
- func getCertBody (body * string ) resource.TestCheckFunc {
210
- return func (s * terraform.State ) error {
211
- for _ , rs := range s .RootModule ().Resources {
212
- if rs .Type != "tls_self_signed_cert" {
213
- continue
214
- }
215
-
216
- * body = rs .Primary .Attributes ["cert_pem" ]
217
- }
218
- return nil
219
- }
220
- }
221
-
222
249
func testAccCheckAWSServerCertAttributes (cert * iam.ServerCertificate , certBody * string ) resource.TestCheckFunc {
223
250
return func (s * terraform.State ) error {
224
- if ! strings .Contains (* cert .ServerCertificateMetadata .ServerCertificateName , "terraform-test-cert " ) {
251
+ if ! strings .Contains (* cert .ServerCertificateMetadata .ServerCertificateName , "tf-acc-test " ) {
225
252
return fmt .Errorf ("Bad Server Cert Name: %s" , * cert .ServerCertificateMetadata .ServerCertificateName )
226
253
}
227
254
@@ -258,65 +285,35 @@ func testAccCheckIAMServerCertificateDestroy(s *terraform.State) error {
258
285
return nil
259
286
}
260
287
261
- const testAccTLSServerCert = `
262
- resource "tls_private_key" "example" {
263
- algorithm = "RSA"
264
- }
265
-
266
- resource "tls_self_signed_cert" "example" {
267
- key_algorithm = "RSA"
268
- private_key_pem = "${tls_private_key.example.private_key_pem}"
269
-
270
- subject {
271
- common_name = "example.com"
272
- organization = "ACME Examples, Inc"
273
- }
274
-
275
- validity_period_hours = 12
276
-
277
- allowed_uses = [
278
- "key_encipherment",
279
- "digital_signature",
280
- "server_auth",
281
- ]
282
- }
283
- `
284
-
285
- func testAccIAMServerCertConfig (rInt int ) string {
288
+ func testAccIAMServerCertConfig (rName , key , certificate string ) string {
286
289
return fmt .Sprintf (`
287
- %s
288
-
289
290
resource "aws_iam_server_certificate" "test_cert" {
290
- name = "terraform-test-cert-%d "
291
- certificate_body = "${tls_self_signed_cert.example.cert_pem} "
292
- private_key = "${tls_private_key.example.private_key_pem} "
291
+ name = "%[1]s "
292
+ certificate_body = "%[2]s "
293
+ private_key = "%[3]s "
293
294
}
294
- ` , testAccTLSServerCert , rInt )
295
+ ` , rName , tlsPemEscapeNewlines ( certificate ), tlsPemEscapeNewlines ( key ) )
295
296
}
296
297
297
- func testAccIAMServerCertConfig_random () string {
298
+ func testAccIAMServerCertConfig_random (key , certificate string ) string {
298
299
return fmt .Sprintf (`
299
- %s
300
-
301
300
resource "aws_iam_server_certificate" "test_cert" {
302
- name_prefix = "terraform-test-cert "
303
- certificate_body = "${tls_self_signed_cert.example.cert_pem} "
304
- private_key = "${tls_private_key.example.private_key_pem} "
301
+ name_prefix = "tf-acc-test "
302
+ certificate_body = "%[1]s "
303
+ private_key = "%[2]s "
305
304
}
306
- ` , testAccTLSServerCert )
305
+ ` , tlsPemEscapeNewlines ( certificate ), tlsPemEscapeNewlines ( key ) )
307
306
}
308
307
309
- func testAccIAMServerCertConfig_path (rInt int , path string ) string {
308
+ func testAccIAMServerCertConfig_path (rName , path , key , certificate string ) string {
310
309
return fmt .Sprintf (`
311
- %s
312
-
313
310
resource "aws_iam_server_certificate" "test_cert" {
314
- name = "terraform-test-cert-%d "
315
- path = "%s"
316
- certificate_body = "${tls_self_signed_cert.example.cert_pem} "
317
- private_key = "${tls_private_key.example.private_key_pem} "
311
+ name = "%[1]s "
312
+ path = "%[2] s"
313
+ certificate_body = "%[3]s "
314
+ private_key = "%[4]s "
318
315
}
319
- ` , testAccTLSServerCert , rInt , path )
316
+ ` , rName , path , tlsPemEscapeNewlines ( certificate ), tlsPemEscapeNewlines ( key ) )
320
317
}
321
318
322
319
// iam-ssl-unix-line-endings
0 commit comments