Skip to content

Commit 3e8567b

Browse files
authored
fix: sqlserver failed testcases (#964)
1 parent c0215c5 commit 3e8567b

16 files changed

+258
-174
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export_env.sh
99
.idea
1010
*.log
1111
*.exe
12+
.terraform.lock.hcl
1213
.terraform/
1314
terraform-provider-tencentcloud
1415
terraform-provider-qcloud

tencentcloud/basic_test.go

+64-2
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,38 @@ data "tencentcloud_instance_types" "default" {
156156
}
157157
`
158158

159+
const defaultAzVariable = `
160+
variable "default_az" {
161+
default = "ap-guangzhou-3"
162+
}
163+
`
164+
165+
// default VPC/Subnet datasource
166+
const defaultVpcSubnets = defaultAzVariable + `
167+
168+
data "tencentcloud_vpc_subnets" "gz3" {
169+
availability_zone = var.default_az
170+
is_default = true
171+
}
172+
173+
locals {
174+
vpc_id = data.tencentcloud_vpc_subnets.gz3.instance_list.0.vpc_id
175+
subnet_id = data.tencentcloud_vpc_subnets.gz3.instance_list.0.subnet_id
176+
}`
177+
178+
const defaultSecurityGroupData = `
179+
data "tencentcloud_security_groups" "internal" {
180+
name = "default"
181+
}
182+
183+
locals {
184+
# local.sg_id
185+
sg_id = data.tencentcloud_security_groups.internal.security_groups.0.security_group_id
186+
}
187+
`
188+
159189
const (
160-
defaultMySQLName = "preset_mysql"
190+
defaultMySQLName = "keep_preset_mysql"
161191
)
162192

163193
// ref with `local.mysql_id`
@@ -179,13 +209,44 @@ locals {
179209
}
180210
`
181211

212+
// SQLServer
213+
const defaultSQLServerName = "keep-preset_sqlserver"
214+
const defaultSQLServerDB = "keep_sqlserver_db"
215+
const defaultSQLServerAccount = "keep_sqlserver_account"
216+
182217
const CommonPresetSQLServer = `
183218
data "tencentcloud_sqlserver_instances" "sqlserver" {
184-
project_id = "` + defaultProjectId + `"
219+
name = "` + defaultSQLServerName + `"
185220
}
186221
187222
locals {
223+
# local.sqlserver_id
188224
sqlserver_id = data.tencentcloud_sqlserver_instances.sqlserver.instance_list.0.id
225+
sqlserver_db = "` + defaultSQLServerDB + `"
226+
}
227+
`
228+
229+
const CommonPresetSQLServerAccount = CommonPresetSQLServer + `
230+
data "tencentcloud_sqlserver_accounts" "test"{
231+
instance_id = local.sqlserver_id
232+
name = "` + defaultSQLServerAccount + `"
233+
}
234+
235+
locals {
236+
# local.sqlserver_id
237+
sqlserver_account = data.tencentcloud_sqlserver_accounts.test.list.0.name
238+
}
239+
`
240+
241+
const testAccSqlserverAZ = `
242+
data "tencentcloud_availability_zones_by_product" "zone" {
243+
product = "sqlserver"
244+
}
245+
246+
locals {
247+
# local.az, local.az1
248+
az = data.tencentcloud_availability_zones_by_product.zone.zones[0].name
249+
az1 = data.tencentcloud_availability_zones_by_product.zone.zones[1].name
189250
}
190251
`
191252

@@ -203,6 +264,7 @@ resource "tencentcloud_instance" "default" {
203264
subnet_id = var.subnet_id
204265
}
205266
`
267+
// End of SQLServer
206268

207269
const defaultCVMName = "keep-cvm"
208270
const presetCVM = `

tencentcloud/data_source_tc_sqlserver_backups_test.go

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package tencentcloud
22

33
import (
4+
"fmt"
45
"testing"
6+
"time"
57

68
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
79
)
810

911
var testDataSqlserverBackupsName = "data.tencentcloud_sqlserver_backups.test"
1012

13+
var now = time.Now().Format("2006-01-02 15:04:05")
14+
1115
func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
1216
t.Parallel()
1317
resource.Test(t, resource.TestCase{
@@ -16,8 +20,9 @@ func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
1620
CheckDestroy: testAccCheckLBDestroy,
1721
Steps: []resource.TestStep{
1822
{
19-
Config: testAccTencentCloudDataSqlserverBackupsBasic,
23+
Config: testAccTencentCloudDataSqlserverBackupsBasic(),
2024
Check: resource.ComposeTestCheckFunc(
25+
resource.TestCheckResourceAttr(testDataSqlserverBackupsName, "end_time", now),
2126
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.start_time"),
2227
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.end_time"),
2328
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.file_name"),
@@ -34,10 +39,13 @@ func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
3439
})
3540
}
3641

37-
const testAccTencentCloudDataSqlserverBackupsBasic = `
42+
func testAccTencentCloudDataSqlserverBackupsBasic() string {
43+
return fmt.Sprintf(`
44+
%s
3845
data "tencentcloud_sqlserver_backups" "test"{
39-
instance_id = "mssql-ds1xhnt9"
46+
instance_id = local.sqlserver_id
4047
start_time = "2020-06-17 00:00:00"
41-
end_time = "2022-06-22 00:00:00"
48+
end_time = "%s"
49+
}
50+
`, CommonPresetSQLServer, now)
4251
}
43-
`

tencentcloud/data_source_tc_sqlserver_basic_instances_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestAccDataSourceTencentCloudSqlserverBasicInstances(t *testing.T) {
4343
})
4444
}
4545

46-
const testAccTencentCloudDataSqlserverBasicInstancesBasic = testAccSqlserverInstanceBasic + `
46+
const testAccTencentCloudDataSqlserverBasicInstancesBasic = testAccSqlserverAZ + `
4747
4848
resource "tencentcloud_vpc" "foo" {
4949
name = "tf-sqlserver-vpc"

tencentcloud/data_source_tc_sqlserver_dbs_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ func TestAccDataSourceTencentCloudSqlserverDBs_basic(t *testing.T) {
2828
})
2929
}
3030

