Skip to content

Commit a6d0394

Browse files
committed
RDS: Improves the invoking api method and supports refreshing credential automatically
1 parent fca3bf8 commit a6d0394

File tree

43 files changed

+367
-1215
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+367
-1215
lines changed

alicloud/connectivity/client.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -506,33 +506,6 @@ func (client *AliyunClient) NewVpcClient() (*rpc.Client, error) {
506506
return conn, nil
507507
}
508508

509-
func (client *AliyunClient) NewRdsClient() (*rpc.Client, error) {
510-
productCode := "rds"
511-
endpoint := "rds.aliyuncs.com"
512-
if v, ok := client.config.Endpoints.Load(productCode); !ok || v.(string) == "" {
513-
if err := client.loadEndpoint(productCode); err != nil {
514-
log.Printf("[WARN] %s", err.Error())
515-
log.Printf("[WARN] loading rds endpoint failed and using %s instead.", endpoint)
516-
}
517-
}
518-
if v, ok := client.config.Endpoints.Load(productCode); ok && v.(string) != "" {
519-
endpoint = v.(string)
520-
}
521-
if endpoint == "" {
522-
return nil, fmt.Errorf("[ERROR] missing the product %s endpoint.", productCode)
523-
}
524-
525-
sdkConfig := client.teaSdkConfig
526-
sdkConfig.SetEndpoint(endpoint)
527-
528-
conn, err := rpc.NewClient(&sdkConfig)
529-
if err != nil {
530-
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
531-
}
532-
533-
return conn, nil
534-
}
535-
536509
func (client *AliyunClient) WithCenClient(do func(*cbn.Client) (interface{}, error)) (interface{}, error) {
537510
// Initialize the CEN client if necessary
538511
if client.cenconn == nil {

alicloud/data_source_alicloud_db_instance_class_infos.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"time"
66

77
"github.com/PaesslerAG/jsonpath"
8-
util "github.com/alibabacloud-go/tea-utils/service"
98
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
109
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1110
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
@@ -114,15 +113,10 @@ func dataSourceAlicloudDBInstanceClassInfosRead(d *schema.ResourceData, meta int
114113
}
115114
var ids []string
116115
var response map[string]interface{}
117-
conn, err := client.NewRdsClient()
118-
if err != nil {
119-
return WrapError(err)
120-
}
121-
runtime := util.RuntimeOptions{}
122-
runtime.SetAutoretry(true)
116+
var err error
123117
wait := incrementalWait(3*time.Second, 3*time.Second)
124118
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
125-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
119+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
126120
if err != nil {
127121
if NeedRetry(err) {
128122
wait()

alicloud/data_source_alicloud_db_instance_classes.go

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"time"
77

88
"github.com/PaesslerAG/jsonpath"
9-
util "github.com/alibabacloud-go/tea-utils/service"
109
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
1110
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1211
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
@@ -164,6 +163,7 @@ func dataSourceAlicloudDBInstanceClassesRead(d *schema.ResourceData, meta interf
164163
dbInstanceStorageType, dbInstanceStorageTypeOk = d.GetOk("storage_type")
165164
}
166165
category, categoryOk := d.GetOk("category")
166+
var err error
167167

168168
availableZones := make([]map[string]interface{}, 0)
169169
s := make([]map[string]interface{}, 0)
@@ -193,15 +193,9 @@ func dataSourceAlicloudDBInstanceClassesRead(d *schema.ResourceData, meta interf
193193
}
194194
}
195195
var response map[string]interface{}
196-
conn, err := client.NewRdsClient()
197-
if err != nil {
198-
return WrapError(err)
199-
}
200-
runtime := util.RuntimeOptions{}
201-
runtime.SetAutoretry(true)
202196
wait := incrementalWait(3*time.Second, 3*time.Second)
203197
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
204-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
198+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
205199
if err != nil {
206200
if NeedRetry(err) {
207201
wait()
@@ -284,17 +278,12 @@ func dataSourceAlicloudDBInstanceClassesRead(d *schema.ResourceData, meta interf
284278
targetStorageType = v.(string)
285279
}
286280
var response map[string]interface{}
287-
conn, err := client.NewRdsClient()
288-
if err != nil {
289-
return WrapError(err)
290-
}
291-
runtime := util.RuntimeOptions{}
292-
runtime.SetAutoretry(true)
281+
293282
for _, engine := range engines {
294283
request["Engine"] = engine
295284
wait := incrementalWait(3*time.Second, 3*time.Second)
296285
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
297-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
286+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
298287
if err != nil {
299288
if NeedRetry(err) {
300289
wait()
@@ -388,7 +377,7 @@ func dataSourceAlicloudDBInstanceClassesRead(d *schema.ResourceData, meta interf
388377
var response map[string]interface{}
389378
wait := incrementalWait(3*time.Second, 3*time.Second)
390379
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
391-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
380+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
392381
if err != nil {
393382
if NeedRetry(err) {
394383
wait()
@@ -431,7 +420,7 @@ func dataSourceAlicloudDBInstanceClassesRead(d *schema.ResourceData, meta interf
431420
}
432421

433422
d.SetId(dataResourceIdHash(ids))
434-
err := d.Set("instance_classes", s)
423+
err = d.Set("instance_classes", s)
435424
if err != nil {
436425
return WrapError(err)
437426
}

alicloud/data_source_alicloud_db_instance_engines.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,17 +147,14 @@ func dataSourceAlicloudDBInstanceEnginesRead(d *schema.ResourceData, meta interf
147147
var ids []string
148148
var s []map[string]interface{}
149149
var response map[string]interface{}
150-
conn, err := client.NewRdsClient()
151-
if err != nil {
152-
return WrapError(err)
153-
}
150+
var err error
154151
runtime := util.RuntimeOptions{}
155152
runtime.SetAutoretry(true)
156153
for _, engine := range engines {
157154
request["Engine"] = engine
158155
wait := incrementalWait(3*time.Second, 3*time.Second)
159156
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
160-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
157+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
161158
if err != nil {
162159
if NeedRetry(err) {
163160
wait()

alicloud/data_source_alicloud_db_instances.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -453,10 +453,7 @@ func dataSourceAlicloudDBInstancesRead(d *schema.ResourceData, meta interface{})
453453
}
454454

455455
var response map[string]interface{}
456-
conn, err := client.NewRdsClient()
457-
if err != nil {
458-
return WrapError(err)
459-
}
456+
var err error
460457

461458
var objects []interface{}
462459

@@ -485,7 +482,7 @@ func dataSourceAlicloudDBInstancesRead(d *schema.ResourceData, meta interface{})
485482
runtime.SetAutoretry(true)
486483
wait := incrementalWait(3*time.Second, 3*time.Second)
487484
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
488-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
485+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
489486
if err != nil {
490487
if NeedRetry(err) {
491488
wait()

alicloud/data_source_alicloud_db_zones.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,14 @@ func dataSourceAlicloudDBZonesRead(d *schema.ResourceData, meta interface{}) err
133133
var ids []string
134134
var s []map[string]interface{}
135135
var response map[string]interface{}
136-
conn, err := client.NewRdsClient()
137-
if err != nil {
138-
return WrapError(err)
139-
}
136+
var err error
140137
runtime := util.RuntimeOptions{}
141138
runtime.SetAutoretry(true)
142139
for _, engine := range engines {
143140
request["Engine"] = engine
144141
wait := incrementalWait(3*time.Second, 3*time.Second)
145142
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
146-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
143+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
147144
if err != nil {
148145
if NeedRetry(err) {
149146
wait()

alicloud/data_source_alicloud_instance_keywords.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"time"
66

77
"github.com/PaesslerAG/jsonpath"
8-
util "github.com/alibabacloud-go/tea-utils/service"
98
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
109
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1110
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
@@ -52,15 +51,10 @@ func dataSourceAlicloudInstanceKeywordsRead(d *schema.ResourceData, meta interfa
5251
var ids []string
5352
var keywords []string
5453
var response map[string]interface{}
55-
conn, err := client.NewRdsClient()
56-
if err != nil {
57-
return WrapError(err)
58-
}
59-
runtime := util.RuntimeOptions{}
60-
runtime.SetAutoretry(true)
54+
var err error
6155
wait := incrementalWait(3*time.Second, 3*time.Second)
6256
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
63-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
57+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
6458
if err != nil {
6559
if NeedRetry(err) {
6660
wait()

alicloud/data_source_alicloud_rds_accounts.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,11 @@ func dataSourceAlicloudRdsAccountsRead(d *schema.ResourceData, meta interface{})
134134
}
135135
status, statusOk := d.GetOk("status")
136136
var response map[string]interface{}
137-
conn, err := client.NewRdsClient()
138-
if err != nil {
139-
return WrapError(err)
140-
}
137+
var err error
141138
for {
142139
runtime := util.RuntimeOptions{}
143140
runtime.SetAutoretry(true)
144-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
141+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
145142
if err != nil {
146143
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_rds_accounts", action, AlibabaCloudSdkGoERROR)
147144
}

alicloud/data_source_alicloud_rds_backups.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,16 +183,13 @@ func dataSourceAlicloudRdsBackupsRead(d *schema.ResourceData, meta interface{})
183183
}
184184
}
185185
var response map[string]interface{}
186-
conn, err := client.NewRdsClient()
187-
if err != nil {
188-
return WrapError(err)
189-
}
186+
var err error
190187
for {
191188
runtime := util.RuntimeOptions{}
192189
runtime.SetAutoretry(true)
193190
wait := incrementalWait(3*time.Second, 3*time.Second)
194191
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
195-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
192+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
196193
if err != nil {
197194
if NeedRetry(err) {
198195
wait()

alicloud/data_source_alicloud_rds_character_set_names.go

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88

99
"github.com/PaesslerAG/jsonpath"
1010

11-
util "github.com/alibabacloud-go/tea-utils/service"
12-
1311
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
1412
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1513
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
@@ -48,15 +46,10 @@ func dataSourceAlicloudRdsRdsCharacterSetNamesRead(d *schema.ResourceData, meta
4846
}
4947
var response map[string]interface{}
5048
var names []string
51-
conn, err := client.NewRdsClient()
52-
if err != nil {
53-
return WrapError(err)
54-
}
55-
runtime := util.RuntimeOptions{}
56-
runtime.SetAutoretry(true)
49+
var err error
5750
wait := incrementalWait(3*time.Second, 3*time.Second)
5851
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
59-
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2014-08-15"), StringPointer("AK"), nil, request, &runtime)
52+
response, err = client.RpcPost("Rds", "2014-08-15", action, nil, request, true)
6053
if err != nil {
6154
if NeedRetry(err) {
6255
wait()

0 commit comments

Comments
 (0)