Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b6755a3

Browse files
authoredJun 28, 2020
Merge pull request #2 from brickzzhang/master
[add datasource and enhance testacc]
2 parents 8049178 + 1508e8b commit b6755a3

17 files changed

+397
-67
lines changed
 

‎examples/tencentcloud-sqlserver/main.tf

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
data "tencentcloud_sqlserver_zone_config" "mysqlserver" {
1+
data "tencentcloud_sqlserver_zone_configs" "foo" {
22
}
33

44
resource "tencentcloud_vpc" "foo" {
@@ -26,8 +26,13 @@ resource "tencentcloud_sqlserver_instance" "example" {
2626
storage = 10
2727
}
2828

29-
resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
29+
resource "tencentcloud_sqlserver_db" "example" {
3030
instance_id = tencentcloud_sqlserver_instance.example.id
31-
name = "db_brickzzhang_update"
31+
name = "example"
3232
charset = "Chinese_PRC_BIN"
33-
remark = "test-remark-update"
33+
remark = "test-remark"
34+
}
35+
36+
data "tencentcloud_sqlserver_db" "example" {
37+
instance_id = tencentcloud_sqlserver_db.example.instance_id
38+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
variable "availability_zone" {
2+
default = "ap-guangzhou-3"
3+
}

‎go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,8 @@ github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0K
456456
github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
457457
github.com/tencentcloud/tencentcloud-sdk-go v3.0.187+incompatible h1:9hr93p945INwxa67N68EUJuIkUE2iGnMq/YZ6x3JHik=
458458
github.com/tencentcloud/tencentcloud-sdk-go v3.0.187+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
459+
github.com/tencentcloud/tencentcloud-sdk-go v3.0.189+incompatible h1:eLVHwxLW2HFvr48l5sqROircYlq6Lp39EXhyCkK6Jlw=
460+
github.com/tencentcloud/tencentcloud-sdk-go v3.0.189+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
459461
github.com/tencentcloud/tencentcloud-sdk-go v3.0.191+incompatible h1:cycv0fIQDSo9sjWkupzKnKMc+ZT8cKAfoq2WX3b8ozk=
460462
github.com/tencentcloud/tencentcloud-sdk-go v3.0.191+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
461463
github.com/tetafro/godot v0.3.7 h1:+mecr7RKrUKB5UQ1gwqEMn13sDKTyDR8KNIquB9mm+8=
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
/*
2+
Use this data source to query DB resources for the specific SQLServer instance.
3+
4+
Example Usage
5+
6+
```hcl
7+
variable "availability_zone"{
8+
default = "ap-guangzhou-2"
9+
}
10+
11+
resource "tencentcloud_vpc" "foo" {
12+
name = "example"
13+
cidr_block = "10.0.0.0/16"
14+
}
15+
16+
resource "tencentcloud_subnet" "foo" {
17+
name = "example"
18+
availability_zone = var.availability_zone
19+
vpc_id = tencentcloud_vpc.foo.id
20+
cidr_block = "10.0.0.0/24"
21+
is_multicast = false
22+
}
23+
24+
resource "tencentcloud_sqlserver_instance" "example" {
25+
name = "example"
26+
availability_zone = var.availability_zone
27+
charge_type = "POSTPAID_BY_HOUR"
28+
vpc_id = tencentcloud_vpc.foo.id
29+
subnet_id = tencentcloud_subnet.foo.id
30+
engine_version = "2008R2"
31+
project_id = 0
32+
memory = 2
33+
storage = 10
34+
}
35+
36+
resource "tencentcloud_sqlserver_db" "example" {
37+
instance_id = tencentcloud_sqlserver_instance.example.id
38+
name = "example"
39+
charset = "Chinese_PRC_BIN"
40+
remark = "test-remark"
41+
}
42+
43+
data "tencentcloud_sqlserver_db" "example" {
44+
instance_id = tencentcloud_sqlserver_db.example.instance_id
45+
}
46+
```
47+
*/
48+
package tencentcloud
49+
50+
import (
51+
"context"
52+
"fmt"
53+
"log"
54+
55+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
56+
)
57+
58+
func dataSourceTencentSqlserverDBs() *schema.Resource {
59+
return &schema.Resource{
60+
Read: dataSourceTencentSqlserverDBRead,
61+
Schema: map[string]*schema.Schema{
62+
"result_output_file": {
63+
Type: schema.TypeString,
64+
Optional: true,
65+
Description: "Used to store results.",
66+
},
67+
"instance_id": {
68+
Type: schema.TypeString,
69+
Required: true,
70+
Description: "SQLServer instance ID which DB belongs to.",
71+
},
72+
// Computed
73+
"db_list": {
74+
Type: schema.TypeList,
75+
Computed: true,
76+
Description: "A list of dbs belong to the specific instance. Each element contains the following attributes:",
77+
Elem: &schema.Resource{
78+
Schema: map[string]*schema.Schema{
79+
"name": {
80+
Type: schema.TypeString,
81+
Computed: true,
82+
Description: "Name of DB.",
83+
},
84+
"charset": {
85+
Type: schema.TypeString,
86+
Computed: true,
87+
Description: "Character set DB uses, could be `Chinese_PRC_CI_AS`, `Chinese_PRC_CS_AS`, `Chinese_PRC_BIN`, `Chinese_Taiwan_Stroke_CI_AS`, `SQL_Latin1_General_CP1_CI_AS`, and `SQL_Latin1_General_CP1_CS_AS`. Default value is `Chinese_PRC_CI_AS`.",
88+
},
89+
"remark": {
90+
Type: schema.TypeString,
91+
Computed: true,
92+
Description: "Remark of the DB.",
93+
},
94+
"create_time": {
95+
Type: schema.TypeString,
96+
Computed: true,
97+
Description: "Database creation time.",
98+
},
99+
"status": {
100+
Type: schema.TypeString,
101+
Computed: true,
102+
Description: "Database status. Valid values are `creating`, `running`, `modifying`, `dropping`.",
103+
},
104+
},
105+
},
106+
},
107+
},
108+
}
109+
}
110+
111+
func dataSourceTencentSqlserverDBRead(d *schema.ResourceData, meta interface{}) error {
112+
defer logElapsed("data_source.tencent_sqlserver_db.read")()
113+
114+
logId := getLogId(contextNil)
115+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
116+
sqlserverService := SqlserverService{client: meta.(*TencentCloudClient).apiV3Conn}
117+
118+
// precheck
119+
instanceId := d.Get("instance_id").(string)
120+
_, has, err := sqlserverService.DescribeSqlserverInstanceById(ctx, instanceId)
121+
if err != nil {
122+
return fmt.Errorf("[CRITAL]%s DescribeSqlserverInstanceById fail, reason:%s\n", logId, err)
123+
}
124+
if !has {
125+
return fmt.Errorf("[CRITAL]%s SQLServer instance %s dose not exist", logId, instanceId)
126+
}
127+
_ = d.Set("instance_id", instanceId)
128+
129+
dbInfos, err := sqlserverService.DescribeDBsOfInstance(ctx, instanceId)
130+
if err != nil {
131+
return err
132+
}
133+
134+
var dbList []map[string]interface{}
135+
for _, item := range dbInfos {
136+
var dbInfo = make(map[string]interface{})
137+
dbInfo["name"] = item.Name
138+
dbInfo["charset"] = item.Charset
139+
dbInfo["remark"] = item.Remark
140+
dbInfo["create_time"] = item.CreateTime
141+
dbInfo["status"] = SQLSERVER_DB_STATUS[*item.Status]
142+
dbList = append(dbList, dbInfo)
143+
}
144+
_ = d.Set("db_list", dbList)
145+
d.SetId(instanceId)
146+
147+
if output, ok := d.GetOk("result_output_file"); ok && output.(string) != "" {
148+
if err := writeToFile(output.(string), dbList); err != nil {
149+
log.Printf("[CRITAL]%s output file[%s] fail, reason[%s]\n",
150+
logId, output.(string), err.Error())
151+
}
152+
}
153+
return nil
154+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
7+
)
8+
9+
func TestAccDataSourceTencentCloudSqlserverDBs_basic(t *testing.T) {
10+
resource.Test(t, resource.TestCase{
11+
PreCheck: func() { testAccPreCheck(t) },
12+
Providers: testAccProviders,
13+
Steps: []resource.TestStep{
14+
{
15+
Config: TestAccDataSourceTencentCloudSqlserverDB,
16+
Check: resource.ComposeTestCheckFunc(
17+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_sqlserver_dbs.foo"),
18+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "instance_id"),
19+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "db_list.0.name"),
20+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "db_list.0.charset"),
21+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "db_list.0.remark"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "db_list.0.create_time"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_dbs.foo", "db_list.0.status"),
24+
),
25+
},
26+
},
27+
})
28+
}
29+
30+
const TestAccDataSourceTencentCloudSqlserverDB = testAccSqlserverDB_basic + `
31+
data "tencentcloud_sqlserver_dbs" "foo" {
32+
instance_id = tencentcloud_sqlserver_db.mysqlserver_db.instance_id
33+
}
34+
`

