Skip to content

Commit 94ed9cf

Browse files
authored
feat: mysql - support import (#1025)
* feat: mysql - support import * fix: prepaid desc
1 parent a0f134c commit 94ed9cf

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

tencentcloud/resource_tc_mysql_instance.go

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@ resource "tencentcloud_mysql_instance" "default" {
3434
}
3535
}
3636
```
37+
38+
Import
39+
40+
MySQL instance can be imported using the id, e.g.
41+
42+
```
43+
$ terraform import tencentcloud_mysql_instance.foo cdb-12345678"
44+
```
45+
3746
*/
3847
package tencentcloud
3948

@@ -304,8 +313,22 @@ func resourceTencentCloudMysqlInstance() *schema.Resource {
304313
Read: resourceTencentCloudMysqlInstanceRead,
305314
Update: resourceTencentCloudMysqlInstanceUpdate,
306315
Delete: resourceTencentCloudMysqlInstanceDelete,
307-
308316
Schema: specialInfo,
317+
Importer: &schema.ResourceImporter{
318+
State: func(d *schema.ResourceData, i interface{}) ([]*schema.ResourceData, error) {
319+
_ = d.Set("charge_type", MYSQL_CHARGE_TYPE_POSTPAID)
320+
_ = d.Set("prepaid_period", 1)
321+
_ = d.Set("auto_renew_flag", 0)
322+
_ = d.Set("intranet_port", 3306)
323+
_ = d.Set("force_delete", false)
324+
_ = d.Set("internet_service", 0)
325+
_ = d.Set("engine_version", MYSQL_SUPPORTS_ENGINE[len(MYSQL_SUPPORTS_ENGINE)-2])
326+
_ = d.Set("slave_deploy_mode", 0)
327+
_ = d.Set("slave_sync_mode", 0)
328+
_ = d.Set("project_id", 0)
329+
return []*schema.ResourceData{d}, nil
330+
},
331+
},
309332
}
310333
}
311334

@@ -909,13 +932,11 @@ func resourceTencentCloudMysqlInstanceRead(d *schema.ResourceData, meta interfac
909932
_ = d.Set("slave_sync_mode", int(*backConfig.Response.ProtectMode))
910933
_ = d.Set("slave_deploy_mode", int(*backConfig.Response.DeployMode))
911934
if backConfig.Response.SlaveConfig != nil && *backConfig.Response.SlaveConfig.Zone != "" {
912-
//if you set ,i set
913935
if _, ok := d.GetOk("first_slave_zone"); ok {
914936
_ = d.Set("first_slave_zone", *backConfig.Response.SlaveConfig.Zone)
915937
}
916938
}
917939
if backConfig.Response.BackupConfig != nil && *backConfig.Response.BackupConfig.Zone != "" {
918-
//if you set ,i set
919940
if _, ok := d.GetOk("second_slave_zone"); ok {
920941
_ = d.Set("second_slave_zone", *backConfig.Response.BackupConfig.Zone)
921942
}

tencentcloud/resource_tc_mysql_instance_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ import (
1515

1616
const TestAccTencentCloudMysqlMasterInstance_availability_zone = "ap-guangzhou-3"
1717
const TestAccTencentCloudMysqlInstanceName = "testAccMysql"
18-
const TestAccTencentCloudMysqlInstanceNameVersion1 = "testAccMysql-version1"
19-
const TestAccTencentCloudMysqlInstanceNamePrepaid = "testAccMysqlPrepaid"
2018

2119
func init() {
20+
// go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_mysql_instance
2221
resource.AddTestSweepers("tencentcloud_mysql_instance", &resource.Sweeper{
2322
Name: "tencentcloud_mysql_instance",
2423
F: testSweepMySQLInstance,
@@ -146,6 +145,12 @@ func TestAccTencentCloudMysqlMasterInstance_basic_and_update(t *testing.T) {
146145
resource.TestCheckResourceAttrSet("tencentcloud_mysql_instance.mysql_master", "gtid"),
147146
),
148147
},
148+
{
149+
ResourceName: "tencentcloud_mysql_instance.mysql_master",
150+
ImportState: true,
151+
ImportStateVerify: true,
152+
ImportStateVerifyIgnore: []string{"root_password", "prepaid_period", "first_slave_zone", "force_delete"},
153+
},
149154
// add tag
150155
{
151156
Config: testAccMysqlMasterInstance_multiTags("master"),

website/docs/r/mysql_instance.html.markdown

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,11 @@ In addition to all arguments above, the following attributes are exported:
8989
* `task_status` - Indicates which kind of operations is being executed.
9090

9191

92+
## Import
93+
94+
MySQL instance can be imported using the id, e.g.
95+
96+
```
97+
$ terraform import tencentcloud_mysql_instance.foo cdb-12345678"
98+
```
99+

0 commit comments

Comments
 (0)