Skip to content

Commit 0b4206f

Browse files
committed
add
1 parent ab737da commit 0b4206f

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

tencentcloud/services/privatedns/resource_tc_private_dns_record.go

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ func resourceTencentCloudDPrivateDnsRecordCreate(d *schema.ResourceData, meta in
7272

7373
var (
7474
logId = tccommon.GetLogId(tccommon.ContextNil)
75+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
76+
service = PrivateDnsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
7577
request = privatedns.NewCreatePrivateZoneRecordRequest()
7678
response = privatedns.NewCreatePrivateZoneRecordResponse()
7779
zoneId string
@@ -114,8 +116,8 @@ func resourceTencentCloudDPrivateDnsRecordCreate(d *schema.ResourceData, meta in
114116
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
115117
}
116118

117-
if result == nil {
118-
e = fmt.Errorf("create PrivateDns record failed")
119+
if result == nil || result.Response == nil || result.Response.RecordId == nil {
120+
e = fmt.Errorf("create PrivateDns record failed, Response is nil.")
119121
return resource.NonRetryableError(e)
120122
}
121123

@@ -129,6 +131,37 @@ func resourceTencentCloudDPrivateDnsRecordCreate(d *schema.ResourceData, meta in
129131
}
130132

131133
recordId := *response.Response.RecordId
134+
135+
// wait
136+
err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
137+
records, e := service.DescribePrivateDnsRecordByFilter(ctx, zoneId, nil)
138+
if e != nil {
139+
return tccommon.RetryError(e)
140+
}
141+
142+
if len(records) < 1 {
143+
return resource.NonRetryableError(fmt.Errorf("[WARN]%s resource `PrivateDnsRecord` [%s] not found, please check if it has been deleted.\n", logId, recordId))
144+
}
145+
146+
var record *privatedns.PrivateZoneRecord
147+
for _, item := range records {
148+
if *item.RecordId == recordId {
149+
record = item
150+
}
151+
}
152+
153+
if record != nil {
154+
return nil
155+
}
156+
157+
return resource.RetryableError(fmt.Errorf("[WARN]%s resource `PrivateDnsRecord` [%s] wait creating...\n", logId, recordId))
158+
})
159+
160+
if err != nil {
161+
log.Printf("[CRITAL]%s describe PrivateDns record failed, reason:%s\n", logId, err.Error())
162+
return err
163+
}
164+
132165
d.SetId(strings.Join([]string{zoneId, recordId}, tccommon.FILED_SP))
133166

134167
return resourceTencentCloudDPrivateDnsRecordRead(d, meta)

0 commit comments

Comments
 (0)