Skip to content

Commit

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

func (client *AliyunClient) NewOdpsClient() (*roa.Client, error) {
productCode := "maxcompute"
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.teaRoaSdkConfig
sdkConfig.SetEndpoint(endpoint)
conn, err := roa.NewClient(&sdkConfig)
if err != nil {
return nil, fmt.Errorf("unable to initialize the %s client: %#v", productCode, err)
}
return conn, nil
}

func (client *AliyunClient) NewRessharingClient() (*rpc.Client, error) {
productCode := "resourcesharing"
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) NewEciClient() (*rpc.Client, error) {
productCode := "eci"
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) NewActiontrailClient() (*rpc.Client, error) {
productCode := "actiontrail"
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) NewMseClient() (*rpc.Client, error) {
productCode := "mse"
endpoint := ""
Expand Down
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 @@ -122,16 +121,11 @@ func dataSourceAlicloudActiontrailHistoryDeliveryJobsRead(d *schema.ResourceData
}
status, statusOk := d.GetOkExists("status")
var response map[string]interface{}
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
for {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
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("2020-07-06"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/data_source_alicloud_actiontrail_trails.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 @@ -196,13 +195,8 @@ func dataSourceAlicloudActiontrailTrailsRead(d *schema.ResourceData, meta interf
}
status, statusOk := d.GetOk("status")
var response map[string]interface{}
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &runtime)
var err error
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, true)
if err != nil {
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_actiontrail_trails", action, AlibabaCloudSdkGoERROR)
}
Expand Down
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 @@ -58,10 +57,7 @@ func resourceAlicloudActiontrailGlobalEventsStorageRegionRead(d *schema.Resource
func resourceAlicloudActiontrailGlobalEventsStorageRegionUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(*connectivity.AliyunClient)

conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
update := false
request := map[string]interface{}{}
if d.HasChange("storage_region") {
Expand All @@ -73,11 +69,9 @@ func resourceAlicloudActiontrailGlobalEventsStorageRegionUpdate(d *schema.Resour

if update {
action := "UpdateGlobalEventsStorageRegion"
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(client.GetRetryTimeout(d.Timeout(schema.TimeoutUpdate)), func() *resource.RetryError {
resp, err := conn.DoRequest(StringPointer(action), nil, StringPointer("GET"), StringPointer("2020-07-06"), StringPointer("AK"), request, nil, &runtime)
resp, err := client.RpcGet("Actiontrail", "2020-07-06", action, request, nil)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
17 changes: 4 additions & 13 deletions alicloud/resource_alicloud_actiontrail_history_delivery_job.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/hashicorp/terraform-plugin-sdk/helper/resource"

"github.com/aliyun/terraform-provider-alicloud/alicloud/connectivity"
Expand Down Expand Up @@ -43,17 +42,12 @@ func resourceAlicloudActiontrailHistoryDeliveryJobCreate(d *schema.ResourceData,
var response map[string]interface{}
action := "CreateDeliveryHistoryJob"
request := make(map[string]interface{})
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
request["TrailName"] = d.Get("trail_name")
request["ClientToken"] = buildClientToken("CreateDeliveryHistoryJob")
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
wait := incrementalWait(3*time.Second, 3*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down Expand Up @@ -97,17 +91,14 @@ func resourceAlicloudActiontrailHistoryDeliveryJobDelete(d *schema.ResourceData,
client := meta.(*connectivity.AliyunClient)
action := "DeleteDeliveryHistoryJob"
var response map[string]interface{}
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
request := map[string]interface{}{
"JobId": d.Id(),
}

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("2020-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,10 @@ func testSweepActionTrailHistoryDeliveryJob(region string) error {
request["PageNumber"] = 1

var response map[string]interface{}
conn, err := client.NewActiontrailClient()
if err != nil {
log.Printf("[ERROR] %s get an error: %#v", action, err)
}
for {
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
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("2020-07-06"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, true)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down Expand Up @@ -102,7 +96,7 @@ func testSweepActionTrailHistoryDeliveryJob(region string) error {
request := map[string]interface{}{
"JobId": item["JobId"],
}
_, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
_, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
log.Printf("[ERROR] Failed to delete Delivery History Job (%s): %s", item["TrailName"].(string), err)
}
Expand Down
26 changes: 8 additions & 18 deletions alicloud/resource_alicloud_actiontrail_trail.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 @@ -105,10 +104,7 @@ func resourceAlicloudActiontrailTrailCreate(d *schema.ResourceData, meta interfa
var response map[string]interface{}
action := "CreateTrail"
request := make(map[string]interface{})
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
if v, ok := d.GetOk("event_rw"); ok {
request["EventRW"] = v
}
Expand Down Expand Up @@ -151,7 +147,7 @@ func resourceAlicloudActiontrailTrailCreate(d *schema.ResourceData, meta interfa

wait := incrementalWait(3*time.Second, 10*time.Second)
err = resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError {
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
if IsExpectedErrors(err, []string{"InsufficientBucketPolicyException"}) || NeedRetry(err) {
wait()
Expand Down Expand Up @@ -203,10 +199,7 @@ func resourceAlicloudActiontrailTrailRead(d *schema.ResourceData, meta interface
func resourceAlicloudActiontrailTrailUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(*connectivity.AliyunClient)
actiontrailService := ActiontrailService{client}
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
var response map[string]interface{}
d.Partial(true)

Expand Down Expand Up @@ -261,7 +254,7 @@ func resourceAlicloudActiontrailTrailUpdate(d *schema.ResourceData, meta interfa
action := "UpdateTrail"
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-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
if IsExpectedErrors(err, []string{"InsufficientBucketPolicyException"}) || NeedRetry(err) {
wait()
Expand Down Expand Up @@ -297,7 +290,7 @@ func resourceAlicloudActiontrailTrailUpdate(d *schema.ResourceData, meta interfa
action := "StopLogging"
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("GET"), StringPointer("2020-07-06"), StringPointer("AK"), request, nil, &util.RuntimeOptions{})
response, err = client.RpcGet("Actiontrail", "2020-07-06", action, request, nil)
if err != nil {
if IsExpectedErrors(err, []string{"InsufficientBucketPolicyException"}) || NeedRetry(err) {
wait()
Expand All @@ -323,7 +316,7 @@ func resourceAlicloudActiontrailTrailUpdate(d *schema.ResourceData, meta interfa
action := "StartLogging"
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-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
if IsExpectedErrors(err, []string{"InsufficientBucketPolicyException"}) || NeedRetry(err) {
wait()
Expand Down Expand Up @@ -352,17 +345,14 @@ func resourceAlicloudActiontrailTrailDelete(d *schema.ResourceData, meta interfa
client := meta.(*connectivity.AliyunClient)
action := "DeleteTrail"
var response map[string]interface{}
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
var err error
request := map[string]interface{}{
"Name": d.Id(),
}

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("2020-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
if NeedRetry(err) {
wait()
Expand Down
10 changes: 2 additions & 8 deletions alicloud/resource_alicloud_actiontrail_trail_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,7 @@ func testSweepActiontrailTrail(region string) error {
request := make(map[string]interface{})
var response map[string]interface{}
action := "DescribeTrails"
conn, err := client.NewActiontrailClient()
if err != nil {
return WrapError(err)
}
runtime := util.RuntimeOptions{}
runtime.SetAutoretry(true)
response, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &runtime)
response, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, true)
if err != nil {
return WrapErrorf(err, DataDefaultErrorMsg, "alicloud_actiontrail_trails", action, AlibabaCloudSdkGoERROR)
}
Expand Down Expand Up @@ -87,7 +81,7 @@ func testSweepActiontrailTrail(region string) error {
request := map[string]interface{}{
"Name": item["Name"],
}
_, err = conn.DoRequest(StringPointer(action), nil, StringPointer("POST"), StringPointer("2020-07-06"), StringPointer("AK"), nil, request, &util.RuntimeOptions{})
_, err = client.RpcPost("Actiontrail", "2020-07-06", action, nil, request, false)
if err != nil {
log.Printf("[ERROR] Failed to delete ActionTrail Trail (%s): %s", item["Name"].(string), err)
}
Expand Down
Loading

0 comments on commit 200c1da

Please sign in to comment.