@@ -3,6 +3,7 @@ package cam
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
6
7
"log"
7
8
"math/rand"
8
9
"strconv"
@@ -67,9 +68,18 @@ func datasourceTencentCloudUserInfoRead(d *schema.ResourceData, meta interface{}
67
68
68
69
logId = tccommon .GetLogId (ctx )
69
70
request := cam .NewGetUserAppIdRequest ()
71
+ response := cam .NewGetUserAppIdResponse ()
70
72
71
73
ratelimit .Check (request .GetAction ())
72
- response , err := client .UseCamClient ().GetUserAppId (request )
74
+
75
+ err := resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
76
+ result , e := client .UseCamClient ().GetUserAppId (request )
77
+ if e != nil {
78
+ return tccommon .RetryError (e )
79
+ }
80
+ response = result
81
+ return nil
82
+ })
73
83
74
84
if err != nil {
75
85
log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
@@ -80,25 +90,30 @@ func datasourceTencentCloudUserInfoRead(d *schema.ResourceData, meta interface{}
80
90
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
81
91
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
82
92
83
- if err != nil {
84
- return err
85
- }
86
-
87
- result := response .Response
88
-
89
- if result == nil {
93
+ if response == nil || response .Response == nil {
90
94
return fmt .Errorf ("get user appid error: empty response" )
91
95
}
92
96
93
- appId := strconv .FormatUint (* result .AppId , 10 )
94
- uin := * result .Uin
95
- ownerUin := * result .OwnerUin
97
+ appId := strconv .FormatUint (* response . Response .AppId , 10 )
98
+ uin := * response . Response .Uin
99
+ ownerUin := * response . Response .OwnerUin
96
100
accountInfoRequest := cam .NewDescribeSubAccountsRequest ()
101
+ accountInfoResponse := cam .NewDescribeSubAccountsResponse ()
97
102
accountInfoRequest .FilterSubAccountUin = []* uint64 {helper .Uint64 (helper .StrToUInt64 (uin ))}
98
- accountInfoResponse , err := client .UseCamClient ().DescribeSubAccounts (accountInfoRequest )
103
+
104
+ err = resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
105
+ accountInfoResult , e := client .UseCamClient ().DescribeSubAccounts (accountInfoRequest )
106
+ if e != nil {
107
+ return tccommon .RetryError (e )
108
+ }
109
+ accountInfoResponse = accountInfoResult
110
+ return nil
111
+ })
99
112
if err != nil {
113
+ log .Printf ("[CRITAL]%s read CAM users failed, reason:%s\n " , logId , err .Error ())
100
114
return err
101
115
}
116
+
102
117
subAccounts := accountInfoResponse .Response .SubAccounts
103
118
var name string
104
119
if len (subAccounts ) > 0 {
0 commit comments