Skip to content

Commit 0feeb9e

Browse files
authored
fix/sqlserver-resource-error (#1834)
* fix/sqlserver-resource-error * fix/sqlserver-resource-error * fix/sqlserver-resource-error
1 parent e1d39a7 commit 0feeb9e

19 files changed

+2510
-344
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ require (
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
41-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666
41+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.572
@@ -78,7 +78,7 @@ require (
7878
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547
7979
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.593
8080
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533
81-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564
81+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667
8282
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
8383
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529
8484
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.644

go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -845,8 +845,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.661/go.mod
845845
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.662/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
846846
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.663/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
847847
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.664/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666 h1:Qa3GQYsEWTesghhQ2+dWwfRZowz10v3witlO++LmPTQ=
849-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667 h1:jOkGU6JrL/Ywd5qRBwpP9jkKzYuxODgnAy0eN+sMZKw=
849+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
850850
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
851851
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
852852
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -928,6 +928,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 h1:r6HQh
928928
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533/go.mod h1:5sIIchyV9sXIVAqsD3UWts+qQJ0qoc55sL2WuiY8Ugs=
929929
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564 h1:YO2DCcZn+wRJmvfILBTe1KO4tZcFvmaKW4l/NhgZGoo=
930930
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564/go.mod h1:7ZZ31onSvtbcR8XJWMx2kAhgNDuX/TvyWpQgJW1NqlQ=
931+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667 h1:ShEqXfoo1HnGJbla+KbOwAoy3r3oZUQ0lhN3PuAvfEA=
932+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667/go.mod h1:n7nasKXwJ1N7XjYvZwwMZa5ikl+Ay72sV8DOc4f1XS0=
931933
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8=
932934
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578/go.mod h1:UlojGQh/9wb7/uXPNi7PvMral1CNAskVDNgqJEV83l0=
933935
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529 h1:vWUgseUvHs1fW/Ok+x3ld9UIhrYRNO9Yr8ccX8wmkkY=

tencentcloud/extension_sqlserver.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,11 @@ const (
183183
SQLSERVER_CLOUD_DB_VERSION_NAME_201902 = "SQL Server 2019 Standard"
184184
)
185185

186+
const (
187+
SQLSERVER_TYPE_PREPAID = "PREPAID"
188+
SQLSERVER_TYPE_POSTPAID = "POSTPAID"
189+
)
190+
186191
var SQLSERVER_MIGRATION_STATUS = map[int64]string{
187192
SQLSERVER_MIGRATION_INIT: "init",
188193
SQLSERVER_MIGRATION_MIGRATING: "migrating",

tencentcloud/resource_tc_sqlserver_complete_expansion.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ resource "tencentcloud_sqlserver_complete_expansion" "complete_expansion" {
88
instance_id = "mssql-qelbzgwf"
99
}
1010
```
11-
12-
Import
13-
14-
sqlserver complete_expansion can be imported using the id, e.g.
15-
16-
```
17-
terraform import tencentcloud_sqlserver_complete_expansion.complete_expansion complete_expansion_id
18-
```
1911
*/
2012
package tencentcloud
2113

@@ -34,9 +26,7 @@ func resourceTencentCloudSqlserverCompleteExpansion() *schema.Resource {
3426
Create: resourceTencentCloudSqlserverCompleteExpansionCreate,
3527
Read: resourceTencentCloudSqlserverCompleteExpansionRead,
3628
Delete: resourceTencentCloudSqlserverCompleteExpansionDelete,
37-
Importer: &schema.ResourceImporter{
38-
State: schema.ImportStatePassthrough,
39-
},
29+
4030
Schema: map[string]*schema.Schema{
4131
"instance_id": {
4232
Required: true,

tencentcloud/resource_tc_sqlserver_general_cloud_instance.go

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,8 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
114114
"period": {
115115
Optional: true,
116116
Type: schema.TypeInt,
117-
Default: 1,
118117
ValidateFunc: validateIntegerInRange(1, 48),
119-
Description: "Purchase instance period, the default value is 1, which means one month. The value cannot exceed 48.",
118+
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'.",
120119
},
121120
"db_version": {
122121
Optional: true,
@@ -126,8 +125,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
126125
"auto_renew_flag": {
127126
Optional: true,
128127
Type: schema.TypeInt,
129-
Default: 1,
130-
Description: "Automatic renewal flag: 0-normal renewal 1-automatic renewal, the default is 1 automatic renewal. Valid only when purchasing a prepaid instance.",
128+
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'.",
131129
},
132130
"security_group_list": {
133131
Optional: true,
@@ -185,6 +183,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource {
185183
"ha_type": {
186184
Optional: true,
187185
Type: schema.TypeString,
186+
Deprecated: "It has been deprecated from version 1.81.2.",
188187
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.",
189188
},
190189
},
@@ -231,6 +230,15 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceCreate(d *schema.ResourceD
231230

232231
if v, ok := d.GetOk("instance_charge_type"); ok {
233232
request.InstanceChargeType = helper.String(v.(string))
233+
if v.(string) == SQLSERVER_TYPE_PREPAID {
234+
if v, ok := d.GetOk("period"); ok {
235+
request.Period = helper.IntInt64(v.(int))
236+
}
237+
238+
if v, ok := d.GetOk("auto_renew_flag"); ok {
239+
request.AutoRenewFlag = helper.IntInt64(v.(int))
240+
}
241+
}
234242
}
235243

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

248-
if v, ok := d.GetOk("period"); ok {
249-
request.Period = helper.IntInt64(v.(int))
250-
}
251-
252256
if v, ok := d.GetOk("db_version"); ok {
253257
request.DBVersion = helper.String(v.(string))
254258
}
255259

256-
if v, ok := d.GetOk("auto_renew_flag"); ok {
257-
request.AutoRenewFlag = helper.IntInt64(v.(int))
258-
}
259-
260260
if v, ok := d.GetOk("security_group_list"); ok {
261261
securityGroupListSet := v.(*schema.Set).List()
262262
for i := range securityGroupListSet {
@@ -394,9 +394,9 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceRead(d *schema.ResourceDat
394394

395395
if generalCloudInstance.PayMode != nil {
396396
if *generalCloudInstance.PayMode == 0 {
397-
_ = d.Set("instance_charge_type", "POSTPAID")
397+
_ = d.Set("instance_charge_type", SQLSERVER_TYPE_POSTPAID)
398398
} else {
399-
_ = d.Set("instance_charge_type", "PREPAID")
399+
_ = d.Set("instance_charge_type", SQLSERVER_TYPE_PREPAID)
400400
}
401401
}
402402

@@ -529,6 +529,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceUpdate(d *schema.ResourceD
529529
instanceId = d.Id()
530530
waitSwitch int64
531531
dealId string
532+
instanceName string
532533
)
533534

534535
request.InstanceId = &instanceId
@@ -540,6 +541,26 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceUpdate(d *schema.ResourceD
540541
}
541542
}
542543

544+
if d.HasChange("name") {
545+
if v, ok := d.GetOk("name"); ok {
546+
instanceName = v.(string)
547+
548+
// set name
549+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
550+
inErr := sqlserverService.ModifySqlserverInstanceName(ctx, instanceId, instanceName)
551+
if inErr != nil {
552+
return retryError(inErr)
553+
}
554+
555+
return nil
556+
})
557+
558+
if err != nil {
559+
return err
560+
}
561+
}
562+
}
563+
543564
if d.HasChange("memory") {
544565
if v, ok := d.GetOk("memory"); ok {
545566
request.Memory = helper.IntInt64(v.(int))

tencentcloud/resource_tc_sqlserver_general_cloud_instance_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ func TestAccTencentCloudSqlserverGeneralCloudInstanceResource_basic(t *testing.T
2424
),
2525
},
2626
{
27-
ResourceName: "tencentcloud_sqlserver_general_cloud_instance.general_cloud_instance",
28-
ImportState: true,
29-
ImportStateVerify: true,
27+
ResourceName: "tencentcloud_sqlserver_general_cloud_instance.general_cloud_instance",
28+
ImportState: true,
29+
ImportStateVerify: true,
30+
ImportStateVerifyIgnore: []string{"period"},
3031
},
3132
{
3233
Config: testAccSqlserverGeneralCloudInstanceUpdate,

tencentcloud/resource_tc_sqlserver_instance.go

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func TencentSqlServerBasicInfo(isROInstance bool) map[string]*schema.Schema {
142142
"wait_switch": {
143143
Type: schema.TypeInt,
144144
Optional: true,
145-
Default: 0,
145+
Deprecated: "It has been deprecated from version 1.81.2.",
146146
Description: "The way to execute the allocation. Supported values include: 0 - execute immediately, 1 - execute in maintenance window.",
147147
},
148148
}
@@ -377,8 +377,7 @@ func sqlServerAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData,
377377
storage := d.Get("storage").(int)
378378
autoVoucher := d.Get("auto_voucher").(int)
379379
voucherIds := d.Get("voucher_ids").(*schema.Set).List()
380-
waitSwitch := d.Get("wait_switch").(int)
381-
outErr = sqlserverService.UpgradeSqlserverInstance(ctx, instanceId, memory, storage, autoVoucher, helper.InterfacesStringsPoint(voucherIds), waitSwitch)
380+
outErr = sqlserverService.UpgradeSqlserverInstance(ctx, instanceId, memory, storage, autoVoucher, helper.InterfacesStringsPoint(voucherIds))
382381

383382
if outErr != nil {
384383
return outErr
@@ -648,7 +647,6 @@ func tencentSqlServerBasicInfoRead(ctx context.Context, d *schema.ResourceData,
648647
errRet = outErr
649648
}
650649

651-
//computed
652650
_ = d.Set("ro_flag", instance.ROFlag)
653651
_ = d.Set("create_time", instance.CreateTime)
654652
_ = d.Set("status", instance.Status)
@@ -772,25 +770,5 @@ func resourceTencentCLoudSqlserverInstanceDelete(d *schema.ResourceData, meta in
772770
return outErr
773771
}
774772

775-
//outErr = sqlserverService.RecycleDBInstance(ctx, instanceId)
776-
//if outErr != nil {
777-
// return outErr
778-
//}
779-
//
780-
//outErr = resource.Retry(readRetryTimeout, func() *resource.RetryError {
781-
// _, has, inErr := sqlserverService.DescribeSqlserverInstanceById(ctx, d.Id())
782-
// if inErr != nil {
783-
// return retryError(inErr)
784-
// }
785-
// if has {
786-
// inErr = fmt.Errorf("delete SQL Server instance %s fail, instance still exists from SDK DescribeSqlserverInstanceById", instanceId)
787-
// return resource.RetryableError(inErr)
788-
// }
789-
// return nil
790-
//})
791-
//
792-
//if outErr != nil {
793-
// return outErr
794-
//}
795773
return nil
796774
}

tencentcloud/resource_tc_sqlserver_migration_test.go

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func testSweepSqlserverMigration(r string) error {
5252
return nil
5353
}
5454

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

140141
const testAccSqlserverMigration_account_db = testAccSqlserverBasicInstanceNetwork + CommonPresetSQLServerAccount + `
141142
resource "tencentcloud_sqlserver_account" "src" {
142-
instance_id = local.sqlserver_id
143-
name = "tf_sqlserver_migration_src_account"
144-
password = "testt1234"
145-
is_admin = true
146-
}
143+
instance_id = local.sqlserver_id
144+
name = "tf_sqlserver_migration_src_account"
145+
password = "testt1234"
146+
}
147147
148-
resource "tencentcloud_sqlserver_account_db_attachment" "src" {
149-
instance_id = local.sqlserver_id
150-
account_name = tencentcloud_sqlserver_account.src.name
151-
db_name = local.sqlserver_db # "keep_sqlserver_db"
152-
privilege = "ReadWrite"
153-
}
148+
resource "tencentcloud_sqlserver_account_db_attachment" "src" {
149+
instance_id = local.sqlserver_id
150+
account_name = tencentcloud_sqlserver_account.src.name
151+
db_name = local.sqlserver_db # "keep_sqlserver_db"
152+
privilege = "ReadWrite"
153+
}
154154
155-
resource "tencentcloud_sqlserver_instance" "dst" {
156-
name = "tf_sqlserver_dst_instance"
157-
availability_zone = var.default_az
158-
charge_type = "POSTPAID_BY_HOUR"
159-
vpc_id = local.vpc_id
160-
subnet_id = local.subnet_id
161-
security_groups = [local.sg_id]
162-
project_id = 0
163-
memory = 2
164-
storage = 10
165-
maintenance_week_set = [1,2,3]
166-
maintenance_start_time = "09:00"
167-
maintenance_time_span = 3
168-
tags = {
169-
"test" = "test"
170-
}
155+
resource "tencentcloud_sqlserver_instance" "dst" {
156+
name = "tf_sqlserver_dst_instance"
157+
availability_zone = var.default_az
158+
charge_type = "POSTPAID_BY_HOUR"
159+
vpc_id = local.vpc_id
160+
subnet_id = local.subnet_id
161+
security_groups = [local.sg_id]
162+
project_id = 0
163+
memory = 2
164+
storage = 10
165+
maintenance_week_set = [1,2,3]
166+
maintenance_start_time = "09:00"
167+
maintenance_time_span = 3
168+
tags = {
169+
"test" = "test"
171170
}
171+
}
172172
173-
resource "tencentcloud_sqlserver_account" "dst" {
174-
instance_id = tencentcloud_sqlserver_instance.dst.id
175-
name = "tf_sqlserver_migration_dst_account"
176-
password = "testt1234"
177-
is_admin = true
178-
}
173+
resource "tencentcloud_sqlserver_account" "dst" {
174+
instance_id = tencentcloud_sqlserver_instance.dst.id
175+
name = "tf_sqlserver_migration_dst_account"
176+
password = "testt1234"
177+
is_admin = true
178+
}
179179
180-
resource "tencentcloud_sqlserver_db" "dst" {
181-
instance_id = tencentcloud_sqlserver_instance.dst.id
182-
name = "tf_migration_dst_db"
183-
charset = "Chinese_PRC_BIN"
184-
remark = "testACC-remark"
185-
}
180+
resource "tencentcloud_sqlserver_db" "dst" {
181+
instance_id = tencentcloud_sqlserver_instance.dst.id
182+
name = "tf_migration_dst_db"
183+
charset = "Chinese_PRC_BIN"
184+
remark = "testACC-remark"
185+
}
186186
`
187187

188188
const testAccSqlserverMigration_basic = testAccSqlserverMigration_account_db + `
189-
190189
resource "tencentcloud_sqlserver_migration" "migration" {
191190
migrate_name = "tf_test_migration"
192191
migrate_type = 1
@@ -209,7 +208,6 @@ resource "tencentcloud_sqlserver_migration" "migration" {
209208
`
210209

211210
const testAccSqlserverMigration_update = testAccSqlserverMigration_account_db + `
212-
213211
resource "tencentcloud_sqlserver_migration" "migration" {
214212
migrate_name = "tf_test_migration_changed"
215213
migrate_type = 3

tencentcloud/resource_tc_sqlserver_renew_db_instance_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestAccTencentCloudSqlserverRenewDBInstanceResource_basic(t *testing.T) {
3232
const testAccSqlserverRenewDBInstance = testAccSqlserverInstanceBasicPrepaid + `
3333
resource "tencentcloud_sqlserver_instance" "test" {
3434
name = "test_sqlserver_instance"
35-
availability_zone = "ap-guangzhou-7"
35+
availability_zone = local.az
3636
charge_type = "PREPAID"
3737
period = 1
3838
vpc_id = local.vpc_id

0 commit comments

Comments
 (0)