31-
const TestAccDataSourceTencentCloudSqlserverDB = `
31+
const TestAccDataSourceTencentCloudSqlserverDB = CommonPresetSQLServer + `
3232
data "tencentcloud_sqlserver_dbs" "foo" {
33-
instance_id = "mssql-ds1xhnt9"
33+
instance_id = local.sqlserver_id
3434
}
3535
`

tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go

+12-23
Original file line numberDiff line numberDiff line change
@@ -34,55 +34,44 @@ func TestAccTencentCloudSqlserverPublishSubscribeDataSource(t *testing.T) {
3434
})
3535
}
3636

37-
const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = testAccSqlserverInstanceBasic + `
38-
resource "tencentcloud_security_group" "foo" {
39-
name = "test-sg-tf"
40-
}
37+
const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = defaultVpcSubnets + defaultSecurityGroupData + CommonPresetSQLServer + `
4138
4239
resource "tencentcloud_sqlserver_instance" "publish_instance" {
4340
name = "tf_sqlserver_publish_instance"
44-
availability_zone = var.availability_zone
45-
charge_type = "POSTPAID_BY_HOUR"
46-
vpc_id = "` + defaultVpcId + `"
47-
subnet_id = "` + defaultSubnetId + `"
41+
availability_zone = var.default_az
42+
charge_type = "POSTPAID_BY_HOUR"
43+
vpc_id = local.vpc_id
44+
subnet_id = local.subnet_id
4845
project_id = 0
4946
memory = 2
5047
storage = 10
5148
maintenance_week_set = [1,2,3]
5249
maintenance_start_time= "09:00"
5350
maintenance_time_span = 3
54-
security_groups = [tencentcloud_security_group.foo.name]
51+
security_groups = [local.sg_id]
5552
}
5653
5754
resource "tencentcloud_sqlserver_instance" "subscribe_instance" {
5855
name = "tf_sqlserver_subscribe_instance"
59-
availability_zone = var.availability_zone
56+
availability_zone = var.default_az
6057
charge_type = "POSTPAID_BY_HOUR"
61-
vpc_id = "` + defaultVpcId + `"
62-
subnet_id = "` + defaultSubnetId + `"
63-
project_id = 0
58+
vpc_id = local.vpc_id
59+
subnet_id = local.subnet_id
6460
memory = 2
6561
storage = 10
6662
maintenance_week_set = [1,2,3]
6763
maintenance_start_time = "09:00"
6864
maintenance_time_span = 3
69-
security_groups = [tencentcloud_security_group.foo.name]
70-
}
71-
72-
resource "tencentcloud_sqlserver_db" "test_publish_subscribe" {
73-
instance_id = tencentcloud_sqlserver_instance.publish_instance.id
74-
name = "test111"
75-
charset = "Chinese_PRC_BIN"
76-
remark = "testACC-remark"
65+
security_groups = [local.sg_id]
7766
}
7867
7968
resource "tencentcloud_sqlserver_publish_subscribe" "example" {
80-
publish_instance_id = tencentcloud_sqlserver_instance.publish_instance.id
69+
publish_instance_id = local.sqlserver_id
8170
subscribe_instance_id = tencentcloud_sqlserver_instance.subscribe_instance.id
8271
publish_subscribe_name = "example"
8372
delete_subscribe_db = false
8473
database_tuples {
85-
publish_database = tencentcloud_sqlserver_db.test_publish_subscribe.name
74+
publish_database = local.sqlserver_db
8675
}
8776
}
8877

tencentcloud/data_source_tc_sqlserver_readonly_groups_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ func TestAccDataSourceTencentCloudSqlserverReadonlyGroups(t *testing.T) {
3535
})
3636
}
3737

38-
const testAccTencentCloudDataSqlserverReadonlyGroupsBasic = `
38+
const testAccTencentCloudDataSqlserverReadonlyGroupsBasic = CommonPresetSQLServer + `
3939
data "tencentcloud_sqlserver_readonly_groups" "test"{
40-
master_instance_id = "mssql-ds1xhnt9"
40+
master_instance_id = local.sqlserver_id
4141
}
4242
`

