Skip to content

Commit

Permalink
fix: sqlserver failed testcases (#964)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kagashino authored Apr 18, 2022
1 parent c0215c5 commit 3e8567b
Show file tree
Hide file tree
Showing 16 changed files with 258 additions and 174 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export_env.sh
.idea
*.log
*.exe
.terraform.lock.hcl
.terraform/
terraform-provider-tencentcloud
terraform-provider-qcloud
Expand Down
66 changes: 64 additions & 2 deletions tencentcloud/basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,38 @@ data "tencentcloud_instance_types" "default" {
}
`

const defaultAzVariable = `
variable "default_az" {
default = "ap-guangzhou-3"
}
`

// default VPC/Subnet datasource
const defaultVpcSubnets = defaultAzVariable + `
data "tencentcloud_vpc_subnets" "gz3" {
availability_zone = var.default_az
is_default = true
}
locals {
vpc_id = data.tencentcloud_vpc_subnets.gz3.instance_list.0.vpc_id
subnet_id = data.tencentcloud_vpc_subnets.gz3.instance_list.0.subnet_id
}`

const defaultSecurityGroupData = `
data "tencentcloud_security_groups" "internal" {
name = "default"
}
locals {
# local.sg_id
sg_id = data.tencentcloud_security_groups.internal.security_groups.0.security_group_id
}
`

const (
defaultMySQLName = "preset_mysql"
defaultMySQLName = "keep_preset_mysql"
)

// ref with `local.mysql_id`
Expand All @@ -179,13 +209,44 @@ locals {
}
`

// SQLServer
const defaultSQLServerName = "keep-preset_sqlserver"
const defaultSQLServerDB = "keep_sqlserver_db"
const defaultSQLServerAccount = "keep_sqlserver_account"

const CommonPresetSQLServer = `
data "tencentcloud_sqlserver_instances" "sqlserver" {
project_id = "` + defaultProjectId + `"
name = "` + defaultSQLServerName + `"
}
locals {
# local.sqlserver_id
sqlserver_id = data.tencentcloud_sqlserver_instances.sqlserver.instance_list.0.id
sqlserver_db = "` + defaultSQLServerDB + `"
}
`

const CommonPresetSQLServerAccount = CommonPresetSQLServer + `
data "tencentcloud_sqlserver_accounts" "test"{
instance_id = local.sqlserver_id
name = "` + defaultSQLServerAccount + `"
}
locals {
# local.sqlserver_id
sqlserver_account = data.tencentcloud_sqlserver_accounts.test.list.0.name
}
`

const testAccSqlserverAZ = `
data "tencentcloud_availability_zones_by_product" "zone" {
product = "sqlserver"
}
locals {
# local.az, local.az1
az = data.tencentcloud_availability_zones_by_product.zone.zones[0].name
az1 = data.tencentcloud_availability_zones_by_product.zone.zones[1].name
}
`

Expand All @@ -203,6 +264,7 @@ resource "tencentcloud_instance" "default" {
subnet_id = var.subnet_id
}
`
// End of SQLServer

const defaultCVMName = "keep-cvm"
const presetCVM = `
Expand Down
18 changes: 13 additions & 5 deletions tencentcloud/data_source_tc_sqlserver_backups_test.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package tencentcloud

import (
"fmt"
"testing"
"time"

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

var testDataSqlserverBackupsName = "data.tencentcloud_sqlserver_backups.test"

var now = time.Now().Format("2006-01-02 15:04:05")

func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
t.Parallel()
resource.Test(t, resource.TestCase{
Expand All @@ -16,8 +20,9 @@ func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
CheckDestroy: testAccCheckLBDestroy,
Steps: []resource.TestStep{
{
Config: testAccTencentCloudDataSqlserverBackupsBasic,
Config: testAccTencentCloudDataSqlserverBackupsBasic(),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(testDataSqlserverBackupsName, "end_time", now),
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.start_time"),
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.end_time"),
resource.TestCheckResourceAttrSet(testDataSqlserverBackupsName, "list.0.file_name"),
Expand All @@ -34,10 +39,13 @@ func TestAccDataSourceTencentCloudSqlserverBackups(t *testing.T) {
})
}

const testAccTencentCloudDataSqlserverBackupsBasic = `
func testAccTencentCloudDataSqlserverBackupsBasic() string {
return fmt.Sprintf(`
%s
data "tencentcloud_sqlserver_backups" "test"{
instance_id = "mssql-ds1xhnt9"
instance_id = local.sqlserver_id
start_time = "2020-06-17 00:00:00"
end_time = "2022-06-22 00:00:00"
end_time = "%s"
}
`, CommonPresetSQLServer, now)
}
`
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func TestAccDataSourceTencentCloudSqlserverBasicInstances(t *testing.T) {
})
}

const testAccTencentCloudDataSqlserverBasicInstancesBasic = testAccSqlserverInstanceBasic + `
const testAccTencentCloudDataSqlserverBasicInstancesBasic = testAccSqlserverAZ + `
resource "tencentcloud_vpc" "foo" {
name = "tf-sqlserver-vpc"
Expand Down
4 changes: 2 additions & 2 deletions tencentcloud/data_source_tc_sqlserver_dbs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ func TestAccDataSourceTencentCloudSqlserverDBs_basic(t *testing.T) {
})
}

const TestAccDataSourceTencentCloudSqlserverDB = `
const TestAccDataSourceTencentCloudSqlserverDB = CommonPresetSQLServer + `
data "tencentcloud_sqlserver_dbs" "foo" {
instance_id = "mssql-ds1xhnt9"
instance_id = local.sqlserver_id
}
`
35 changes: 12 additions & 23 deletions tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,55 +34,44 @@ func TestAccTencentCloudSqlserverPublishSubscribeDataSource(t *testing.T) {
})
}

const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = testAccSqlserverInstanceBasic + `
resource "tencentcloud_security_group" "foo" {
name = "test-sg-tf"
}
const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = defaultVpcSubnets + defaultSecurityGroupData + CommonPresetSQLServer + `
resource "tencentcloud_sqlserver_instance" "publish_instance" {
name = "tf_sqlserver_publish_instance"
availability_zone = var.availability_zone
charge_type = "POSTPAID_BY_HOUR"
vpc_id = "` + defaultVpcId + `"
subnet_id = "` + defaultSubnetId + `"
availability_zone = var.default_az
charge_type = "POSTPAID_BY_HOUR"
vpc_id = local.vpc_id
subnet_id = local.subnet_id
project_id = 0
memory = 2
storage = 10
maintenance_week_set = [1,2,3]
maintenance_start_time= "09:00"
maintenance_time_span = 3
security_groups = [tencentcloud_security_group.foo.name]
security_groups = [local.sg_id]
}
resource "tencentcloud_sqlserver_instance" "subscribe_instance" {
name = "tf_sqlserver_subscribe_instance"
availability_zone = var.availability_zone
availability_zone = var.default_az
charge_type = "POSTPAID_BY_HOUR"
vpc_id = "` + defaultVpcId + `"
subnet_id = "` + defaultSubnetId + `"
project_id = 0
vpc_id = local.vpc_id
subnet_id = local.subnet_id
memory = 2
storage = 10
maintenance_week_set = [1,2,3]
maintenance_start_time = "09:00"
maintenance_time_span = 3
security_groups = [tencentcloud_security_group.foo.name]
}
resource "tencentcloud_sqlserver_db" "test_publish_subscribe" {
instance_id = tencentcloud_sqlserver_instance.publish_instance.id
name = "test111"
charset = "Chinese_PRC_BIN"
remark = "testACC-remark"
security_groups = [local.sg_id]
}
resource "tencentcloud_sqlserver_publish_subscribe" "example" {
publish_instance_id = tencentcloud_sqlserver_instance.publish_instance.id
publish_instance_id = local.sqlserver_id
subscribe_instance_id = tencentcloud_sqlserver_instance.subscribe_instance.id
publish_subscribe_name = "example"
delete_subscribe_db = false
database_tuples {
publish_database = tencentcloud_sqlserver_db.test_publish_subscribe.name
publish_database = local.sqlserver_db
}
}
Expand Down
4 changes: 2 additions & 2 deletions tencentcloud/data_source_tc_sqlserver_readonly_groups_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ func TestAccDataSourceTencentCloudSqlserverReadonlyGroups(t *testing.T) {
})
}

const testAccTencentCloudDataSqlserverReadonlyGroupsBasic = `
const testAccTencentCloudDataSqlserverReadonlyGroupsBasic = CommonPresetSQLServer + `
data "tencentcloud_sqlserver_readonly_groups" "test"{
master_instance_id = "mssql-ds1xhnt9"
master_instance_id = local.sqlserver_id
}
`
41 changes: 31 additions & 10 deletions tencentcloud/extension_sqlserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,40 @@ const (
)

const (
SQLSERVER_DB_CREATING = 1
SQLSERVER_DB_RUNNING = 2
SQLSERVER_DB_MODIFYING = 3
SQLSERVER_DB_DELETING = -1
SQLSERVER_DB_UPGRADING = 9
SQLSERVER_DB_CREATING = 1
SQLSERVER_DB_RUNNING = 2
SQLSERVER_DB_MODIFYING = 3
SQLSERVER_DB_DELETING = -1
SQLSERVER_DB_UPGRADING = 9
SQLSERVER_DB_SWITCH_PENDING = 13 // 实例修改中且待切换
SQLSERVER_DB_PUBSUB_CREATING = 14 // 订阅发布创建中
SQLSERVER_DB_PUBSUB_MODIFYING = 15 // 订阅发布修改中
SQLSERVER_DB_SWITCHING = 16 // 实例修改中且切换中
SQLSERVER_DB_RO_CREATING = 17 // 创建RO副本中
)

var SQLSERVER_DB_STATUS = map[int64]string{
SQLSERVER_DB_CREATING: "creating",
SQLSERVER_DB_RUNNING: "running",
SQLSERVER_DB_MODIFYING: "modifying",
SQLSERVER_DB_DELETING: "deleting",
SQLSERVER_DB_UPGRADING: "upgrading",
SQLSERVER_DB_CREATING: "creating",
SQLSERVER_DB_RUNNING: "running",
SQLSERVER_DB_MODIFYING: "modifying",
SQLSERVER_DB_DELETING: "deleting",
SQLSERVER_DB_UPGRADING: "upgrading",
SQLSERVER_DB_SWITCH_PENDING: "switch pending",
SQLSERVER_DB_PUBSUB_CREATING: "pubsub creating",
SQLSERVER_DB_PUBSUB_MODIFYING: "pubsub modifying",
SQLSERVER_DB_SWITCHING: "switching",
SQLSERVER_DB_RO_CREATING: "ro creating",
}

var SQLSERVER_STATUS_WAITING = []int{
SQLSERVER_DB_CREATING,
SQLSERVER_DB_MODIFYING,
SQLSERVER_DB_UPGRADING,
SQLSERVER_DB_SWITCH_PENDING,
SQLSERVER_DB_PUBSUB_CREATING,
SQLSERVER_DB_PUBSUB_MODIFYING,
SQLSERVER_DB_SWITCHING,
SQLSERVER_DB_RO_CREATING,
}

const (
Expand Down
47 changes: 10 additions & 37 deletions tencentcloud/resource_tc_sqlserver_account_db_attachment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
Check: resource.ComposeTestCheckFunc(
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_sqlserver_account_attach"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "test111"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadOnly"),
),
},
Expand All @@ -35,14 +35,13 @@ func TestAccTencentCloudSqlserverAccountDBAttachmentResource(t *testing.T) {
ImportState: true,
ImportStateVerify: true,
},

