@@ -28,6 +28,22 @@ func TestAccTencentCloudCdnDomain(t *testing.T) {
28
28
resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.origin_list.#" , "1" ),
29
29
),
30
30
},
31
+ {
32
+ ResourceName : "tencentcloud_cdn_domain.foo" ,
33
+ ImportState : true ,
34
+ ImportStateVerify : true ,
35
+ ImportStateVerifyIgnore : []string {"https_config" },
36
+ },
37
+ },
38
+ })
39
+ }
40
+
41
+ func TestAccTencentCloudCdnDomainWithHTTPs (t * testing.T ) {
42
+ resource .Test (t , resource.TestCase {
43
+ PreCheck : func () { testAccPreCheck (t ) },
44
+ Providers : testAccProviders ,
45
+ CheckDestroy : testAccCheckCdnDomainDestroy ,
46
+ Steps : []resource.TestStep {
31
47
{
32
48
Config : testAccCdnDomainFull ,
33
49
Check : resource .ComposeTestCheckFunc (
@@ -48,6 +64,34 @@ func TestAccTencentCloudCdnDomain(t *testing.T) {
48
64
resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.deploy_time" ),
49
65
resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.expire_time" ),
50
66
resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "tags.hello" , "world" ),
67
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.switch" , "on" ),
68
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.redirect_type" , "https" ),
69
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.redirect_status_code" , "302" ),
70
+ ),
71
+ },
72
+ {
73
+ Config : testAccCdnDomainFullUpdate ,
74
+ Check : resource .ComposeTestCheckFunc (
75
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "domain" , "test.zhaoshaona.com" ),
76
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "service_type" , "web" ),
77
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "area" , "mainland" ),
78
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "full_url_cache" , "false" ),
79
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.origin_type" , "ip" ),
80
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.origin_list.#" , "1" ),
81
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.server_name" , "test.zhaoshaona.com" ),
82
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.origin_pull_protocol" , "follow" ),
83
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.https_switch" , "on" ),
84
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.http2_switch" , "on" ),
85
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.ocsp_stapling_switch" , "on" ),
86
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.spdy_switch" , "on" ),
87
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.verify_client" , "off" ),
88
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.message" , "test" ),
89
+ resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.deploy_time" ),
90
+ resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.expire_time" ),
91
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "tags.hello" , "world" ),
92
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.switch" , "off" ),
93
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.redirect_type" , "http" ),
94
+ resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "https_config.0.force_redirect.0.redirect_status_code" , "302" ),
51
95
),
52
96
},
53
97
{
@@ -140,24 +184,30 @@ resource "tencentcloud_cdn_domain" "foo" {
140
184
141
185
const testAccCdnDomainFull = `
142
186
resource "tencentcloud_cdn_domain" "foo" {
143
- domain = "test.zhaoshaona.com"
144
- service_type = "web"
145
- area = "mainland"
187
+ domain = "test.zhaoshaona.com"
188
+ service_type = "web"
189
+ area = "mainland"
146
190
full_url_cache = false
147
191
148
192
origin {
149
- origin_type = "ip"
150
- origin_list = ["139.199.199.140"]
151
- server_name = "test.zhaoshaona.com"
193
+ origin_type = "ip"
194
+ origin_list = ["139.199.199.140"]
195
+ server_name = "test.zhaoshaona.com"
152
196
origin_pull_protocol = "follow"
153
197
}
154
198
155
199
https_config {
156
- https_switch = "on"
157
- http2_switch = "on"
200
+ https_switch = "on"
201
+ http2_switch = "on"
158
202
ocsp_stapling_switch = "on"
159
- spdy_switch = "on"
160
- verify_client = "off"
203
+ spdy_switch = "on"
204
+ verify_client = "off"
205
+
206
+ force_redirect {
207
+ switch = "on"
208
+ redirect_type = "https"
209
+ redirect_status_code = 302
210
+ }
161
211
162
212
server_certificate_config {
163
213
certificate_content = <<EOT
@@ -216,7 +266,97 @@ KKcVGqvwVh2r8ocP7OnrQPVK9ZW7BcoYiqM2DjdKyl7AtQKnvWfPMai++oXKzo0y
216
266
EOT
217
267
message = "test"
218
268
}
269
+ }
270
+
271
+ tags = {
272
+ hello = "world"
219
273
}
274
+ }
275
+ `
276
+
277
+ const testAccCdnDomainFullUpdate = `
278
+ resource "tencentcloud_cdn_domain" "foo" {
279
+ domain = "test.zhaoshaona.com"
280
+ service_type = "web"
281
+ area = "mainland"
282
+ full_url_cache = false
283
+
284
+ origin {
285
+ origin_type = "ip"
286
+ origin_list = ["139.199.199.140"]
287
+ server_name = "test.zhaoshaona.com"
288
+ origin_pull_protocol = "follow"
289
+ }
290
+
291
+ https_config {
292
+ https_switch = "on"
293
+ http2_switch = "on"
294
+ ocsp_stapling_switch = "on"
295
+ spdy_switch = "on"
296
+ verify_client = "off"
297
+
298
+ force_redirect {
299
+ switch = "off"
300
+ }
301
+
302
+ server_certificate_config {
303
+ certificate_content = <<EOT
304
+ -----BEGIN CERTIFICATE-----
305
+ MIIDuDCCAqACCQDJd98Shn/cJTANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMC
306
+ Q04xEDAOBgNVBAgMB1RpYW5qaW4xEDAOBgNVBAcMB1RpYW5qaW4xDjAMBgNVBAoM
307
+ BU1vY2hhMRcwFQYDVQQLDA5Nb2NoYSBTb2Z0d2FyZTEcMBoGA1UEAwwTdGVzdC56
308
+ aGFvc2hhb25hLmNvbTEjMCEGCSqGSIb3DQEJARYUeWFsaW5wZWlAdGVuY2VudC5j
309
+ b20wHhcNMjAwNTIwMDcyNDQyWhcNMzAwNTE4MDcyNDQyWjCBnTELMAkGA1UEBhMC
310
+ Q04xEDAOBgNVBAgMB1RpYW5qaW4xEDAOBgNVBAcMB1RpYW5qaW4xDjAMBgNVBAoM
311
+ BU1vY2hhMRcwFQYDVQQLDA5Nb2NoYSBTb2Z0d2FyZTEcMBoGA1UEAwwTdGVzdC56
312
+ aGFvc2hhb25hLmNvbTEjMCEGCSqGSIb3DQEJARYUeWFsaW5wZWlAdGVuY2VudC5j
313
+ b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgndm2xEWL7CaVQ/lb
314
+ TO6Gj4EqEp1tWygjdfqkUXADfsgMGPukYaZY+klV6AJzLcj8VD5iWgKa+V4kLHtf
315
+ yh66c45nZrdUVoF9CFTw2+B/LTa/UzsvbLTVOnEjVBjI1V5kVzliF5cK5OlQ258d
316
+ w6yFaccOgXqSkp9i57Y9pT1FIb691hsf2VHiVLizPYy3vvLQeN8RnXS3vK56BcQk
317
+ o+49H11TAsrIh0C5maF0jp/7poSQkrX0kjfX4+gK/mC4Dn3PgK464Ko5OR45IGji
318
+ D368/klCK1bqIshlv4owEfgzAEQMPUQ0CfuvXTX85aojM48RiYiDmYveaICtYnSR
319
+ 04MTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHWUpfePVt3LjZVDS3OmQ7rTG8zc
320
+ zwZgJfxP0f4ZNo/9t53SNsQ0UM/+7sqnBKOjsWfgyFqSh9cfN0Bnsn3gmvPXmD5R
321
+ nCa9qr9IO+FP9Ke4KKn0Ndx1sWJN3B6D8bUTnvFIkJoRsvsqNi24o2uKrUdcAYHL
322
+ 5BVtrVe8E55i0A5WosC8KWv4ZJxTacvuxVjfyroKzxsLwOQvCqBNSuZLg1HYUeG6
323
+ XIj0/acmysb8S82Lxm39E82DbPdUO3Z0TlGL7umlAV947/6eGvPhszjnhBlxVo3p
324
+ tmHdyqfHxWbkTW4bnO/Gu+Sll6a3n1uyQ/onXuXH3pBZoXLp3Jj+CV1+N6E=
325
+ -----END CERTIFICATE-----
326
+ EOT
327
+
328
+ private_key = <<EOT
329
+ -----BEGIN RSA PRIVATE KEY-----
330
+ MIIEpAIBAAKCAQEAoJ3ZtsRFi+wmlUP5W0zuho+BKhKdbVsoI3X6pFFwA37IDBj7
331
+ pGGmWPpJVegCcy3I/FQ+YloCmvleJCx7X8oeunOOZ2a3VFaBfQhU8Nvgfy02v1M7
332
+ L2y01TpxI1QYyNVeZFc5YheXCuTpUNufHcOshWnHDoF6kpKfYue2PaU9RSG+vdYb
333
+ H9lR4lS4sz2Mt77y0HjfEZ10t7yuegXEJKPuPR9dUwLKyIdAuZmhdI6f+6aEkJK1
334
+ 9JI31+PoCv5guA59z4CuOuCqOTkeOSBo4g9+vP5JQitW6iLIZb+KMBH4MwBEDD1E
335
+ NAn7r101/OWqIzOPEYmIg5mL3miArWJ0kdODEwIDAQABAoIBAQCW2uuLX9k6THkI
336
+ pSlleWJm/A4C6Cz4cy/F7p+VCfA9OCzIQAbKI/VLiPisORdj+tLVPILDeWsNB75G
337
+ F4lhNMObt8E+mRkDm6RPPS4ac0nt6ReMp63lIyLNSvDMj8Yfi1f2wn3hBesVjl8d
338
+ VMmj+Q7m16zgkPgBBrmw+ZUPXU2oyUW4+0RvGYvuWnVUdtm/34PD1LC0NKBKaX9T
339
+ MDHrSIns0WpQ7P4vNVQyHW7MGgEl81uzIitSWuT/k+zH6YxBlxd7d66vmhNoxz9c
340
+ aeEf7DE3wAb4819UYWt0/ciMJwSLPkBOaTeAsktKUHVsrMLVELWcWqSIS+PYbSX8
341
+ g3tY1DlxAoGBANSiDKNjfr1rZRtpZvxnVkssLY/586UaHs+dFfyFyd0unr/rAPf/
342
+ GO/BIO0NbBdRb3XORMuiLQN3xf+qgKfoS0kXYglDMGKbEAC/5o6ZMV6E2E/aFrxh
343
+ xmgKTZxCBVnOxlAy33UFs+qR8tpOnR4auAc0pNPA9QB4I7q17vGJRMyHAoGBAMFf
344
+ 7nF2aJ/k0Fcl53Cabs/FIaAwL/GBvok6Ny8wWLwiMZCtsGUUywnUdN/qbfr2GwC5
345
+ g0w2iaxGqQPI+qw2qn0utAIfZ0Tz2VAH+P3aUTuG+M4XWHObHVXxBUqO61X9zgV2
346
+ sXRXcbDOx3HgZeDCjk0otcGVJoC3zgzaaEZi5mQVAoGAQer+2gQ1PUm27XmOmL78
347
+ bI+EjHbjhpKDbL95GnDrdKtIQZz8DuXBeEo6B+M6WDxBvpa0kyByrfmKo0jbW7JS
348
+ 7JTYKqDuthL2MhVLx3dMa83pNVAZ7kqtdIGFL+TzvbSxnBk5VxDuhtC6Jd1rLfMA
349
+ jBNQ6eiOy5dzFCXkrnJspq8CgYAO4ISFsihmdMIakk31+cugrHfjzRFDMUopYJMy
350
+ TDPndXH+wX4aqLjeLrw3JeAEOL7nFV6mlGOPH3iNU/8FFMeVDezHZQca5O/JGnPr
351
+ g8pQHBg0MtOZQUvGet5/V/N/ECGzhegtHTUf9yic+DieTBmKkiE5nXHy4TE3B+6R
352
+ y7YR6QKBgQDUoNAFOnMZB4BQMeCb/pQQnzNkNTG+Y02eMKjo5eZZDfyusqIui29l
353
+ KKcVGqvwVh2r8ocP7OnrQPVK9ZW7BcoYiqM2DjdKyl7AtQKnvWfPMai++oXKzo0y
354
+ 8sg7m1Ic26sKO9W9t87cfZtFKcbKVcImLWucd9R7Ny4M4r6xlRKWpA==
355
+ -----END RSA PRIVATE KEY-----
356
+ EOT
357
+ message = "test"
358
+ }
359
+ }
220
360
221
361
tags = {
222
362
hello = "world"
0 commit comments