tencentcloud/extension_sqlserver.go

+31-10
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,40 @@ const (
4242
)
4343

4444
const (
45-
SQLSERVER_DB_CREATING = 1
46-
SQLSERVER_DB_RUNNING = 2
47-
SQLSERVER_DB_MODIFYING = 3
48-
SQLSERVER_DB_DELETING = -1
49-
SQLSERVER_DB_UPGRADING = 9
45+
SQLSERVER_DB_CREATING = 1
46+
SQLSERVER_DB_RUNNING = 2
47+
SQLSERVER_DB_MODIFYING = 3
48+
SQLSERVER_DB_DELETING = -1
49+
SQLSERVER_DB_UPGRADING = 9
50+
SQLSERVER_DB_SWITCH_PENDING = 13 // 实例修改中且待切换
51+
SQLSERVER_DB_PUBSUB_CREATING = 14 // 订阅发布创建中
52+
SQLSERVER_DB_PUBSUB_MODIFYING = 15 // 订阅发布修改中
53+
SQLSERVER_DB_SWITCHING = 16 // 实例修改中且切换中
54+
SQLSERVER_DB_RO_CREATING = 17 // 创建RO副本中
5055
)
5156

5257
var SQLSERVER_DB_STATUS = map[int64]string{
53-
SQLSERVER_DB_CREATING: "creating",
54-
SQLSERVER_DB_RUNNING: "running",
55-
SQLSERVER_DB_MODIFYING: "modifying",
56-
SQLSERVER_DB_DELETING: "deleting",
57-
SQLSERVER_DB_UPGRADING: "upgrading",
58+
SQLSERVER_DB_CREATING: "creating",
59+
SQLSERVER_DB_RUNNING: "running",
60+
SQLSERVER_DB_MODIFYING: "modifying",
61+
SQLSERVER_DB_DELETING: "deleting",
62+
SQLSERVER_DB_UPGRADING: "upgrading",
63+
SQLSERVER_DB_SWITCH_PENDING: "switch pending",
64+
SQLSERVER_DB_PUBSUB_CREATING: "pubsub creating",
65+
SQLSERVER_DB_PUBSUB_MODIFYING: "pubsub modifying",
66+
SQLSERVER_DB_SWITCHING: "switching",
67+
SQLSERVER_DB_RO_CREATING: "ro creating",
68+
}
69+
70+
var SQLSERVER_STATUS_WAITING = []int{
71+
SQLSERVER_DB_CREATING,
72+
SQLSERVER_DB_MODIFYING,
73+
SQLSERVER_DB_UPGRADING,
74+
SQLSERVER_DB_SWITCH_PENDING,
75+
SQLSERVER_DB_PUBSUB_CREATING,
76+
SQLSERVER_DB_PUBSUB_MODIFYING,
77+
SQLSERVER_DB_SWITCHING,
78+
SQLSERVER_DB_RO_CREATING,
5879
}
5980

