Skip to content

Commit a5d86f1

Browse files
gitmknanonymous
andauthored
feat: support import (#1958)
* feat: support import * feat: add changelog --------- Co-authored-by: anonymous <anonymous@mail.org>
1 parent ff8098f commit a5d86f1

File tree

11 files changed

+130
-8
lines changed

11 files changed

+130
-8
lines changed

.changelog/1958.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_mysql_readonly_instance: support import
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ require (
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.409
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.520
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591
35-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.688
35+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.699
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
@@ -41,7 +41,7 @@ require (
4141
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.693
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
44-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.696
44+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.699
4545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 h1:TPGLjH6
788788
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591/go.mod h1:nCAGfVTXZkVnurkbjF3b0FM6RwGztE9t8D9Ms1unaKo=
789789
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.688 h1:496SFS8Byk5FFBAbKgmnD7AemK5swkp21PKhOAC+HH4=
790790
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.688/go.mod h1:W9nkytcj6/fzGhil86wGtD8oZmY1Z4JuwJ3m11/mWCg=
791+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.699 h1:LhFt0HW7xPS1KamfnNrPk5F7NVu7q72DO9usnxyQPQ4=
792+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.699/go.mod h1:wgCS1KCnSX7HbSI/mYghFSwfEDnZVeb3gwtPBXIppv4=
791793
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539 h1:0L6nZhT2bToTc/n1z3HOpNgdu5VX5ulmqIuPY+8UozA=
792794
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539/go.mod h1:6Syk7W5fdDf0BLvX+RXL5obQ6unkt3Id4aN2QqVrV6U=
793795
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoCUWQZciiJj3gRCWoHBO/8LituLQOdCRREIrS4=
@@ -855,6 +857,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.693/go.mod
855857
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.695/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
856858
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.696 h1:DcHz4rxqICf1U+fgNaDLqCmaBxUl2EmPu4F1yfa6eIg=
857859
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.696/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
860+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.699 h1:Unc4bMPZCAe964aOLHU05RAN59pMRNNy52E1fZ0My70=
861+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.699/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
858862
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
859863
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
860864
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=

tencentcloud/resource_tc_mysql_readonly_instance.go

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ resource "tencentcloud_mysql_readonly_instance" "default" {
2222
}
2323
}
2424
```
25+
Import
26+
27+
mysql read-only database instances can be imported using the id, e.g.
28+
```
29+
terraform import tencentcloud_mysql_readonly_instance.default cdb-dnqksd9f
30+
```
2531
*/
2632
package tencentcloud
2733

@@ -70,6 +76,12 @@ func resourceTencentCloudMysqlReadonlyInstance() *schema.Resource {
7076
Update: resourceTencentCloudMysqlReadonlyInstanceUpdate,
7177
Delete: resourceTencentCloudMysqlReadonlyInstanceDelete,
7278

79+
Importer: &schema.ResourceImporter{
80+
State: helper.ImportWithDefaultValue(map[string]interface{}{
81+
"prepaid_period": 1,
82+
"force_delete": false,
83+
}),
84+
},
7385
Schema: readonlyInstanceInfo,
7486
}
7587
}
@@ -309,6 +321,81 @@ func resourceTencentCloudMysqlReadonlyInstanceRead(d *schema.ResourceData, meta
309321
if err != nil {
310322
return fmt.Errorf("Fail to get basic info from mysql, reaseon %s", err.Error())
311323
}
324+
325+
mysqlInfo, errRet := mysqlService.DescribeDBInstanceById(ctx, d.Id())
326+
if errRet != nil {
327+
return fmt.Errorf("Describe mysql instance fails, reaseon %v", errRet.Error())
328+
}
329+
if mysqlInfo == nil {
330+
d.SetId("")
331+
return nil
332+
}
333+
if MysqlDelStates[*mysqlInfo.Status] {
334+
mysqlInfo = nil
335+
d.SetId("")
336+
return nil
337+
}
338+
339+
_ = d.Set("instance_name", *mysqlInfo.InstanceName)
340+
341+
_ = d.Set("charge_type", MYSQL_CHARGE_TYPE[int(*mysqlInfo.PayType)])
342+
_ = d.Set("pay_type", -1)
343+
_ = d.Set("period", -1)
344+
if int(*mysqlInfo.PayType) == MysqlPayByMonth {
345+
tempInt, _ := d.Get("prepaid_period").(int)
346+
if tempInt == 0 {
347+
_ = d.Set("prepaid_period", 1)
348+
}
349+
}
350+
351+
if *mysqlInfo.AutoRenew == MYSQL_RENEW_CLOSE {
352+
*mysqlInfo.AutoRenew = MYSQL_RENEW_NOUSE
353+
}
354+
_ = d.Set("auto_renew_flag", int(*mysqlInfo.AutoRenew))
355+
_ = d.Set("mem_size", mysqlInfo.Memory)
356+
_ = d.Set("cpu", mysqlInfo.Cpu)
357+
_ = d.Set("volume_size", mysqlInfo.Volume)
358+
_ = d.Set("vpc_id", mysqlInfo.UniqVpcId)
359+
_ = d.Set("subnet_id", mysqlInfo.UniqSubnetId)
360+
_ = d.Set("device_type", mysqlInfo.DeviceType)
361+
362+
securityGroups, err := mysqlService.DescribeDBSecurityGroups(ctx, d.Id())
363+
if err != nil {
364+
sdkErr, ok := err.(*sdkError.TencentCloudSDKError)
365+
if ok {
366+
if sdkErr.Code == MysqlInstanceIdNotFound3 {
367+
mysqlInfo = nil
368+
d.SetId("")
369+
return nil
370+
}
371+
}
372+
return err
373+
}
374+
_ = d.Set("security_groups", securityGroups)
375+
376+
tcClient := meta.(*TencentCloudClient).apiV3Conn
377+
tagService := &TagService{client: tcClient}
378+
tags, err := tagService.DescribeResourceTags(ctx, "cdb", "instanceId", tcClient.Region, d.Id())
379+
if err != nil {
380+
return err
381+
}
382+
383+
if err := d.Set("tags", tags); err != nil {
384+
log.Printf("[CRITAL]%s provider set tags fail, reason:%s\n ", logId, err.Error())
385+
return nil
386+
}
387+
388+
_ = d.Set("intranet_ip", mysqlInfo.Vip)
389+
_ = d.Set("intranet_port", int(*mysqlInfo.Vport))
390+
391+
if *mysqlInfo.CdbError != 0 {
392+
_ = d.Set("locked", 1)
393+
} else {
394+
_ = d.Set("locked", 0)
395+
}
396+
_ = d.Set("status", mysqlInfo.Status)
397+
_ = d.Set("task_status", mysqlInfo.TaskStatus)
398+
312399
return nil
313400
}
314401

tencentcloud/resource_tc_mysql_readonly_instance_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1111
)
1212

13+
// go test -i; go test -test.run TestAccTencentCloudMysqlReadonlyInstanceResource_basic -v
1314
func TestAccTencentCloudMysqlReadonlyInstanceResource_basic(t *testing.T) {
1415
t.Parallel()
1516
resource.Test(t, resource.TestCase{
@@ -31,6 +32,11 @@ func TestAccTencentCloudMysqlReadonlyInstanceResource_basic(t *testing.T) {
3132
resource.TestCheckResourceAttr("tencentcloud_mysql_readonly_instance.mysql_readonly", "tags.test", "test-tf"),
3233
),
3334
},
35+
{
36+
ResourceName: "tencentcloud_mysql_readonly_instance.mysql_readonly",
37+
ImportState: true,
38+
ImportStateVerify: true,
39+
},
3440
// add tag
3541
{
3642
Config: testAccMysqlReadonlyInstance_multiTags(CommonPresetMysql, "read"),

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/client.go

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/errors.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320/models.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,7 +1064,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat/v20180409
10641064
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591
10651065
## explicit; go 1.14
10661066
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312
1067-
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.688
1067+
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.699
10681068
## explicit; go 1.14
10691069
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320
10701070
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539
@@ -1091,7 +1091,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319
10911091
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
10921092
## explicit; go 1.14
10931093
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016
1094-
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.696
1094+
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.699
10951095
## explicit; go 1.14
10961096
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
10971097
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors

0 commit comments

Comments
 (0)