@@ -28,6 +28,22 @@ func TestAccTencentCloudCdnDomain(t *testing.T) {
2828 resource .TestCheckResourceAttr ("tencentcloud_cdn_domain.foo" , "origin.0.origin_list.#" , "1" ),
2929 ),
3030 },
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 {
3147 {
3248 Config : testAccCdnDomainFull ,
3349 Check : resource .ComposeTestCheckFunc (
@@ -48,6 +64,34 @@ func TestAccTencentCloudCdnDomain(t *testing.T) {
4864 resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.deploy_time" ),
4965 resource .TestCheckResourceAttrSet ("tencentcloud_cdn_domain.foo" , "https_config.0.server_certificate_config.0.expire_time" ),
5066 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" ),
5195 ),
5296 },
5397 {
@@ -140,24 +184,30 @@ resource "tencentcloud_cdn_domain" "foo" {
140184
141185const testAccCdnDomainFull = `
142186resource "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"
146190 full_url_cache = false
147191
148192 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"
152196 origin_pull_protocol = "follow"
153197 }
154198
155199 https_config {
156- https_switch = "on"
157- http2_switch = "on"
200+ https_switch = "on"
201+ http2_switch = "on"
158202 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+ }
161211
162212 server_certificate_config {
163213 certificate_content = <<EOT
@@ -216,7 +266,97 @@ KKcVGqvwVh2r8ocP7OnrQPVK9ZW7BcoYiqM2DjdKyl7AtQKnvWfPMai++oXKzo0y
216266EOT
217267 message = "test"
218268 }
269+ }
270+
271+ tags = {
272+ hello = "world"
219273 }
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+ }
220360
221361 tags = {
222362 hello = "world"
0 commit comments