6081
const (

tencentcloud/resource_tc_sqlserver_account_db_attachment_test.go

+10-37
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
2525
Check: resource.ComposeTestCheckFunc(
2626
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
2727
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
28-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_sqlserver_account_attach"),
29-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "test111"),
28+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
29+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
3030
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadOnly"),
3131
),
3232
},
@@ -35,14 +35,13 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
3535
ImportState: true,
3636
ImportStateVerify: true,
3737
},
38-
3938
{
4039
Config: testAccSqlserverAccountDBAttachmentUpdate,
4140
Check: resource.ComposeTestCheckFunc(
4241
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
4342
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
44-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_sqlserver_account_attach"),
45-
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "test111"),
43+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
44+
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
4645
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadWrite"),
4746
),
4847
},
@@ -117,46 +116,20 @@ func testAccCheckSqlserverAccountDBAttachmentExists(n string) resource.TestCheck
117116
}
118117
}
119118

120-
const testAccSqlserverAccountDBAttachment string = CommonPresetSQLServer + `
121-
resource "tencentcloud_sqlserver_account" "test" {
122-
instance_id = local.sqlserver_id
123-
name = "tf_sqlserver_account_attach"
124-
password = "testt123"
125-
}
126-
127-
resource "tencentcloud_sqlserver_db" "test" {
128-
instance_id = local.sqlserver_id
129-
name = "test111"
130-
charset = "Chinese_PRC_BIN"
131-
remark = "testACC-remark"
132-
}
133-
119+
const testAccSqlserverAccountDBAttachment string = CommonPresetSQLServerAccount + `
134120
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
135121
instance_id = local.sqlserver_id
136-
account_name = tencentcloud_sqlserver_account.test.name
137-
db_name = tencentcloud_sqlserver_db.test.name
122+
account_name = local.sqlserver_account
123+
db_name = local.sqlserver_db
138124
privilege = "ReadOnly"
139125
}
140126
`
141127

142-
const testAccSqlserverAccountDBAttachmentUpdate string = CommonPresetSQLServer + `
143-
resource "tencentcloud_sqlserver_account" "test" {
144-
instance_id = local.sqlserver_id
145-
name = "tf_sqlserver_account_attach"
146-
password = "testt123"
147-
}
148-
149-
resource "tencentcloud_sqlserver_db" "test" {
150-
instance_id = local.sqlserver_id
151-
name = "test111"
152-
charset = "Chinese_PRC_BIN"
153-
remark = "testACC-remark"
154-
}
155-
128+
const testAccSqlserverAccountDBAttachmentUpdate string = CommonPresetSQLServerAccount + `
156129
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
157130
instance_id = local.sqlserver_id
158-
account_name = tencentcloud_sqlserver_account.test.name
159-
db_name = tencentcloud_sqlserver_db.test.name
131+
account_name = local.sqlserver_account
132+
db_name = local.sqlserver_db
160133
privilege = "ReadWrite"
161134
}
162135
`

0 commit comments

Comments
 (0)