{
Config: testAccSqlserverAccountDBAttachmentUpdate,
Check: resource.ComposeTestCheckFunc(
testAccCheckSqlserverAccountDBAttachmentExists(testSqlserverAccountDBAttachmentResourceKey),
resource.TestCheckResourceAttrSet(testSqlserverAccountDBAttachmentResourceKey, "instance_id"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", "tf_sqlserver_account_attach"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", "test111"),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "account_name", defaultSQLServerAccount),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "db_name", defaultSQLServerDB),
resource.TestCheckResourceAttr(testSqlserverAccountDBAttachmentResourceKey, "privilege", "ReadWrite"),
),
},
Expand Down Expand Up @@ -117,46 +116,20 @@ func testAccCheckSqlserverAccountDBAttachmentExists(n string) resource.TestCheck
}
}

const testAccSqlserverAccountDBAttachment string = CommonPresetSQLServer + `
resource "tencentcloud_sqlserver_account" "test" {
instance_id = local.sqlserver_id
name = "tf_sqlserver_account_attach"
password = "testt123"
}
resource "tencentcloud_sqlserver_db" "test" {
instance_id = local.sqlserver_id
name = "test111"
charset = "Chinese_PRC_BIN"
remark = "testACC-remark"
}
const testAccSqlserverAccountDBAttachment string = CommonPresetSQLServerAccount + `
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
instance_id = local.sqlserver_id
account_name = tencentcloud_sqlserver_account.test.name
db_name = tencentcloud_sqlserver_db.test.name
account_name = local.sqlserver_account
db_name = local.sqlserver_db
privilege = "ReadOnly"
}
`

const testAccSqlserverAccountDBAttachmentUpdate string = CommonPresetSQLServer + `
resource "tencentcloud_sqlserver_account" "test" {
instance_id = local.sqlserver_id
name = "tf_sqlserver_account_attach"
password = "testt123"
}
resource "tencentcloud_sqlserver_db" "test" {
instance_id = local.sqlserver_id
name = "test111"
charset = "Chinese_PRC_BIN"
remark = "testACC-remark"
}
const testAccSqlserverAccountDBAttachmentUpdate string = CommonPresetSQLServerAccount + `
resource "tencentcloud_sqlserver_account_db_attachment" "test" {
instance_id = local.sqlserver_id
account_name = tencentcloud_sqlserver_account.test.name
db_name = tencentcloud_sqlserver_db.test.name
account_name = local.sqlserver_account
db_name = local.sqlserver_db
privilege = "ReadWrite"
}
`
Loading

0 comments on commit 3e8567b

Please sign in to comment.