fix(utils): return updated ctx in SetAndLogStateFields func (#1100)
This commit is contained in:
parent
6c39e50b04
commit
459122c88e
21 changed files with 29 additions and 28 deletions
4
.github/docs/contribution-guide/resource.go
vendored
4
.github/docs/contribution-guide/resource.go
vendored
|
|
@ -211,7 +211,7 @@ func (r *barResource) Create(ctx context.Context, req resource.CreateRequest, re
|
||||||
// only in case the create bar API call is asynchronous (Make sure to include *ALL* fields which are part of the
|
// only in case the create bar API call is asynchronous (Make sure to include *ALL* fields which are part of the
|
||||||
// internal terraform resource id! And please include the comment below in your code):
|
// internal terraform resource id! And please include the comment below in your code):
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"region": region,
|
"region": region,
|
||||||
"bar_id": resp.BarId,
|
"bar_id": resp.BarId,
|
||||||
|
|
@ -335,7 +335,7 @@ func (r *barResource) ImportState(ctx context.Context, req resource.ImportStateR
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"bar_id": idParts[2],
|
"bar_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ func (r *recordSetResource) Create(ctx context.Context, req resource.CreateReque
|
||||||
ctx = core.LogResponse(ctx)
|
ctx = core.LogResponse(ctx)
|
||||||
|
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"zone_id": zoneId,
|
"zone_id": zoneId,
|
||||||
"record_set_id": *recordSetResp.Rrset.Id,
|
"record_set_id": *recordSetResp.Rrset.Id,
|
||||||
|
|
@ -399,7 +399,7 @@ func (r *recordSetResource) ImportState(ctx context.Context, req resource.Import
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"zone_id": idParts[1],
|
"zone_id": idParts[1],
|
||||||
"record_set_id": idParts[2],
|
"record_set_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@ func (r *zoneResource) Create(ctx context.Context, req resource.CreateRequest, r
|
||||||
|
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
zoneId := *createResp.Zone.Id
|
zoneId := *createResp.Zone.Id
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"zone_id": zoneId,
|
"zone_id": zoneId,
|
||||||
})
|
})
|
||||||
|
|
@ -477,7 +477,7 @@ func (r *zoneResource) ImportState(ctx context.Context, req resource.ImportState
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"zone_id": idParts[1],
|
"zone_id": idParts[1],
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -325,7 +325,7 @@ func (r *affinityGroupResource) ImportState(ctx context.Context, req resource.Im
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"affinity_group_id": idParts[2],
|
"affinity_group_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -650,7 +650,7 @@ func (r *imageResource) ImportState(ctx context.Context, req resource.ImportStat
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"image_id": idParts[2],
|
"image_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -289,7 +289,7 @@ func (r *networkAreaRegionResource) Create(ctx context.Context, req resource.Cre
|
||||||
ctx = core.LogResponse(ctx)
|
ctx = core.LogResponse(ctx)
|
||||||
|
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"organization_id": organizationId,
|
"organization_id": organizationId,
|
||||||
"network_area_id": networkAreaId,
|
"network_area_id": networkAreaId,
|
||||||
"region": region,
|
"region": region,
|
||||||
|
|
@ -482,7 +482,7 @@ func (r *networkAreaRegionResource) ImportState(ctx context.Context, req resourc
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"organization_id": idParts[0],
|
"organization_id": idParts[0],
|
||||||
"network_area_id": idParts[1],
|
"network_area_id": idParts[1],
|
||||||
"region": idParts[2],
|
"region": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -547,7 +547,7 @@ func (r *networkAreaRouteResource) ImportState(ctx context.Context, req resource
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"organization_id": idParts[0],
|
"organization_id": idParts[0],
|
||||||
"network_area_id": idParts[1],
|
"network_area_id": idParts[1],
|
||||||
"region": idParts[2],
|
"region": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,7 @@ func (r *networkInterfaceResource) ImportState(ctx context.Context, req resource
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"network_id": idParts[2],
|
"network_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -317,7 +317,7 @@ func (r *networkInterfaceAttachResource) ImportState(ctx context.Context, req re
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"server_id": idParts[2],
|
"server_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -374,7 +374,7 @@ func (r *publicIpResource) ImportState(ctx context.Context, req resource.ImportS
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"public_ip_id": idParts[2],
|
"public_ip_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,7 @@ func (r *publicIpAssociateResource) ImportState(ctx context.Context, req resourc
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"public_ip_id": idParts[2],
|
"public_ip_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -393,7 +393,7 @@ func (r *securityGroupResource) ImportState(ctx context.Context, req resource.Im
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"security_group_id": idParts[2],
|
"security_group_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -606,7 +606,7 @@ func (r *securityGroupRuleResource) ImportState(ctx context.Context, req resourc
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"security_group_id": idParts[2],
|
"security_group_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -871,7 +871,7 @@ func (r *serverResource) ImportState(ctx context.Context, req resource.ImportSta
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"server_id": idParts[2],
|
"server_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -312,7 +312,7 @@ func (r *serviceAccountAttachResource) ImportState(ctx context.Context, req reso
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"server_id": idParts[2],
|
"server_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -558,7 +558,7 @@ func (r *volumeResource) ImportState(ctx context.Context, req resource.ImportSta
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"volume_id": idParts[2],
|
"volume_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ func (r *volumeAttachResource) ImportState(ctx context.Context, req resource.Imp
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"server_id": idParts[2],
|
"server_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -274,7 +274,7 @@ func (r *keyResource) Create(ctx context.Context, req resource.CreateRequest, re
|
||||||
|
|
||||||
keyId := *createResponse.Id
|
keyId := *createResponse.Id
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"region": region,
|
"region": region,
|
||||||
"keyring_id": keyRingId,
|
"keyring_id": keyRingId,
|
||||||
|
|
@ -392,7 +392,7 @@ func (r *keyResource) ImportState(ctx context.Context, req resource.ImportStateR
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"keyring_id": idParts[2],
|
"keyring_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ func (r *keyRingResource) Create(ctx context.Context, req resource.CreateRequest
|
||||||
|
|
||||||
keyRingId := *createResponse.Id
|
keyRingId := *createResponse.Id
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"region": region,
|
"region": region,
|
||||||
"keyring_id": keyRingId,
|
"keyring_id": keyRingId,
|
||||||
|
|
@ -308,7 +308,7 @@ func (r *keyRingResource) ImportState(ctx context.Context, req resource.ImportSt
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"keyring_id": idParts[2],
|
"keyring_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,7 @@ func (r *wrappingKeyResource) Create(ctx context.Context, req resource.CreateReq
|
||||||
wrappingKeyId := *createWrappingKeyResp.Id
|
wrappingKeyId := *createWrappingKeyResp.Id
|
||||||
|
|
||||||
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
// Write id attributes to state before polling via the wait handler - just in case anything goes wrong during the wait handler
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]interface{}{
|
||||||
"project_id": projectId,
|
"project_id": projectId,
|
||||||
"region": region,
|
"region": region,
|
||||||
"keyring_id": keyRingId,
|
"keyring_id": keyRingId,
|
||||||
|
|
@ -395,7 +395,7 @@ func (r *wrappingKeyResource) ImportState(ctx context.Context, req resource.Impo
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
|
||||||
"project_id": idParts[0],
|
"project_id": idParts[0],
|
||||||
"region": idParts[1],
|
"region": idParts[1],
|
||||||
"keyring_id": idParts[2],
|
"keyring_id": idParts[2],
|
||||||
|
|
|
||||||
|
|
@ -176,9 +176,10 @@ func CheckListRemoval(ctx context.Context, configModelList, planModelList types.
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetAndLogStateFields writes the given map of key-value pairs to the state
|
// SetAndLogStateFields writes the given map of key-value pairs to the state
|
||||||
func SetAndLogStateFields(ctx context.Context, diags *diag.Diagnostics, state *tfsdk.State, values map[string]any) {
|
func SetAndLogStateFields(ctx context.Context, diags *diag.Diagnostics, state *tfsdk.State, values map[string]any) context.Context {
|
||||||
for key, val := range values {
|
for key, val := range values {
|
||||||
ctx = tflog.SetField(ctx, key, val)
|
ctx = tflog.SetField(ctx, key, val)
|
||||||
diags.Append(state.SetAttribute(ctx, path.Root(key), val)...)
|
diags.Append(state.SetAttribute(ctx, path.Root(key), val)...)
|
||||||
}
|
}
|
||||||
|
return ctx
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue