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
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.572
Expand Down Expand Up @@ -78,7 +78,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.593
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.644
Expand Down
6 changes: 4 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -845,8 +845,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.661/go.mod
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.662/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.663/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.664/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666 h1:Qa3GQYsEWTesghhQ2+dWwfRZowz10v3witlO++LmPTQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667 h1:jOkGU6JrL/Ywd5qRBwpP9jkKzYuxODgnAy0eN+sMZKw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
Expand Down Expand Up @@ -928,6 +928,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 h1:r6HQh
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533/go.mod h1:5sIIchyV9sXIVAqsD3UWts+qQJ0qoc55sL2WuiY8Ugs=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564 h1:YO2DCcZn+wRJmvfILBTe1KO4tZcFvmaKW4l/NhgZGoo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564/go.mod h1:7ZZ31onSvtbcR8XJWMx2kAhgNDuX/TvyWpQgJW1NqlQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667 h1:ShEqXfoo1HnGJbla+KbOwAoy3r3oZUQ0lhN3PuAvfEA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667/go.mod h1:n7nasKXwJ1N7XjYvZwwMZa5ikl+Ay72sV8DOc4f1XS0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578/go.mod h1:UlojGQh/9wb7/uXPNi7PvMral1CNAskVDNgqJEV83l0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529 h1:vWUgseUvHs1fW/Ok+x3ld9UIhrYRNO9Yr8ccX8wmkkY=
Expand Down
5 changes: 5 additions & 0 deletions tencentcloud/extension_sqlserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,11 @@ const (
SQLSERVER_CLOUD_DB_VERSION_NAME_201902 = "SQL Server 2019 Standard"
)

const (
SQLSERVER_TYPE_PREPAID = "PREPAID"
SQLSERVER_TYPE_POSTPAID = "POSTPAID"
)

