Skip to content

Commit

Permalink
resource/alicloud_quotas_template_service: Improves the invoking api …
Browse files Browse the repository at this point in the history
…method and supports refreshing credential automatically
  • Loading branch information
xiaozhu36 committed Feb 3, 2025
1 parent 25d9beb commit f406217
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 125 deletions.
98 changes: 0 additions & 98 deletions alicloud/connectivity/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -2222,104 +2222,6 @@ func (client *AliyunClient) WithRKvstoreClient(do func(*r_kvstore.Client) (inter
return do(client.r_kvstoreConn)
}

func (client *AliyunClient) NewOosClient() (*rpc.Client, error) {
productCode := "oos"
endpoint := ""
if v, ok := client.config.Endpoints.Load(productCode); !ok || v.(string) == "" {
if err := client.loadEndpoint(productCode); err != nil {
return nil, err
}
}
if v, ok := client.config.Endpoints.Load(productCode); ok && v.(string) != "" {
endpoint = v.(string)
}
if endpoint == "" {
return nil, fmt.Errorf("[ERROR] missing the product %s endpoint.", productCode)
}
sdkConfig := client.teaSdkConfig
sdkConfig.SetEndpoint(endpoint)
conn, err := rpc.NewClient(&sdkConfig)
if err != nil {
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
}
return conn, nil
}

func (client *AliyunClient) NewImsClient() (*rpc.Client, error) {
productCode := "ims"
endpoint := ""
if v, ok := client.config.Endpoints.Load(productCode); !ok || v.(string) == "" {
if err := client.loadEndpoint(productCode); err != nil {
endpoint = "ims.aliyuncs.com"
client.config.Endpoints.Store(productCode, endpoint)
log.Printf("[ERROR] loading %s endpoint got an error: %#v. Using the central endpoint %s instead.", productCode, err, endpoint)
}
}
if v, ok := client.config.Endpoints.Load(productCode); ok && v.(string) != "" {
endpoint = v.(string)
}
if endpoint == "" {
return nil, fmt.Errorf("[ERROR] missing the product %s endpoint.", productCode)
}
sdkConfig := client.teaSdkConfig
sdkConfig.SetEndpoint(endpoint)
conn, err := rpc.NewClient(&sdkConfig)
if err != nil {
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
}
return conn, nil
}
func (client *AliyunClient) NewResourcemanagerClient() (*rpc.Client, error) {
productCode := "resourcemanager"
endpoint := "resourcemanager.aliyuncs.com"
if v, ok := client.config.Endpoints.Load(productCode); !ok || v.(string) == "" {
client.config.Endpoints.Store(productCode, endpoint)
if client.skipRegionValidation {
if err := client.loadEndpoint(productCode); err != nil {
log.Printf("[ERROR] loading %s endpoint got an error: %#v. Using the central endpoint %s instead.", productCode, err, endpoint)
}
}
}
if v, ok := client.config.Endpoints.Load(productCode); ok && v.(string) != "" {
endpoint = v.(string)
}
if endpoint == "" {
return nil, fmt.Errorf("[ERROR] missing the product %s endpoint.", productCode)
}
sdkConfig := client.teaSdkConfig
sdkConfig.SetEndpoint(endpoint)
conn, err := rpc.NewClient(&sdkConfig)
if err != nil {
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
}
return conn, nil
}

func (client *AliyunClient) NewQuotasClient() (*rpc.Client, error) {
productCode := "quotas"
endpoint := ""
if v, ok := client.config.Endpoints.Load(productCode); !ok || v.(string) == "" {
if err := client.loadEndpoint(productCode); err != nil {
endpoint = "quotas.aliyuncs.com"
client.config.Endpoints.Store(productCode, endpoint)
log.Printf("[ERROR] loading %s endpoint got an error: %#v. Using the central endpoint %s instead.", productCode, err, endpoint)
}
}
if v, ok := client.config.Endpoints.Load(productCode); ok && v.(string) != "" {
endpoint = v.(string)
}
if endpoint == "" {
return nil, fmt.Errorf("[ERROR] missing the product %s endpoint.", productCode)
}
sdkConfig := client.teaSdkConfig
sdkConfig.SetEndpoint(endpoint)
conn, err := rpc.NewClient(&sdkConfig)
if err != nil {
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
}
return conn, nil
}

func (client *AliyunClient) NewQuotasClientV2() (*openapi.Client, error) {
productCode := "quotas"
endpoint := ""
Expand Down
19 changes: 4 additions & 15 deletions alicloud/resource_alicloud_quotas_template_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,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 @@ -44,18 +43,13 @@ func resourceAliCloudQuotasTemplateServiceCreate(d *schema.ResourceData, meta in
var request map[string]interface{}
var response map[string]interface{}
query := make(map[string]interface{})
conn, err := client.NewQuotasClient()
if err != nil {
return WrapError(err)
}
var err error
request = make(map[string]interface{})

request["ServiceStatus"] = d.Get("service_status")
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("2020-05-10"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("quotas", "2020-05-10", action, query, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down Expand Up @@ -105,10 +99,7 @@ func resourceAliCloudQuotasTemplateServiceUpdate(d *schema.ResourceData, meta in
var query map[string]interface{}
update := false
action := "ModifyQuotaTemplateServiceStatus"
conn, err := client.NewQuotasClient()
if err != nil {
return WrapError(err)
}
var err error
request = make(map[string]interface{})
query = make(map[string]interface{})

Expand All @@ -117,11 +108,9 @@ func resourceAliCloudQuotasTemplateServiceUpdate(d *schema.ResourceData, meta in
}
request["ServiceStatus"] = d.Get("service_status")
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("2020-05-10"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("quotas", "2020-05-10", action, query, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
14 changes: 2 additions & 12 deletions alicloud/service_alicloud_quotas_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -277,19 +277,13 @@ func (s *QuotasServiceV2) DescribeListQuotaApplicationsDetailForTemplate(id stri
var response map[string]interface{}
var query map[string]interface{}
action := "ListQuotaApplicationsDetailForTemplate"
conn, err := client.NewQuotasClient()
if err != nil {
return object, WrapError(err)
}
request = make(map[string]interface{})
query = make(map[string]interface{})
request["BatchQuotaApplicationId"] = id

runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 5*time.Second)
err = resource.Retry(1*time.Minute, func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-05-10"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("quotas", "2020-05-10", action, query, request, true)

if err != nil {
if NeedRetry(err) {
Expand Down Expand Up @@ -349,18 +343,14 @@ func (s *QuotasServiceV2) DescribeQuotasTemplateService(id string) (object map[s
err = WrapError(fmt.Errorf("invalid Resource Id %s. Expected parts' length %d, got %d", id, 0, len(parts)))
}
action := "GetQuotaTemplateServiceStatus"
conn, err := client.NewQuotasClient()
if err != nil {
return object, WrapError(err)
}
request = make(map[string]interface{})
query = make(map[string]interface{})

runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 5*time.Second)
err = resource.Retry(1*time.Minute, func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-05-10"), StringPointer("AK"), query, request, &runtime)
response, err = client.RpcPost("quotas", "2020-05-10", action, query, request, true)

if err != nil {
if NeedRetry(err) {
Expand Down

0 comments on commit f406217

Please sign in to comment.