Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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