var SQLSERVER_MIGRATION_STATUS = map[int64]string{
SQLSERVER_MIGRATION_INIT: "init",
SQLSERVER_MIGRATION_MIGRATING: "migrating",
Expand Down
12 changes: 1 addition & 11 deletions tencentcloud/resource_tc_sqlserver_complete_expansion.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,6 @@ resource "tencentcloud_sqlserver_complete_expansion" "complete_expansion" {
instance_id = "mssql-qelbzgwf"
}
```

Import

sqlserver complete_expansion can be imported using the id, e.g.

```
terraform import tencentcloud_sqlserver_complete_expansion.complete_expansion complete_expansion_id
```
*/
package tencentcloud

Expand All @@ -34,9 +26,7 @@ func resourceTencentCloudSqlserverCompleteExpansion() *schema.Resource {
Create: resourceTencentCloudSqlserverCompleteExpansionCreate,
Read: resourceTencentCloudSqlserverCompleteExpansionRead,
Delete: resourceTencentCloudSqlserverCompleteExpansionDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},

Schema: map[string]*schema.Schema{
"instance_id": {
Required: true,
Expand Down
49 changes: 35 additions & 14 deletions tencentcloud/resource_tc_sqlserver_general_cloud_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,8 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
"period": {
Optional: true,
Type: schema.TypeInt,
Default: 1,
ValidateFunc: validateIntegerInRange(1, 48),
Description: "Purchase instance period, the default value is 1, which means one month. The value cannot exceed 48.",
Description: "Purchase instance period, the default value is 1, which means one month. The value cannot exceed 48. Valid only when the 'instance_charge_type' parameter value is 'PREPAID'.",
},
"db_version": {
Optional: true,
Expand All @@ -126,8 +125,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
"auto_renew_flag": {
Optional: true,
Type: schema.TypeInt,
Default: 1,
Description: "Automatic renewal flag: 0-normal renewal 1-automatic renewal, the default is 1 automatic renewal. Valid only when purchasing a prepaid instance.",
Description: "Automatic renewal flag: 0-normal renewal 1-automatic renewal, the default is 1 automatic renewal. Valid only when purchasing a prepaid instance. Valid only when the 'instance_charge_type' parameter value is 'PREPAID'.",
},
"security_group_list": {
Optional: true,
Expand Down Expand Up @@ -185,6 +183,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
"ha_type": {
Optional: true,
Type: schema.TypeString,
Deprecated: "It has been deprecated from version 1.81.2.",
Description: "Upgrade the high-availability architecture of sqlserver, upgrade from mirror disaster recovery to always on cluster disaster recovery, only support 2017 and above and support always on high-availability instances, do not support downgrading to mirror disaster recovery, CLUSTER-upgrade to always on capacity Disaster, if not filled, the high-availability architecture will not be modified.",
},
},
Expand Down Expand Up @@ -231,6 +230,15 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceCreate(d *schema.ResourceD

if v, ok := d.GetOk("instance_charge_type"); ok {
request.InstanceChargeType = helper.String(v.(string))
if v.(string) == SQLSERVER_TYPE_PREPAID {
if v, ok := d.GetOk("period"); ok {
request.Period = helper.IntInt64(v.(int))
}

if v, ok := d.GetOk("auto_renew_flag"); ok {
request.AutoRenewFlag = helper.IntInt64(v.(int))
}
}
}

if v, ok := d.GetOk("project_id"); ok {
Expand All @@ -245,18 +253,10 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceCreate(d *schema.ResourceD
request.VpcId = helper.String(v.(string))
}

if v, ok := d.GetOk("period"); ok {
request.Period = helper.IntInt64(v.(int))
}

if v, ok := d.GetOk("db_version"); ok {
request.DBVersion = helper.String(v.(string))
}

if v, ok := d.GetOk("auto_renew_flag"); ok {
request.AutoRenewFlag = helper.IntInt64(v.(int))
}

if v, ok := d.GetOk("security_group_list"); ok {
securityGroupListSet := v.(*schema.Set).List()
for i := range securityGroupListSet {
Expand Down Expand Up @@ -394,9 +394,9 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceRead(d *schema.ResourceDat

if generalCloudInstance.PayMode != nil {
if *generalCloudInstance.PayMode == 0 {
_ = d.Set("instance_charge_type", "POSTPAID")
_ = d.Set("instance_charge_type", SQLSERVER_TYPE_POSTPAID)
} else {
_ = d.Set("instance_charge_type", "PREPAID")
_ = d.Set("instance_charge_type", SQLSERVER_TYPE_PREPAID)
}
}

Expand Down Expand Up @@ -529,6 +529,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceUpdate(d *schema.ResourceD
instanceId = d.Id()
waitSwitch int64
dealId string
instanceName string
)

request.InstanceId = &instanceId
Expand All @@ -540,6 +541,26 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceUpdate(d *schema.ResourceD
}
}

if d.HasChange("name") {
if v, ok := d.GetOk("name"); ok {
instanceName = v.(string)

// set name
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
inErr := sqlserverService.ModifySqlserverInstanceName(ctx, instanceId, instanceName)
if inErr != nil {
return retryError(inErr)
}

return nil
})

if err != nil {
return err
}
}
}

if d.HasChange("memory") {
if v, ok := d.GetOk("memory"); ok {
request.Memory = helper.IntInt64(v.(int))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ func TestAccTencentCloudSqlserverGeneralCloudInstanceResource_basic(t *testing.T
),
},
{
ResourceName: "tencentcloud_sqlserver_general_cloud_instance.general_cloud_instance",
ImportState: true,
ImportStateVerify: true,
ResourceName: "tencentcloud_sqlserver_general_cloud_instance.general_cloud_instance",
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"period"},
},
{
Config: testAccSqlserverGeneralCloudInstanceUpdate,
Expand Down
26 changes: 2 additions & 24 deletions tencentcloud/resource_tc_sqlserver_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func TencentSqlServerBasicInfo(isROInstance bool) map[string]*schema.Schema {
"wait_switch": {
Type: schema.TypeInt,
Optional: true,
Default: 0,
Deprecated: "It has been deprecated from version 1.81.2.",
Description: "The way to execute the allocation. Supported values include: 0 - execute immediately, 1 - execute in maintenance window.",
},
}
Expand Down Expand Up @@ -377,8 +377,7 @@ func sqlServerAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData,
storage := d.Get("storage").(int)
autoVoucher := d.Get("auto_voucher").(int)
voucherIds := d.Get("voucher_ids").(*schema.Set).List()
waitSwitch := d.Get("wait_switch").(int)
outErr = sqlserverService.UpgradeSqlserverInstance(ctx, instanceId, memory, storage, autoVoucher, helper.InterfacesStringsPoint(voucherIds), waitSwitch)
outErr = sqlserverService.UpgradeSqlserverInstance(ctx, instanceId, memory, storage, autoVoucher, helper.InterfacesStringsPoint(voucherIds))

if outErr != nil {
return outErr
Expand Down Expand Up @@ -648,7 +647,6 @@ func tencentSqlServerBasicInfoRead(ctx context.Context, d *schema.ResourceData,
errRet = outErr
}

//computed
_ = d.Set("ro_flag", instance.ROFlag)
_ = d.Set("create_time", instance.CreateTime)
_ = d.Set("status", instance.Status)
Expand Down Expand Up @@ -772,25 +770,5 @@ func resourceTencentCLoudSqlserverInstanceDelete(d *schema.ResourceData, meta in
return outErr
}

//outErr = sqlserverService.RecycleDBInstance(ctx, instanceId)
//if outErr != nil {
// return outErr
//}
//
//outErr = resource.Retry(readRetryTimeout, func() *resource.RetryError {
// _, has, inErr := sqlserverService.DescribeSqlserverInstanceById(ctx, d.Id())
// if inErr != nil {
// return retryError(inErr)
// }
// if has {
// inErr = fmt.Errorf("delete SQL Server instance %s fail, instance still exists from SDK DescribeSqlserverInstanceById", instanceId)
// return resource.RetryableError(inErr)
// }
// return nil
//})
//
//if outErr != nil {
// return outErr
//}
return nil
}
80 changes: 39 additions & 41 deletions tencentcloud/resource_tc_sqlserver_migration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ func testSweepSqlserverMigration(r string) error {
return nil
}

// go test -i; go test -test.run TestAccTencentCloudSqlserverMigrationResource_basic -v
func TestAccTencentCloudSqlserverMigrationResource_basic(t *testing.T) {
t.Parallel()
resource.Test(t, resource.TestCase{
Expand Down Expand Up @@ -139,54 +140,52 @@ func testAccCheckSqlserverMigrationExists(n string) resource.TestCheckFunc {

const testAccSqlserverMigration_account_db = testAccSqlserverBasicInstanceNetwork + CommonPresetSQLServerAccount + `
resource "tencentcloud_sqlserver_account" "src" {
instance_id = local.sqlserver_id
name = "tf_sqlserver_migration_src_account"
password = "testt1234"
is_admin = true
}
instance_id = local.sqlserver_id
name = "tf_sqlserver_migration_src_account"
password = "testt1234"
}
resource "tencentcloud_sqlserver_account_db_attachment" "src" {
instance_id = local.sqlserver_id
account_name = tencentcloud_sqlserver_account.src.name
db_name = local.sqlserver_db # "keep_sqlserver_db"
privilege = "ReadWrite"
}
resource "tencentcloud_sqlserver_account_db_attachment" "src" {
instance_id = local.sqlserver_id
account_name = tencentcloud_sqlserver_account.src.name
db_name = local.sqlserver_db # "keep_sqlserver_db"
privilege = "ReadWrite"
}
resource "tencentcloud_sqlserver_instance" "dst" {
name = "tf_sqlserver_dst_instance"
availability_zone = var.default_az
charge_type = "POSTPAID_BY_HOUR"
vpc_id = local.vpc_id
subnet_id = local.subnet_id
security_groups = [local.sg_id]
project_id = 0
memory = 2
storage = 10
maintenance_week_set = [1,2,3]
maintenance_start_time = "09:00"
maintenance_time_span = 3
tags = {
"test" = "test"
}
resource "tencentcloud_sqlserver_instance" "dst" {
name = "tf_sqlserver_dst_instance"
availability_zone = var.default_az
charge_type = "POSTPAID_BY_HOUR"
vpc_id = local.vpc_id
subnet_id = local.subnet_id
security_groups = [local.sg_id]
project_id = 0
memory = 2
storage = 10
maintenance_week_set = [1,2,3]
maintenance_start_time = "09:00"
maintenance_time_span = 3
tags = {
"test" = "test"
}
}
resource "tencentcloud_sqlserver_account" "dst" {
instance_id = tencentcloud_sqlserver_instance.dst.id
name = "tf_sqlserver_migration_dst_account"
password = "testt1234"
is_admin = true
}
resource "tencentcloud_sqlserver_account" "dst" {
instance_id = tencentcloud_sqlserver_instance.dst.id
name = "tf_sqlserver_migration_dst_account"
password = "testt1234"
is_admin = true
}
resource "tencentcloud_sqlserver_db" "dst" {
instance_id = tencentcloud_sqlserver_instance.dst.id
name = "tf_migration_dst_db"
charset = "Chinese_PRC_BIN"
remark = "testACC-remark"
}
resource "tencentcloud_sqlserver_db" "dst" {
instance_id = tencentcloud_sqlserver_instance.dst.id
name = "tf_migration_dst_db"
charset = "Chinese_PRC_BIN"
remark = "testACC-remark"
}
`

const testAccSqlserverMigration_basic = testAccSqlserverMigration_account_db + `
resource "tencentcloud_sqlserver_migration" "migration" {
migrate_name = "tf_test_migration"
migrate_type = 1
Expand All @@ -209,7 +208,6 @@ resource "tencentcloud_sqlserver_migration" "migration" {
`

const testAccSqlserverMigration_update = testAccSqlserverMigration_account_db + `
resource "tencentcloud_sqlserver_migration" "migration" {
migrate_name = "tf_test_migration_changed"
migrate_type = 3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func TestAccTencentCloudSqlserverRenewDBInstanceResource_basic(t *testing.T) {
const testAccSqlserverRenewDBInstance = testAccSqlserverInstanceBasicPrepaid + `
resource "tencentcloud_sqlserver_instance" "test" {
name = "test_sqlserver_instance"
availability_zone = "ap-guangzhou-7"
availability_zone = local.az
charge_type = "PREPAID"
period = 1
vpc_id = local.vpc_id
Expand Down
Loading