‎tencentcloud/data_source_tc_sqlserver_zone_config.go renamed to ‎tencentcloud/data_source_tc_sqlserver_zone_configs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Use this data source to query purchasable specification configuration for each a
44
Example Usage
55
66
```hcl
7-
data "tencentcloud_sqlserver_zone_config" "mysqlserver" {
7+
data "tencentcloud_sqlserver_zone_configs" "mysqlserver" {
88
}
99
```
1010
*/
@@ -18,7 +18,7 @@ import (
1818
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
1919
)
2020

21-
func dataSourceTencentSqlserverZoneConfig() *schema.Resource {
21+
func dataSourceTencentSqlserverZoneConfigs() *schema.Resource {
2222
return &schema.Resource{
2323
Read: dataSourceTencentSqlserverZoneConfigRead,
2424
Schema: map[string]*schema.Schema{

‎tencentcloud/data_source_tc_sqlserver_zone_config_test.go renamed to ‎tencentcloud/data_source_tc_sqlserver_zone_configs_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,34 @@ import (
66
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
77
)
88

9-
func TestAccDataSourceTencentCloudSqlserverZoneConfig_basic(t *testing.T) {
9+
func TestAccDataSourceTencentCloudSqlserverZoneConfigs_basic(t *testing.T) {
1010
resource.Test(t, resource.TestCase{
1111
PreCheck: func() { testAccPreCheck(t) },
1212
Providers: testAccProviders,
1313
Steps: []resource.TestStep{
1414
{
1515
Config: TestAccDataSourceTencentCloudSqlserverZoneConfig,
1616
Check: resource.ComposeTestCheckFunc(
17-
testAccCheckTencentCloudDataSourceID("data.tencentcloud_sqlserver_zone_config.foo"),
18-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.availability_zone"),
19-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.zone_id"),
20-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.spec_id"),
21-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.machine_type"),
22-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.db_version"),
23-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.db_version_name"),
24-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.memory"),
25-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.cpu"),
26-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.min_storage_size"),
27-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.max_storage_size"),
28-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.qps"),
29-
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_config.foo", "zone_list.0.specinfo_list.0.charge_type"),
17+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_sqlserver_zone_configs.foo"),
18+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.availability_zone"),
19+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.zone_id"),
20+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.spec_id"),
21+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.machine_type"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.db_version"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.db_version_name"),
24+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.memory"),
25+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.cpu"),
26+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.min_storage_size"),
27+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.max_storage_size"),
28+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.qps"),
29+
resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_zone_configs.foo", "zone_list.0.specinfo_list.0.charge_type"),
3030
),
3131
},
3232
},
3333
})
3434
}
3535

3636
const TestAccDataSourceTencentCloudSqlserverZoneConfig = `
37-
data "tencentcloud_sqlserver_zone_config" "foo" {
37+
data "tencentcloud_sqlserver_zone_configs" "foo" {
3838
}
3939
`

‎tencentcloud/extension_sqlserver.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,3 @@ var SQLSERVER_DB_STATUS = map[int64]string{
5454
SQLSERVER_DB_MODIFYING: "modifying",
5555
SQLSERVER_DB_DELETING: "deleting",
5656
}
57-

‎tencentcloud/provider.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,10 +313,11 @@ Serverless Cloud Function(SCF)
313313
314314
SQLServer
315315
Data Source
316-
tencentcloud_sqlserver_zone_config
316+
tencentcloud_sqlserver_zone_configs
317+
tencentcloud_sqlserver_dbs
317318
318319
Resource
319-
tencentcloud_sqlserver_instance
320+
tencentcloud_sqlserver_instance
320321
tencentcloud_sqlserver_db
321322
322323
@@ -601,7 +602,8 @@ func Provider() terraform.ResourceProvider {
601602
"tencentcloud_elasticsearch_instances": dataSourceTencentCloudElasticsearchInstances(),
602603
"tencentcloud_postgresql_instances": dataSourceTencentCloudPostgresqlInstances(),
603604
"tencentcloud_postgresql_specinfos": dataSourceTencentCloudPostgresqlSpecinfos(),
604-
"tencentcloud_sqlserver_zone_config": dataSourceTencentSqlserverZoneConfig(),
605+
"tencentcloud_sqlserver_zone_configs": dataSourceTencentSqlserverZoneConfigs(),
606+
"tencentcloud_sqlserver_dbs": dataSourceTencentSqlserverDBs(),
605607
},
606608

607609
ResourcesMap: map[string]*schema.Resource{

‎tencentcloud/resource_tc_sqlserver_db.go

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,38 @@ Provides a SQLServer DB resource belongs to SQLServer instance.
44
Example Usage
55
66
```hcl
7-
resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
8-
instance_id = "mssql-XXXXXX"
9-
name = "sqlserver_db_terraform"
7+
variable "availability_zone"{
8+
default = "ap-guangzhou-2"
9+
}
10+
11+
resource "tencentcloud_vpc" "foo" {
12+
name = "example"
13+
cidr_block = "10.0.0.0/16"
14+
}
15+
16+
resource "tencentcloud_subnet" "foo" {
17+
name = "example"
18+
availability_zone = var.availability_zone
19+
vpc_id = tencentcloud_vpc.foo.id
20+
cidr_block = "10.0.0.0/24"
21+
is_multicast = false
22+
}
23+
24+
resource "tencentcloud_sqlserver_instance" "example" {
25+
name = "example"
26+
availability_zone = var.availability_zone
27+
charge_type = "POSTPAID_BY_HOUR"
28+
vpc_id = tencentcloud_vpc.foo.id
29+
subnet_id = tencentcloud_subnet.foo.id
30+
engine_version = "2008R2"
31+
project_id = 0
32+
memory = 2
33+
storage = 10
34+
}
35+
36+
resource "tencentcloud_sqlserver_db" "example" {
37+
instance_id = tencentcloud_sqlserver_instance.example.id
38+
name = "example"
1039
charset = "Chinese_PRC_BIN"
1140
remark = "test-remark"
1241
}
@@ -37,7 +66,7 @@ func resourceTencentCloudSqlserverDB() *schema.Resource {
3766
Type: schema.TypeString,
3867
Required: true,
3968
ForceNew: true,
40-
Description: "SQL server instance ID which DB belongs to.",
69+
Description: "SQLServer instance ID which DB belongs to.",
4170
},
4271
"name": {
4372
Type: schema.TypeString,
@@ -67,7 +96,7 @@ func resourceTencentCloudSqlserverDB() *schema.Resource {
6796
"status": {
6897
Type: schema.TypeString,
6998
Computed: true,
70-
Description: "Database status could be `creating`, `running`, `modifying` which means changing the remark, and `deleting`.",
99+
Description: "Database status, could be `creating`, `running`, `modifying` which means changing the remark, and `deleting`.",
71100
},
72101
},
73102
}
@@ -81,24 +110,24 @@ func resourceTencentCloudSqlserverDBCreate(d *schema.ResourceData, meta interfac
81110

82111
sqlserverService := SqlserverService{client: meta.(*TencentCloudClient).apiV3Conn}
83112

84-
instanceID := d.Get("instance_id").(string)
85-
_, has, err := sqlserverService.DescribeSqlserverInstanceById(ctx, instanceID)
113+
instanceId := d.Get("instance_id").(string)
114+
_, has, err := sqlserverService.DescribeSqlserverInstanceById(ctx, instanceId)
86115
if err != nil {
87116
return fmt.Errorf("[CRITAL]%s DescribeSqlserverInstanceById fail, reason:%s\n", logId, err)
88117
}
89118
if !has {
90-
return fmt.Errorf("[CRITAL]%s Sqlserver instance %s dose not exist for DB creation", logId, instanceID)
119+
return fmt.Errorf("[CRITAL]%s SQLServer instance %s dose not exist for DB creation", logId, instanceId)
91120
}
92121

93122
dbName := d.Get("name").(string)
94123
charset := d.Get("charset").(string)
95124
remark := d.Get("remark").(string)
96125

97-
if err := sqlserverService.CreateSqlserverDB(ctx, instanceID, dbName, charset, remark); err != nil {
126+
if err := sqlserverService.CreateSqlserverDB(ctx, instanceId, dbName, charset, remark); err != nil {
98127
return err
99128
}
100129

101-
d.SetId(instanceID + FILED_SP + dbName)
130+
d.SetId(instanceId + FILED_SP + dbName)
102131
return resourceTencentCloudSqlserverDBRead(d, meta)
103132
}
104133

‎tencentcloud/resource_tc_sqlserver_db_test.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ func TestAccTencentCloudSqlserverDB_basic_and_update(t *testing.T) {
1616
CheckDestroy: testAccCheckSqlserverDBDestroy,
1717
Steps: []resource.TestStep{
1818
{
19-
Config: testAccSqlserverDB_basic(),
19+
Config: testAccSqlserverDB_basic,
2020
Check: resource.ComposeAggregateTestCheckFunc(
21-
testAccCheckSqlserverDBExists("tencentcloud_sqlserver_db.mysqlserver_db"),
22-
resource.TestCheckResourceAttr("tencentcloud_sqlserver_db.mysqlserver_db", "instance_id", "mssql-3cdq7kx5"),
2321
resource.TestCheckResourceAttr("tencentcloud_sqlserver_db.mysqlserver_db", "name", "testAccSqlserverDB"),
2422
resource.TestCheckResourceAttr("tencentcloud_sqlserver_db.mysqlserver_db", "charset", "Chinese_PRC_BIN"),
2523
resource.TestCheckResourceAttr("tencentcloud_sqlserver_db.mysqlserver_db", "remark", "testACC-remark"),
2624
resource.TestCheckResourceAttrSet("tencentcloud_sqlserver_db.mysqlserver_db", "create_time"),
2725
resource.TestCheckResourceAttrSet("tencentcloud_sqlserver_db.mysqlserver_db", "status"),
26+
resource.TestCheckResourceAttrSet("tencentcloud_sqlserver_db.mysqlserver_db", "instance_id"),
2827
),
2928
Destroy: false,
3029
},
@@ -34,7 +33,7 @@ func TestAccTencentCloudSqlserverDB_basic_and_update(t *testing.T) {
3433
ImportStateVerify: true,
3534
},
3635
{
37-
Config: testAccSqlserverDB_basic_update_remark(),
36+
Config: testAccSqlserverDB_basic_update_remark,
3837
Check: resource.ComposeAggregateTestCheckFunc(
3938
testAccCheckSqlserverDBExists("tencentcloud_sqlserver_db.mysqlserver_db"),
4039
resource.TestCheckResourceAttr("tencentcloud_sqlserver_db.mysqlserver_db", "remark", "testACC-remark_update"),
@@ -89,22 +88,18 @@ func testAccCheckSqlserverDBExists(n string) resource.TestCheckFunc {
8988
}
9089
}
9190

92-
func testAccSqlserverDB_basic() string {
93-
return `
91+
const testAccSqlserverDB_basic = testAccSqlserverInstance + `
9492
resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
95-
instance_id = "mssql-3cdq7kx5"
93+
instance_id = tencentcloud_sqlserver_instance.test.id
9694
name = "testAccSqlserverDB"
9795
charset = "Chinese_PRC_BIN"
9896
remark = "testACC-remark"
9997
}`
100-
}
10198

102-
func testAccSqlserverDB_basic_update_remark() string {
103-
return `
99+
const testAccSqlserverDB_basic_update_remark = testAccSqlserverInstance + `
104100
resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
105-
instance_id = "mssql-3cdq7kx5"
101+
instance_id = tencentcloud_sqlserver_instance.test.id
106102
name = "testAccSqlserverDB"
107103
charset = "Chinese_PRC_BIN"
108104
remark = "testACC-remark_update"
109105
}`
110-
}

‎tencentcloud/resource_tc_sqlserver_instance_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,13 @@ func testAccCheckSqlserverInstanceExists(n string) resource.TestCheckFunc {
120120

121121
const testAccSqlserverInstanceBasic = `
122122
variable "availability_zone"{
123-
default = "ap-guangzhou-2"
123+
default = "ap-guangzhou-2"
124124
}
125125
`
126126

127127
const testAccSqlserverInstance string = testAccSqlserverInstanceBasic + `
128128
resource "tencentcloud_sqlserver_instance" "test" {
129-
name = "tf_postsql_instance"
129+
name = "tf_sqlserver_instance"
130130
availability_zone = var.availability_zone
131131
charge_type = "POSTPAID_BY_HOUR"
132132
vpc_id = "` + defaultVpcId + `"
@@ -139,7 +139,7 @@ resource "tencentcloud_sqlserver_instance" "test" {
139139

140140
const testAccSqlserverInstanceUpdate string = testAccSqlserverInstanceBasic + `
141141
resource "tencentcloud_sqlserver_instance" "test" {
142-
name = "tf_postsql_instance_update"
142+
name = "tf_sqlserver_instance_update"
143143
availability_zone = var.availability_zone
144144
charge_type = "POSTPAID_BY_HOUR"
145145
vpc_id = "` + defaultVpcId + `"

‎tencentcloud/service_tencentcloud_sqlserver.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,16 @@ import (
88

99
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1010
"github.com/pkg/errors"
11-
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
12-
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
13-
"github.com/pkg/errors"
14-
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
1511
sqlserver "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328"
1612
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/connectivity"
13+
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
1714
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/ratelimit"
1815
)
1916

2017
type SqlserverService struct {
2118
client *connectivity.TencentCloudClient
2219
}
2320

24-
2521
func (me *SqlserverService) DescribeZones(ctx context.Context) (zoneInfoList []*sqlserver.ZoneInfo, errRet error) {
2622
logId := getLogId(ctx)
2723
request := sqlserver.NewDescribeZonesRequest()
@@ -355,7 +351,8 @@ func (me *SqlserverService) WaitForTaskFinish(ctx context.Context, flowId int64)
355351
})
356352
return
357353
}
358-
func (me *SqlserverService) CreateSqlserverDB(ctx context.Context, instanceID string, dbname string, charset string, remark string) (errRet error) {
354+
355+
func (me *SqlserverService) CreateSqlserverDB(ctx context.Context, instanceID string, dbname string, charset string, remark string) (errRet error) {
359356
logId := getLogId(ctx)
360357
request := sqlserver.NewCreateDBRequest()
361358

@@ -538,4 +535,4 @@ func (me *SqlserverService) DeleteSqlserverDB(ctx context.Context, instanceId st
538535
return me.WaitForTaskFinish(ctx, *response.Response.FlowId)
539536
}
540537
return
541-
}
538+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
layout: "tencentcloud"
3+
page_title: "TencentCloud: tencentcloud_sqlserver_dbs"
4+
sidebar_current: "docs-tencentcloud-datasource-sqlserver_dbs"
5+
description: |-
6+
Use this data source to query DB resources for the specific SQLServer instance.
7+
---
8+
9+
# tencentcloud_sqlserver_dbs
10+
11+
Use this data source to query DB resources for the specific SQLServer instance.
12+
13+
## Example Usage
14+
15+
```hcl
16+
variable "availability_zone" {
17+
default = "ap-guangzhou-2"
18+
}
19+
20+
resource "tencentcloud_vpc" "foo" {
21+
name = "example"
22+
cidr_block = "10.0.0.0/16"
23+
}
24+
25+
resource "tencentcloud_subnet" "foo" {
26+
name = "example"
27+
availability_zone = var.availability_zone
28+
vpc_id = tencentcloud_vpc.foo.id
29+
cidr_block = "10.0.0.0/24"
30+
is_multicast = false
31+
}
32+
33+
resource "tencentcloud_sqlserver_instance" "example" {
34+
name = "example"
35+
availability_zone = var.availability_zone
36+
charge_type = "POSTPAID_BY_HOUR"
37+
vpc_id = tencentcloud_vpc.foo.id
38+
subnet_id = tencentcloud_subnet.foo.id
39+
engine_version = "2008R2"
40+
project_id = 0
41+
memory = 2
42+
storage = 10
43+
}
44+
45+
resource "tencentcloud_sqlserver_db" "example" {
46+
instance_id = tencentcloud_sqlserver_instance.example.id
47+
name = "example"
48+
charset = "Chinese_PRC_BIN"
49+
remark = "test-remark"
50+
}
51+
52+
data "tencentcloud_sqlserver_db" "example" {
53+
instance_id = tencentcloud_sqlserver_db.example.instance_id
54+
}
55+
```
56+
57+
## Argument Reference
58+
59+
The following arguments are supported:
60+
61+
* `instance_id` - (Required) SQLServer instance ID which DB belongs to.
62+
* `result_output_file` - (Optional) Used to store results.
63+
64+
## Attributes Reference
65+
66+
In addition to all arguments above, the following attributes are exported:
67+
68+
* `db_list` - A list of dbs belong to the specific instance. Each element contains the following attributes:
69+
* `charset` - Character set DB uses, could be `Chinese_PRC_CI_AS`, `Chinese_PRC_CS_AS`, `Chinese_PRC_BIN`, `Chinese_Taiwan_Stroke_CI_AS`, `SQL_Latin1_General_CP1_CI_AS`, and `SQL_Latin1_General_CP1_CS_AS`. Default value is `Chinese_PRC_CI_AS`.
70+
* `create_time` - Database creation time.
71+
* `name` - Name of DB.
72+
* `remark` - Remark of the DB.
73+
* `status` - Database status. Valid values are `creating`, `running`, `modifying`, `dropping`.
74+
75+

‎website/docs/d/sqlserver_zone_config.html.markdown renamed to ‎website/docs/d/sqlserver_zone_configs.html.markdown

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
---
22
layout: "tencentcloud"
3-
page_title: "TencentCloud: tencentcloud_sqlserver_zone_config"
4-
sidebar_current: "docs-tencentcloud-datasource-sqlserver_zone_config"
3+
page_title: "TencentCloud: tencentcloud_sqlserver_zone_configs"
4+
sidebar_current: "docs-tencentcloud-datasource-sqlserver_zone_configs"
55
description: |-
66
Use this data source to query purchasable specification configuration for each availability zone in this specific region.
77
---
88

9-
# tencentcloud_sqlserver_zone_config
9+
# tencentcloud_sqlserver_zone_configs
1010

1111
Use this data source to query purchasable specification configuration for each availability zone in this specific region.
1212

1313
## Example Usage
1414

1515
```hcl
16-
data "tencentcloud_sqlserver_zone_config" "mysqlserver" {
16+
data "tencentcloud_sqlserver_zone_configs" "mysqlserver" {
1717
}
1818
```
1919

‎website/docs/r/sqlserver_db.html.markdown

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,38 @@ Provides a SQLServer DB resource belongs to SQLServer instance.
1313
## Example Usage
1414

1515
```hcl
16-
resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
17-
instance_id = "mssql-XXXXXX"
18-
name = "sqlserver_db_terraform"
16+
variable "availability_zone" {
17+
default = "ap-guangzhou-2"
18+
}
19+
20+
resource "tencentcloud_vpc" "foo" {
21+
name = "example"
22+
cidr_block = "10.0.0.0/16"
23+
}
24+
25+
resource "tencentcloud_subnet" "foo" {
26+
name = "example"
27+
availability_zone = var.availability_zone
28+
vpc_id = tencentcloud_vpc.foo.id
29+
cidr_block = "10.0.0.0/24"
30+
is_multicast = false
31+
}
32+
33+
resource "tencentcloud_sqlserver_instance" "example" {
34+
name = "example"
35+
availability_zone = var.availability_zone
36+
charge_type = "POSTPAID_BY_HOUR"
37+
vpc_id = tencentcloud_vpc.foo.id
38+
subnet_id = tencentcloud_subnet.foo.id
39+
engine_version = "2008R2"
40+
project_id = 0
41+
memory = 2
42+
storage = 10
43+
}
44+
45+
resource "tencentcloud_sqlserver_db" "example" {
46+
instance_id = tencentcloud_sqlserver_instance.example.id
47+
name = "example"
1948
charset = "Chinese_PRC_BIN"
2049
remark = "test-remark"
2150
}
@@ -25,7 +54,7 @@ resource "tencentcloud_sqlserver_db" "mysqlserver_db" {
2554

2655
The following arguments are supported:
2756

28-
* `instance_id` - (Required, ForceNew) SQL server instance ID which DB belongs to.
57+
* `instance_id` - (Required, ForceNew) SQLServer instance ID which DB belongs to.
2958
* `name` - (Required, ForceNew) Name of SQLServer DB. The DataBase name must be unique and must be composed of numbers, letters and underlines, and the first one can not be underline.
3059
* `charset` - (Optional, ForceNew) Character set DB uses. Valid values: `Chinese_PRC_CI_AS`, `Chinese_PRC_CS_AS`, `Chinese_PRC_BIN`, `Chinese_Taiwan_Stroke_CI_AS`, `SQL_Latin1_General_CP1_CI_AS`, and `SQL_Latin1_General_CP1_CS_AS`. Default value is `Chinese_PRC_CI_AS`.
3160
* `remark` - (Optional) Remark of the DB.
@@ -36,6 +65,6 @@ In addition to all arguments above, the following attributes are exported:
3665

3766
* `id` - ID of the resource.
3867
* `create_time` - Database creation time.
39-
* `status` - Database status could be `creating`, `running`, `modifying` which means changing the remark, and `deleting`.
68+
* `status` - Database status, could be `creating`, `running`, `modifying` which means changing the remark, and `deleting`.
4069

4170

‎website/tencentcloud.erb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -825,13 +825,19 @@
825825
<a href="#">Data Sources</a>
826826
<ul class="nav nav-auto-expand">
827827
<li>
828-
<a href="/docs/providers/tencentcloud/d/sqlserver_zone_config.html">tencentcloud_sqlserver_zone_config</a>
828+
<a href="/docs/providers/tencentcloud/d/sqlserver_dbs.html">tencentcloud_sqlserver_dbs</a>
829+
</li>
830+
<li>
831+
<a href="/docs/providers/tencentcloud/d/sqlserver_zone_configs.html">tencentcloud_sqlserver_zone_configs</a>
829832
</li>
830833
</ul>
831834
</li>
832835
<li>
833836
<a href="#">Resources</a>
834837
<ul class="nav nav-auto-expand">
838+
<li>
839+
<a href="/docs/providers/tencentcloud/r/sqlserver_db.html">tencentcloud_sqlserver_db</a>
840+
</li>
835841
<li>
836842
<a href="/docs/providers/tencentcloud/r/sqlserver_instance.html">tencentcloud_sqlserver_instance</a>
837843
</li>

0 commit comments

Comments
 (0)
Please sign in to comment.