Skip to content

Commit

Permalink
DmsEnterprise: Improves the invoking api method and supports refreshi…
Browse files Browse the repository at this point in the history
…ng credential automatically
  • Loading branch information
xiaozhu36 committed Feb 4, 2025
1 parent f03b83e commit 1e23c76
Show file tree
Hide file tree
Showing 17 changed files with 64 additions and 218 deletions.
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_databases.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -159,20 +158,15 @@ func dataSourceAlicloudDmsEnterpriseDatabasesRead(d *schema.ResourceData, meta i
}
}

conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
var objects []interface{}
var response map[string]interface{}

for {
action := "ListDatabases"
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
resp, err := conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
resp, err := client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_instances.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"regexp"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
Expand Down Expand Up @@ -232,14 +231,9 @@ func dataSourceAlicloudDmsEnterpriseInstancesRead(d *schema.ResourceData, meta i
instanceNameRegex = r
}
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
for {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_dms_enterprise_instances", action, AlibabaCloudSdkGoERROR)
}
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_logic_databases.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"time"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -120,20 +119,15 @@ func dataSourceAlicloudDmsEnterpriseLogicDatabasesRead(d *schema.ResourceData, m
}
}

conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
var objects []interface{}
var response map[string]interface{}

for {
action := "ListLogicDatabases"
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
resp, err := conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
resp, err := client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_proxies.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"time"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -112,15 +111,10 @@ func dataSourceAlicloudDmsEnterpriseProxiesRead(d *schema.ResourceData, meta int
}
}
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
var err error
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_proxy_accesses.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"time"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -118,18 +117,13 @@ func dataSourceAlicloudDmsEnterpriseProxyAccessesRead(d *schema.ResourceData, me
}
}

conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
var objects []interface{}
var response map[string]interface{}
action := "ListProxyAccesses"
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
resp, err := conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
resp, err := client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_enterprise_users.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"regexp"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
Expand Down Expand Up @@ -151,14 +150,9 @@ func dataSourceAlicloudDmsEnterpriseUsersRead(d *schema.ResourceData, meta inter
}
}
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
for {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_dms_enterprise_users", action, AlibabaCloudSdkGoERROR)
}
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_dms_user_tenants.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
Expand Down Expand Up @@ -85,13 +84,8 @@ func dataSourceAlicloudDmsUserTenantsRead(d *schema.ResourceData, meta interface
}
}
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
var err error
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_dms_user_tenants", action, AlibabaCloudSdkGoERROR)
}
Expand Down
28 changes: 6 additions & 22 deletions alicloud/resource_alicloud_dms_enterprise_authority_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"time"

"github.com/PaesslerAG/jsonpath"
util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -62,22 +61,17 @@ func resourceAliCloudDMSEnterpriseAuthorityTemplateCreate(d *schema.ResourceData
var request map[string]interface{}
var response map[string]interface{}
query := make(map[string]interface{})
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
request = make(map[string]interface{})
query["Tid"] = d.Get("tid")

request["Name"] = d.Get("authority_template_name")
if v, ok := d.GetOk("description"); ok {
request["Description"] = v
}
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 5*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, query, request, true)

if err != nil {
if NeedRetry(err) {
Expand Down Expand Up @@ -137,10 +131,7 @@ func resourceAliCloudDMSEnterpriseAuthorityTemplateUpdate(d *schema.ResourceData
update := false
parts := strings.Split(d.Id(), ":")
action := "UpdateAuthorityTemplate"
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
request = make(map[string]interface{})
query = make(map[string]interface{})
query["TemplateId"] = parts[1]
Expand All @@ -155,11 +146,9 @@ func resourceAliCloudDMSEnterpriseAuthorityTemplateUpdate(d *schema.ResourceData
request["Description"] = d.Get("description")

if update {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 5*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutUpdate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, query, request, true)

if err != nil {
if NeedRetry(err) {
Expand Down Expand Up @@ -187,19 +176,14 @@ func resourceAliCloudDMSEnterpriseAuthorityTemplateDelete(d *schema.ResourceData
var request map[string]interface{}
var response map[string]interface{}
query := make(map[string]interface{})
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
request = make(map[string]interface{})
query["Tid"] = parts[0]
query["TemplateId"] = parts[1]

runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 5*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, query, request, true)

if err != nil {
if NeedRetry(err) {
Expand Down
21 changes: 5 additions & 16 deletions alicloud/resource_alicloud_dms_enterprise_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"log"
"time"

util "github.com/alibabacloud-go/tea-utils/service"
"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -170,10 +169,7 @@ func resourceAlicloudDmsEnterpriseInstanceCreate(d *schema.ResourceData, meta in
var response map[string]interface{}
action := "RegisterInstance"
request := make(map[string]interface{})
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
if v, ok := d.GetOk("data_link_name"); ok {
request["DataLinkName"] = v
}
Expand Down Expand Up @@ -232,7 +228,7 @@ func resourceAlicloudDmsEnterpriseInstanceCreate(d *schema.ResourceData, meta in

wait := incrementalWait(3*time.Second, 2*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, false)
if err != nil {
if IsExpectedErrors(err, []string{"RegisterInstanceFailure"}) || NeedRetry(err) {
wait()
Expand Down Expand Up @@ -296,10 +292,7 @@ func resourceAlicloudDmsEnterpriseInstanceRead(d *schema.ResourceData, meta inte
func resourceAlicloudDmsEnterpriseInstanceUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(*connectivity.AliyunClient)
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
var err error
parts, err := ParseResourceId(d.Id(), 2)
if err != nil {
return WrapError(err)
Expand Down Expand Up @@ -398,7 +391,7 @@ func resourceAlicloudDmsEnterpriseInstanceUpdate(d *schema.ResourceData, meta in
action := "UpdateInstance"
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutUpdate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand All @@ -423,10 +416,6 @@ func resourceAlicloudDmsEnterpriseInstanceDelete(d *schema.ResourceData, meta in
}
action := "DeleteInstance"
var response map[string]interface{}
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
request := map[string]interface{}{
"Host": parts[0],
"Port": parts[1],
Expand All @@ -440,7 +429,7 @@ func resourceAlicloudDmsEnterpriseInstanceDelete(d *schema.ResourceData, meta in
}
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/resource_alicloud_dms_enterprise_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,8 @@ func testSweepDMSEnterpriseInstances(region string) error {
}
var response map[string]interface{}
action := "ListInstances"
conn, err := client.NewDmsenterpriseClient()
if err != nil {
return WrapError(err)
}
for {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, true)
if err != nil {
log.Printf("[ERROR] Failed to list DMS Enterprise Instance : %s", err)
return nil
Expand Down Expand Up @@ -94,7 +88,7 @@ func testSweepDMSEnterpriseInstances(region string) error {
"Host": item["Host"],
"Port": item["Port"],
}
_, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2018-11-01"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
_, err = client.RpcPost("dms-enterprise", "2018-11-01", action, nil, request, false)
if err != nil {
log.Printf("[ERROR] Failed to delete DMS Enterprise Instance (%s (%s)): %s", item["InstanceAlias"].(string), id, err)
continue
Expand Down
Loading

0 comments on commit 1e23c76

Please sign in to comment.