Skip to content

Commit a6c923f

Browse files
authored
feat/sql (#2023)
* feat/sql * feat/sql * feat/sql * feat/sql * feat/sql * feat/sql * feat/sql * feat/sql * feat/sql * feat/sql
1 parent 5418c81 commit a6c923f

File tree

95 files changed

+4426
-1130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+4426
-1130
lines changed

.changelog/2023.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
```release-note:enhancement
2+
data_source/tencentcloud_sqlserver_backups: Supports filtering queries by `backup_name` parameter
3+
```
4+
5+
```release-note:enhancement
6+
resource/tencentcloud_sqlserver_full_backup_migration: return `backup_migration_id` parameter
7+
```
8+
9+
```release-note:enhancement
10+
resource/tencentcloud_sqlserver_readonly_instance: Extension creation parameters
11+
```

tencentcloud/basic_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,10 @@ const defaultAzVariable = `
318318
variable "default_az" {
319319
default = "ap-guangzhou-3"
320320
}
321+
322+
variable "default_az7" {
323+
default = "ap-guangzhou-7"
324+
}
321325
`
322326

323327
const defaultImages = `

tencentcloud/data_source_tc_sqlserver_backups.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ func dataSourceTencentCloudSqlserverBackups() *schema.Resource {
3333
Required: true,
3434
Description: "Instance ID.",
3535
},
36+
"backup_name": {
37+
Type: schema.TypeString,
38+
Optional: true,
39+
Description: "Filter by backup name, do not filter if left blank.",
40+
},
3641
"start_time": {
3742
Type: schema.TypeString,
3843
Required: true,
@@ -130,11 +135,12 @@ func dataSourceTencentSqlserverBackupsRead(d *schema.ResourceData, meta interfac
130135
ctx := context.WithValue(context.TODO(), logIdKey, logId)
131136

132137
instanceId := d.Get("instance_id").(string)
138+
backupName := d.Get("backup_name").(string)
133139
startTime := d.Get("start_time").(string)
134140
endTime := d.Get("end_time").(string)
135141
sqlserverService := SqlserverService{client: meta.(*TencentCloudClient).apiV3Conn}
136142

137-
backInfoItems, err := sqlserverService.DescribeSqlserverBackups(ctx, instanceId, startTime, endTime)
143+
backInfoItems, err := sqlserverService.DescribeSqlserverBackups(ctx, instanceId, backupName, startTime, endTime)
138144

139145
if err != nil {
140146
return fmt.Errorf("api[DescribeBackups]fail, return %s", err.Error())

tencentcloud/resource_tc_sqlserver_account.go

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,41 @@ resource "tencentcloud_vpc" "vpc" {
1414
}
1515
1616
resource "tencentcloud_subnet" "subnet" {
17-
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.1.name
17+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
1818
name = "subnet-example"
1919
vpc_id = tencentcloud_vpc.vpc.id
2020
cidr_block = "10.0.0.0/16"
2121
is_multicast = false
2222
}
2323
24-
resource "tencentcloud_sqlserver_instance" "example" {
25-
name = "tf-example"
26-
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.1.name
27-
charge_type = "POSTPAID_BY_HOUR"
28-
vpc_id = tencentcloud_vpc.vpc.id
29-
subnet_id = tencentcloud_subnet.subnet.id
30-
project_id = 0
31-
memory = 4
32-
storage = 100
24+
resource "tencentcloud_security_group" "security_group" {
25+
name = "sg-example"
26+
description = "desc."
27+
}
28+
29+
resource "tencentcloud_sqlserver_basic_instance" "example" {
30+
name = "tf-example"
31+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
32+
charge_type = "POSTPAID_BY_HOUR"
33+
vpc_id = tencentcloud_vpc.vpc.id
34+
subnet_id = tencentcloud_subnet.subnet.id
35+
project_id = 0
36+
memory = 4
37+
storage = 100
38+
cpu = 2
39+
machine_type = "CLOUD_PREMIUM"
40+
maintenance_week_set = [1, 2, 3]
41+
maintenance_start_time = "09:00"
42+
maintenance_time_span = 3
43+
security_groups = [tencentcloud_security_group.security_group.id]
44+
45+
tags = {
46+
"test" = "test"
47+
}
3348
}
3449
3550
resource "tencentcloud_sqlserver_account" "example" {
36-
instance_id = tencentcloud_sqlserver_instance.example.id
51+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
3752
name = "tf_example_account"
3853
password = "Qwer@234"
3954
remark = "test-remark"

tencentcloud/resource_tc_sqlserver_account_db_attachment.go

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,55 @@ resource "tencentcloud_vpc" "vpc" {
1414
}
1515
1616
resource "tencentcloud_subnet" "subnet" {
17-
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.1.name
17+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
1818
name = "subnet-example"
1919
vpc_id = tencentcloud_vpc.vpc.id
2020
cidr_block = "10.0.0.0/16"
2121
is_multicast = false
2222
}
2323
24-
resource "tencentcloud_sqlserver_instance" "example" {
25-
name = "tf-example"
26-
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.1.name
27-
charge_type = "POSTPAID_BY_HOUR"
28-
vpc_id = tencentcloud_vpc.vpc.id
29-
subnet_id = tencentcloud_subnet.subnet.id
30-
project_id = 0
31-
memory = 4
32-
storage = 100
24+
resource "tencentcloud_security_group" "security_group" {
25+
name = "sg-example"
26+
description = "desc."
27+
}
28+
29+
resource "tencentcloud_sqlserver_basic_instance" "example" {
30+
name = "tf-example"
31+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
32+
charge_type = "POSTPAID_BY_HOUR"
33+
vpc_id = tencentcloud_vpc.vpc.id
34+
subnet_id = tencentcloud_subnet.subnet.id
35+
project_id = 0
36+
memory = 4
37+
storage = 100
38+
cpu = 2
39+
machine_type = "CLOUD_PREMIUM"
40+
maintenance_week_set = [1, 2, 3]
41+
maintenance_start_time = "09:00"
42+
maintenance_time_span = 3
43+
security_groups = [tencentcloud_security_group.security_group.id]
44+
45+
tags = {
46+
"test" = "test"
47+
}
3348
}
3449
3550
resource "tencentcloud_sqlserver_db" "example" {
36-
instance_id = tencentcloud_sqlserver_instance.example.id
51+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
3752
name = "tf_example_db"
3853
charset = "Chinese_PRC_BIN"
3954
remark = "test-remark"
4055
}
4156
4257
resource "tencentcloud_sqlserver_account" "example" {
43-
instance_id = tencentcloud_sqlserver_instance.example.id
58+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
4459
name = "tf_example_account"
4560
password = "Qwer@234"
4661
remark = "test-remark"
4762
}
4863
4964
resource "tencentcloud_sqlserver_account_db_attachment" "example" {
50-
instance_id = tencentcloud_sqlserver_instance.example.id
65+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
5166
account_name = tencentcloud_sqlserver_account.example.name
5267
db_name = tencentcloud_sqlserver_db.example.name
5368
privilege = "ReadWrite"

tencentcloud/resource_tc_sqlserver_account_db_attachment_test.go

Lines changed: 96 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
var testSqlserverAccountDBAttachmentResourceName = "tencentcloud_sqlserver_account_db_attachment"
14-
var testSqlserverAccountDBAttachmentResourceKey = testSqlserverAccountDBAttachmentResourceName + ".test"
14+
var testSqlserverAccountDBAttachmentResourceKey = testSqlserverAccountDBAttachmentResourceName + ".example"
1515

1616
func init() {
1717
// go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_sqlserver_account_db_attachment
@@ -55,6 +55,7 @@ func init() {
5555
}
5656

5757
func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
58+
t.Parallel()
5859
resource.Test(t, resource.TestCase{
5960
PreCheck: func() { testAccPreCheck(t) },
6061
Providers: testAccProviders,
@@ -65,8 +66,8 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
6566
Check: resource.ComposeTestCheckFunc(
6667
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
6768
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
68-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
69-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
69+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_example_account"),
70+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "tf_example_db"),
7071
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadOnly"),
7172
),
7273
},
@@ -80,8 +81,8 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
8081
Check: resource.ComposeTestCheckFunc(
8182
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
8283
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
83-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
84-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
84+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_example_account"),
85+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "tf_example_db"),
8586
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadWrite"),
8687
),
8788
},
@@ -156,20 +157,98 @@ func testAccCheckSqlserverAccountDBAttachmentExists(n string) resource.TestCheck
156157
}
157158
}
158159

159-
const testAccSqlserverAccountDBAttachment string = CommonPresetSQLServerAccount + `
160-
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
161-
instance_id = local.sqlserver_id
162-
account_name = local.sqlserver_account # "keep_sqlserver_account"
163-
db_name = local.sqlserver_db # "keep_sqlserver_db"
164-
privilege = "ReadOnly"
160+
const testAccSqlserverAccountDBAttachment string = defaultVpcSubnets + defaultSecurityGroupData + `
161+
data "tencentcloud_availability_zones_by_product" "zones" {
162+
product = "sqlserver"
163+
}
164+
165+
resource "tencentcloud_sqlserver_basic_instance" "example" {
166+
name = "tf-example"
167+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
168+
charge_type = "POSTPAID_BY_HOUR"
169+
vpc_id = local.vpc_id
170+
subnet_id = local.subnet_id
171+
project_id = 0
172+
memory = 4
173+
storage = 100
174+
cpu = 2
175+
machine_type = "CLOUD_PREMIUM"
176+
maintenance_week_set = [1, 2, 3]
177+
maintenance_start_time = "09:00"
178+
maintenance_time_span = 3
179+
security_groups = [local.sg_id]
180+
181+
tags = {
182+
"test" = "test"
183+
}
184+
}
185+
186+
resource "tencentcloud_sqlserver_db" "example" {
187+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
188+
name = "tf_example_db"
189+
charset = "Chinese_PRC_BIN"
190+
remark = "test-remark"
191+
}
192+
193+
resource "tencentcloud_sqlserver_account" "example" {
194+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
195+
name = "tf_example_account"
196+
password = "Qwer@234"
197+
remark = "test-remark"
198+
}
199+
200+
resource "tencentcloud_sqlserver_account_db_attachment" "example" {
201+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
202+
account_name = tencentcloud_sqlserver_account.example.name
203+
db_name = tencentcloud_sqlserver_db.example.name
204+
privilege = "ReadOnly"
165205
}
166206
`
167207

168-
const testAccSqlserverAccountDBAttachmentUpdate string = CommonPresetSQLServerAccount + `
169-
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
170-
instance_id = local.sqlserver_id
171-
account_name = local.sqlserver_account
172-
db_name = local.sqlserver_db
173-
privilege = "ReadWrite"
208+
const testAccSqlserverAccountDBAttachmentUpdate string = defaultVpcSubnets + defaultSecurityGroupData + `
209+
data "tencentcloud_availability_zones_by_product" "zones" {
210+
product = "sqlserver"
211+
}
212+
213+
resource "tencentcloud_sqlserver_basic_instance" "example" {
214+
name = "tf-example"
215+
availability_zone = data.tencentcloud_availability_zones_by_product.zones.zones.4.name
216+
charge_type = "POSTPAID_BY_HOUR"
217+
vpc_id = local.vpc_id
218+
subnet_id = local.subnet_id
219+
project_id = 0
220+
memory = 4
221+
storage = 100
222+
cpu = 2
223+
machine_type = "CLOUD_PREMIUM"
224+
maintenance_week_set = [1, 2, 3]
225+
maintenance_start_time = "09:00"
226+
maintenance_time_span = 3
227+
security_groups = [local.sg_id]
228+
229+
tags = {
230+
"test" = "test"
231+
}
232+
}
233+
234+
resource "tencentcloud_sqlserver_db" "example" {
235+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
236+
name = "tf_example_db"
237+
charset = "Chinese_PRC_BIN"
238+
remark = "test-remark"
239+
}
240+
241+
resource "tencentcloud_sqlserver_account" "example" {
242+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
243+
name = "tf_example_account"
244+
password = "Qwer@234"
245+
remark = "test-remark"
246+
}
247+
248+
resource "tencentcloud_sqlserver_account_db_attachment" "example" {
249+
instance_id = tencentcloud_sqlserver_basic_instance.example.id
250+
account_name = tencentcloud_sqlserver_account.example.name
251+
db_name = tencentcloud_sqlserver_db.example.name
252+
privilege = "ReadWrite"
174253
}
175254
`

0 commit comments

Comments
 (0)