From 91098d8c89fe717739b2e3617e20019b8fbc563d Mon Sep 17 00:00:00 2001 From: akinross Date: Thu, 4 Jul 2024 09:40:52 +0200 Subject: [PATCH] [minor_change] Display id during plan for plugin framework resources where teh DN can be constructed --- gen/templates/resource.go.tmpl | 21 ++++++++++++------- internal/provider/resource_aci_annotation.go | 16 ++++++++------ .../resource_aci_endpoint_security_group.go | 20 +++++++++++------- .../provider/resource_aci_endpoint_tag_ip.go | 20 +++++++++++------- .../provider/resource_aci_endpoint_tag_mac.go | 20 +++++++++++------- ...nal_management_network_instance_profile.go | 20 +++++++++++------- ..._aci_external_management_network_subnet.go | 20 +++++++++++------- .../resource_aci_l3out_consumer_label.go | 20 +++++++++++------- .../resource_aci_l3out_node_sid_profile.go | 20 +++++++++++------- .../resource_aci_l3out_provider_label.go | 20 +++++++++++------- .../resource_aci_l3out_redistribute_policy.go | 20 +++++++++++------- .../resource_aci_netflow_monitor_policy.go | 20 +++++++++++------- .../resource_aci_netflow_record_policy.go | 20 +++++++++++------- .../resource_aci_out_of_band_contract.go | 20 +++++++++++------- .../resource_aci_pim_route_map_entry.go | 20 +++++++++++------- .../resource_aci_pim_route_map_policy.go | 20 +++++++++++------- ...ource_aci_relation_to_consumed_contract.go | 20 +++++++++++------- ...lation_to_consumed_out_of_band_contract.go | 20 +++++++++++------- ...esource_aci_relation_to_contract_master.go | 20 +++++++++++------- ...ource_aci_relation_to_imported_contract.go | 20 +++++++++++------- ...urce_aci_relation_to_intra_epg_contract.go | 20 +++++++++++------- ...source_aci_relation_to_netflow_exporter.go | 20 +++++++++++------- ...ource_aci_relation_to_provided_contract.go | 20 +++++++++++------- ...resource_aci_relation_to_taboo_contract.go | 20 +++++++++++------- ...ci_relation_to_vrf_fallback_route_group.go | 20 +++++++++++------- internal/provider/resource_aci_tag.go | 16 ++++++++------ .../resource_aci_vrf_fallback_route.go | 20 +++++++++++------- .../resource_aci_vrf_fallback_route_group.go | 20 +++++++++++------- ...rce_aci_vrf_fallback_route_group_member.go | 20 +++++++++++------- 29 files changed, 370 insertions(+), 203 deletions(-) diff --git a/gen/templates/resource.go.tmpl b/gen/templates/resource.go.tmpl index e9d647c2e..affbb1887 100644 --- a/gen/templates/resource.go.tmpl +++ b/gen/templates/resource.go.tmpl @@ -461,11 +461,12 @@ func (r *{{.ResourceClassName}}Resource) ModifyPlan(ctx context.Context, req res return } - if stateData == nil && !globalAllowExistingOnCreate {{if .HasParent }}&& !planData.ParentDn.IsUnknown() {{end}}{{range .Properties}}{{if .IsNaming}}&& !planData.{{ .Name }}.IsUnknown() {{end}}{{end}}{ - var createCheckData *{{.ResourceClassName}}ResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - set{{.ResourceClassName}}Id(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "{{.PkgName}}", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) {{if .HasParent }}&& !planData.ParentDn.IsUnknown() {{end}}{{range .Properties}}{{if .IsNaming}}&& !planData.{{ .Name }}.IsUnknown() {{end}}{{end}}{ + set{{.ResourceClassName}}Id(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "{{.PkgName}}", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } @@ -718,8 +719,8 @@ func (r *{{.ResourceClassName}}Resource) ModifyPlan(ctx context.Context, req res {{- end }} } {{ end }} - resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) {{ end }} + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -1020,7 +1021,9 @@ func (r *{{.ResourceClassName}}Resource) Create(ctx context.Context, req resourc // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *{{.ResourceClassName}}ResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - set{{.ResourceClassName}}Id(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + set{{.ResourceClassName}}Id(ctx, stateData) + } getAndSet{{.ResourceClassName}}Attributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -1040,7 +1043,9 @@ func (r *{{.ResourceClassName}}Resource) Create(ctx context.Context, req resourc return } - set{{.ResourceClassName}}Id(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + set{{.ResourceClassName}}Id(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_{{.ResourceName}} with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_annotation.go b/internal/provider/resource_aci_annotation.go index ae3d6217a..26951fe51 100644 --- a/internal/provider/resource_aci_annotation.go +++ b/internal/provider/resource_aci_annotation.go @@ -59,16 +59,18 @@ func (r *TagAnnotationResource) ModifyPlan(ctx context.Context, req resource.Mod return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Key.IsUnknown() { - var createCheckData *TagAnnotationResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setTagAnnotationId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "tagAnnotation", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Key.IsUnknown() { + setTagAnnotationId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "tagAnnotation", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -154,7 +156,9 @@ func (r *TagAnnotationResource) Create(ctx context.Context, req resource.CreateR return } - setTagAnnotationId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setTagAnnotationId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_annotation with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_endpoint_security_group.go b/internal/provider/resource_aci_endpoint_security_group.go index 4a63d4fda..aa44d5223 100644 --- a/internal/provider/resource_aci_endpoint_security_group.go +++ b/internal/provider/resource_aci_endpoint_security_group.go @@ -587,11 +587,12 @@ func (r *FvESgResource) ModifyPlan(ctx context.Context, req resource.ModifyPlanR return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *FvESgResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvESgId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvESg", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setFvESgId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvESg", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } @@ -916,7 +917,6 @@ func (r *FvESgResource) ModifyPlan(ctx context.Context, req resource.ModifyPlanR } resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) - } } @@ -1502,7 +1502,9 @@ func (r *FvESgResource) Create(ctx context.Context, req resource.CreateRequest, // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvESgResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvESgId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvESgId(ctx, stateData) + } getAndSetFvESgAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -1521,7 +1523,9 @@ func (r *FvESgResource) Create(ctx context.Context, req resource.CreateRequest, return } - setFvESgId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvESgId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_endpoint_security_group with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_endpoint_tag_ip.go b/internal/provider/resource_aci_endpoint_tag_ip.go index a2bd5458f..1f26dc1f5 100644 --- a/internal/provider/resource_aci_endpoint_tag_ip.go +++ b/internal/provider/resource_aci_endpoint_tag_ip.go @@ -80,16 +80,18 @@ func (r *FvEpIpTagResource) ModifyPlan(ctx context.Context, req resource.ModifyP return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.CtxName.IsUnknown() && !planData.Ip.IsUnknown() { - var createCheckData *FvEpIpTagResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvEpIpTagId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvEpIpTag", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.CtxName.IsUnknown() && !planData.Ip.IsUnknown() { + setFvEpIpTagId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvEpIpTag", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -254,7 +256,9 @@ func (r *FvEpIpTagResource) Create(ctx context.Context, req resource.CreateReque // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvEpIpTagResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvEpIpTagId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvEpIpTagId(ctx, stateData) + } getAndSetFvEpIpTagAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -273,7 +277,9 @@ func (r *FvEpIpTagResource) Create(ctx context.Context, req resource.CreateReque return } - setFvEpIpTagId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvEpIpTagId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_endpoint_tag_ip with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_endpoint_tag_mac.go b/internal/provider/resource_aci_endpoint_tag_mac.go index 7b8ec22ee..6a6e173dc 100644 --- a/internal/provider/resource_aci_endpoint_tag_mac.go +++ b/internal/provider/resource_aci_endpoint_tag_mac.go @@ -80,16 +80,18 @@ func (r *FvEpMacTagResource) ModifyPlan(ctx context.Context, req resource.Modify return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.BdName.IsUnknown() && !planData.Mac.IsUnknown() { - var createCheckData *FvEpMacTagResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvEpMacTagId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvEpMacTag", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.BdName.IsUnknown() && !planData.Mac.IsUnknown() { + setFvEpMacTagId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvEpMacTag", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -254,7 +256,9 @@ func (r *FvEpMacTagResource) Create(ctx context.Context, req resource.CreateRequ // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvEpMacTagResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvEpMacTagId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvEpMacTagId(ctx, stateData) + } getAndSetFvEpMacTagAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -273,7 +277,9 @@ func (r *FvEpMacTagResource) Create(ctx context.Context, req resource.CreateRequ return } - setFvEpMacTagId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvEpMacTagId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_endpoint_tag_mac with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_external_management_network_instance_profile.go b/internal/provider/resource_aci_external_management_network_instance_profile.go index dd7b2f550..99a89a201 100644 --- a/internal/provider/resource_aci_external_management_network_instance_profile.go +++ b/internal/provider/resource_aci_external_management_network_instance_profile.go @@ -87,16 +87,18 @@ func (r *MgmtInstPResource) ModifyPlan(ctx context.Context, req resource.ModifyP return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.Name.IsUnknown() { - var createCheckData *MgmtInstPResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setMgmtInstPId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtInstP", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.Name.IsUnknown() { + setMgmtInstPId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtInstP", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -286,7 +288,9 @@ func (r *MgmtInstPResource) Create(ctx context.Context, req resource.CreateReque // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *MgmtInstPResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setMgmtInstPId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setMgmtInstPId(ctx, stateData) + } getAndSetMgmtInstPAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -305,7 +309,9 @@ func (r *MgmtInstPResource) Create(ctx context.Context, req resource.CreateReque return } - setMgmtInstPId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setMgmtInstPId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_external_management_network_instance_profile with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_external_management_network_subnet.go b/internal/provider/resource_aci_external_management_network_subnet.go index ecb02f8ba..b315defee 100644 --- a/internal/provider/resource_aci_external_management_network_subnet.go +++ b/internal/provider/resource_aci_external_management_network_subnet.go @@ -78,16 +78,18 @@ func (r *MgmtSubnetResource) ModifyPlan(ctx context.Context, req resource.Modify return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Ip.IsUnknown() { - var createCheckData *MgmtSubnetResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setMgmtSubnetId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtSubnet", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Ip.IsUnknown() { + setMgmtSubnetId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtSubnet", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -244,7 +246,9 @@ func (r *MgmtSubnetResource) Create(ctx context.Context, req resource.CreateRequ // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *MgmtSubnetResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setMgmtSubnetId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setMgmtSubnetId(ctx, stateData) + } getAndSetMgmtSubnetAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -263,7 +267,9 @@ func (r *MgmtSubnetResource) Create(ctx context.Context, req resource.CreateRequ return } - setMgmtSubnetId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setMgmtSubnetId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_external_management_network_subnet with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_l3out_consumer_label.go b/internal/provider/resource_aci_l3out_consumer_label.go index d1b306589..c9a1f36ef 100644 --- a/internal/provider/resource_aci_l3out_consumer_label.go +++ b/internal/provider/resource_aci_l3out_consumer_label.go @@ -83,16 +83,18 @@ func (r *L3extConsLblResource) ModifyPlan(ctx context.Context, req resource.Modi return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *L3extConsLblResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setL3extConsLblId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "l3extConsLbl", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setL3extConsLblId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "l3extConsLbl", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -279,7 +281,9 @@ func (r *L3extConsLblResource) Create(ctx context.Context, req resource.CreateRe // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *L3extConsLblResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setL3extConsLblId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setL3extConsLblId(ctx, stateData) + } getAndSetL3extConsLblAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -298,7 +302,9 @@ func (r *L3extConsLblResource) Create(ctx context.Context, req resource.CreateRe return } - setL3extConsLblId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setL3extConsLblId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_l3out_consumer_label with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_l3out_node_sid_profile.go b/internal/provider/resource_aci_l3out_node_sid_profile.go index d3e456686..198372720 100644 --- a/internal/provider/resource_aci_l3out_node_sid_profile.go +++ b/internal/provider/resource_aci_l3out_node_sid_profile.go @@ -79,16 +79,18 @@ func (r *MplsNodeSidPResource) ModifyPlan(ctx context.Context, req resource.Modi return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Sidoffset.IsUnknown() { - var createCheckData *MplsNodeSidPResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setMplsNodeSidPId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "mplsNodeSidP", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Sidoffset.IsUnknown() { + setMplsNodeSidPId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "mplsNodeSidP", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -253,7 +255,9 @@ func (r *MplsNodeSidPResource) Create(ctx context.Context, req resource.CreateRe // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *MplsNodeSidPResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setMplsNodeSidPId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setMplsNodeSidPId(ctx, stateData) + } getAndSetMplsNodeSidPAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -272,7 +276,9 @@ func (r *MplsNodeSidPResource) Create(ctx context.Context, req resource.CreateRe return } - setMplsNodeSidPId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setMplsNodeSidPId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_l3out_node_sid_profile with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_l3out_provider_label.go b/internal/provider/resource_aci_l3out_provider_label.go index 5a56802db..e6182e23f 100644 --- a/internal/provider/resource_aci_l3out_provider_label.go +++ b/internal/provider/resource_aci_l3out_provider_label.go @@ -82,16 +82,18 @@ func (r *L3extProvLblResource) ModifyPlan(ctx context.Context, req resource.Modi return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *L3extProvLblResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setL3extProvLblId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "l3extProvLbl", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setL3extProvLblId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "l3extProvLbl", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -267,7 +269,9 @@ func (r *L3extProvLblResource) Create(ctx context.Context, req resource.CreateRe // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *L3extProvLblResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setL3extProvLblId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setL3extProvLblId(ctx, stateData) + } getAndSetL3extProvLblAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -286,7 +290,9 @@ func (r *L3extProvLblResource) Create(ctx context.Context, req resource.CreateRe return } - setL3extProvLblId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setL3extProvLblId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_l3out_provider_label with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_l3out_redistribute_policy.go b/internal/provider/resource_aci_l3out_redistribute_policy.go index 30c04bdad..c7b9d55c1 100644 --- a/internal/provider/resource_aci_l3out_redistribute_policy.go +++ b/internal/provider/resource_aci_l3out_redistribute_policy.go @@ -79,16 +79,18 @@ func (r *L3extRsRedistributePolResource) ModifyPlan(ctx context.Context, req res return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Src.IsUnknown() && !planData.TnRtctrlProfileName.IsUnknown() { - var createCheckData *L3extRsRedistributePolResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setL3extRsRedistributePolId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "l3extRsRedistributePol", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Src.IsUnknown() && !planData.TnRtctrlProfileName.IsUnknown() { + setL3extRsRedistributePolId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "l3extRsRedistributePol", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -232,7 +234,9 @@ func (r *L3extRsRedistributePolResource) Create(ctx context.Context, req resourc // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *L3extRsRedistributePolResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setL3extRsRedistributePolId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setL3extRsRedistributePolId(ctx, stateData) + } getAndSetL3extRsRedistributePolAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -251,7 +255,9 @@ func (r *L3extRsRedistributePolResource) Create(ctx context.Context, req resourc return } - setL3extRsRedistributePolId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setL3extRsRedistributePolId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_l3out_redistribute_policy with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_netflow_monitor_policy.go b/internal/provider/resource_aci_netflow_monitor_policy.go index e7ae1c44b..ec4ae4bb0 100644 --- a/internal/provider/resource_aci_netflow_monitor_policy.go +++ b/internal/provider/resource_aci_netflow_monitor_policy.go @@ -95,16 +95,18 @@ func (r *NetflowMonitorPolResource) ModifyPlan(ctx context.Context, req resource return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *NetflowMonitorPolResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setNetflowMonitorPolId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "netflowMonitorPol", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setNetflowMonitorPolId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "netflowMonitorPol", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -329,7 +331,9 @@ func (r *NetflowMonitorPolResource) Create(ctx context.Context, req resource.Cre // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *NetflowMonitorPolResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setNetflowMonitorPolId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setNetflowMonitorPolId(ctx, stateData) + } getAndSetNetflowMonitorPolAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -348,7 +352,9 @@ func (r *NetflowMonitorPolResource) Create(ctx context.Context, req resource.Cre return } - setNetflowMonitorPolId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setNetflowMonitorPolId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_netflow_monitor_policy with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_netflow_record_policy.go b/internal/provider/resource_aci_netflow_record_policy.go index f4713fb24..4527c8f1d 100644 --- a/internal/provider/resource_aci_netflow_record_policy.go +++ b/internal/provider/resource_aci_netflow_record_policy.go @@ -84,16 +84,18 @@ func (r *NetflowRecordPolResource) ModifyPlan(ctx context.Context, req resource. return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *NetflowRecordPolResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setNetflowRecordPolId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "netflowRecordPol", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setNetflowRecordPolId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "netflowRecordPol", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -290,7 +292,9 @@ func (r *NetflowRecordPolResource) Create(ctx context.Context, req resource.Crea // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *NetflowRecordPolResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setNetflowRecordPolId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setNetflowRecordPolId(ctx, stateData) + } getAndSetNetflowRecordPolAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -309,7 +313,9 @@ func (r *NetflowRecordPolResource) Create(ctx context.Context, req resource.Crea return } - setNetflowRecordPolId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setNetflowRecordPolId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_netflow_record_policy with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_out_of_band_contract.go b/internal/provider/resource_aci_out_of_band_contract.go index 04a39b7de..588a049d2 100644 --- a/internal/provider/resource_aci_out_of_band_contract.go +++ b/internal/provider/resource_aci_out_of_band_contract.go @@ -84,16 +84,18 @@ func (r *VzOOBBrCPResource) ModifyPlan(ctx context.Context, req resource.ModifyP return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.Name.IsUnknown() { - var createCheckData *VzOOBBrCPResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setVzOOBBrCPId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "vzOOBBrCP", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.Name.IsUnknown() { + setVzOOBBrCPId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "vzOOBBrCP", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -294,7 +296,9 @@ func (r *VzOOBBrCPResource) Create(ctx context.Context, req resource.CreateReque // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *VzOOBBrCPResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setVzOOBBrCPId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setVzOOBBrCPId(ctx, stateData) + } getAndSetVzOOBBrCPAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -313,7 +317,9 @@ func (r *VzOOBBrCPResource) Create(ctx context.Context, req resource.CreateReque return } - setVzOOBBrCPId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setVzOOBBrCPId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_out_of_band_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_pim_route_map_entry.go b/internal/provider/resource_aci_pim_route_map_entry.go index 956f28cbc..4338073dd 100644 --- a/internal/provider/resource_aci_pim_route_map_entry.go +++ b/internal/provider/resource_aci_pim_route_map_entry.go @@ -84,16 +84,18 @@ func (r *PimRouteMapEntryResource) ModifyPlan(ctx context.Context, req resource. return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Order.IsUnknown() { - var createCheckData *PimRouteMapEntryResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setPimRouteMapEntryId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "pimRouteMapEntry", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Order.IsUnknown() { + setPimRouteMapEntryId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "pimRouteMapEntry", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -285,7 +287,9 @@ func (r *PimRouteMapEntryResource) Create(ctx context.Context, req resource.Crea // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *PimRouteMapEntryResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setPimRouteMapEntryId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setPimRouteMapEntryId(ctx, stateData) + } getAndSetPimRouteMapEntryAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -304,7 +308,9 @@ func (r *PimRouteMapEntryResource) Create(ctx context.Context, req resource.Crea return } - setPimRouteMapEntryId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setPimRouteMapEntryId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_pim_route_map_entry with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_pim_route_map_policy.go b/internal/provider/resource_aci_pim_route_map_policy.go index ca399eace..7a5f00f17 100644 --- a/internal/provider/resource_aci_pim_route_map_policy.go +++ b/internal/provider/resource_aci_pim_route_map_policy.go @@ -79,16 +79,18 @@ func (r *PimRouteMapPolResource) ModifyPlan(ctx context.Context, req resource.Mo return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *PimRouteMapPolResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setPimRouteMapPolId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "pimRouteMapPol", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setPimRouteMapPolId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "pimRouteMapPol", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -253,7 +255,9 @@ func (r *PimRouteMapPolResource) Create(ctx context.Context, req resource.Create // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *PimRouteMapPolResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setPimRouteMapPolId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setPimRouteMapPolId(ctx, stateData) + } getAndSetPimRouteMapPolAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -272,7 +276,9 @@ func (r *PimRouteMapPolResource) Create(ctx context.Context, req resource.Create return } - setPimRouteMapPolId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setPimRouteMapPolId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_pim_route_map_policy with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_consumed_contract.go b/internal/provider/resource_aci_relation_to_consumed_contract.go index 477300086..a188e9f93 100644 --- a/internal/provider/resource_aci_relation_to_consumed_contract.go +++ b/internal/provider/resource_aci_relation_to_consumed_contract.go @@ -78,16 +78,18 @@ func (r *FvRsConsResource) ModifyPlan(ctx context.Context, req resource.ModifyPl return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { - var createCheckData *FvRsConsResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsConsId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsCons", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { + setFvRsConsId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsCons", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -231,7 +233,9 @@ func (r *FvRsConsResource) Create(ctx context.Context, req resource.CreateReques // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsConsResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsConsId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsConsId(ctx, stateData) + } getAndSetFvRsConsAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -250,7 +254,9 @@ func (r *FvRsConsResource) Create(ctx context.Context, req resource.CreateReques return } - setFvRsConsId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsConsId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_consumed_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_consumed_out_of_band_contract.go b/internal/provider/resource_aci_relation_to_consumed_out_of_band_contract.go index 916065adf..01c3d65dd 100644 --- a/internal/provider/resource_aci_relation_to_consumed_out_of_band_contract.go +++ b/internal/provider/resource_aci_relation_to_consumed_out_of_band_contract.go @@ -78,16 +78,18 @@ func (r *MgmtRsOoBConsResource) ModifyPlan(ctx context.Context, req resource.Mod return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzOOBBrCPName.IsUnknown() { - var createCheckData *MgmtRsOoBConsResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setMgmtRsOoBConsId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtRsOoBCons", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzOOBBrCPName.IsUnknown() { + setMgmtRsOoBConsId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "mgmtRsOoBCons", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -231,7 +233,9 @@ func (r *MgmtRsOoBConsResource) Create(ctx context.Context, req resource.CreateR // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *MgmtRsOoBConsResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setMgmtRsOoBConsId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setMgmtRsOoBConsId(ctx, stateData) + } getAndSetMgmtRsOoBConsAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -250,7 +254,9 @@ func (r *MgmtRsOoBConsResource) Create(ctx context.Context, req resource.CreateR return } - setMgmtRsOoBConsId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setMgmtRsOoBConsId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_consumed_out_of_band_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_contract_master.go b/internal/provider/resource_aci_relation_to_contract_master.go index e132e9ecb..b9388c685 100644 --- a/internal/provider/resource_aci_relation_to_contract_master.go +++ b/internal/provider/resource_aci_relation_to_contract_master.go @@ -75,16 +75,18 @@ func (r *FvRsSecInheritedResource) ModifyPlan(ctx context.Context, req resource. return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TDn.IsUnknown() { - var createCheckData *FvRsSecInheritedResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsSecInheritedId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsSecInherited", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TDn.IsUnknown() { + setFvRsSecInheritedId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsSecInherited", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -217,7 +219,9 @@ func (r *FvRsSecInheritedResource) Create(ctx context.Context, req resource.Crea // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsSecInheritedResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsSecInheritedId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsSecInheritedId(ctx, stateData) + } getAndSetFvRsSecInheritedAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -236,7 +240,9 @@ func (r *FvRsSecInheritedResource) Create(ctx context.Context, req resource.Crea return } - setFvRsSecInheritedId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsSecInheritedId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_contract_master with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_imported_contract.go b/internal/provider/resource_aci_relation_to_imported_contract.go index 0678a09e6..e8dba65dd 100644 --- a/internal/provider/resource_aci_relation_to_imported_contract.go +++ b/internal/provider/resource_aci_relation_to_imported_contract.go @@ -78,16 +78,18 @@ func (r *FvRsConsIfResource) ModifyPlan(ctx context.Context, req resource.Modify return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzCPIfName.IsUnknown() { - var createCheckData *FvRsConsIfResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsConsIfId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsConsIf", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzCPIfName.IsUnknown() { + setFvRsConsIfId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsConsIf", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -231,7 +233,9 @@ func (r *FvRsConsIfResource) Create(ctx context.Context, req resource.CreateRequ // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsConsIfResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsConsIfId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsConsIfId(ctx, stateData) + } getAndSetFvRsConsIfAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -250,7 +254,9 @@ func (r *FvRsConsIfResource) Create(ctx context.Context, req resource.CreateRequ return } - setFvRsConsIfId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsConsIfId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_imported_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_intra_epg_contract.go b/internal/provider/resource_aci_relation_to_intra_epg_contract.go index a3b8908f4..7573a33aa 100644 --- a/internal/provider/resource_aci_relation_to_intra_epg_contract.go +++ b/internal/provider/resource_aci_relation_to_intra_epg_contract.go @@ -75,16 +75,18 @@ func (r *FvRsIntraEpgResource) ModifyPlan(ctx context.Context, req resource.Modi return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { - var createCheckData *FvRsIntraEpgResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsIntraEpgId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsIntraEpg", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { + setFvRsIntraEpgId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsIntraEpg", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -217,7 +219,9 @@ func (r *FvRsIntraEpgResource) Create(ctx context.Context, req resource.CreateRe // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsIntraEpgResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsIntraEpgId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsIntraEpgId(ctx, stateData) + } getAndSetFvRsIntraEpgAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -236,7 +240,9 @@ func (r *FvRsIntraEpgResource) Create(ctx context.Context, req resource.CreateRe return } - setFvRsIntraEpgId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsIntraEpgId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_intra_epg_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_netflow_exporter.go b/internal/provider/resource_aci_relation_to_netflow_exporter.go index 4cf6e8cd2..80c5f12a9 100644 --- a/internal/provider/resource_aci_relation_to_netflow_exporter.go +++ b/internal/provider/resource_aci_relation_to_netflow_exporter.go @@ -75,16 +75,18 @@ func (r *NetflowRsMonitorToExporterResource) ModifyPlan(ctx context.Context, req return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnNetflowExporterPolName.IsUnknown() { - var createCheckData *NetflowRsMonitorToExporterResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setNetflowRsMonitorToExporterId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "netflowRsMonitorToExporter", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnNetflowExporterPolName.IsUnknown() { + setNetflowRsMonitorToExporterId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "netflowRsMonitorToExporter", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -217,7 +219,9 @@ func (r *NetflowRsMonitorToExporterResource) Create(ctx context.Context, req res // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *NetflowRsMonitorToExporterResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setNetflowRsMonitorToExporterId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setNetflowRsMonitorToExporterId(ctx, stateData) + } getAndSetNetflowRsMonitorToExporterAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -236,7 +240,9 @@ func (r *NetflowRsMonitorToExporterResource) Create(ctx context.Context, req res return } - setNetflowRsMonitorToExporterId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setNetflowRsMonitorToExporterId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_netflow_exporter with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_provided_contract.go b/internal/provider/resource_aci_relation_to_provided_contract.go index a15589ca8..d46b27b0d 100644 --- a/internal/provider/resource_aci_relation_to_provided_contract.go +++ b/internal/provider/resource_aci_relation_to_provided_contract.go @@ -79,16 +79,18 @@ func (r *FvRsProvResource) ModifyPlan(ctx context.Context, req resource.ModifyPl return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { - var createCheckData *FvRsProvResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsProvId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsProv", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzBrCPName.IsUnknown() { + setFvRsProvId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsProv", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -243,7 +245,9 @@ func (r *FvRsProvResource) Create(ctx context.Context, req resource.CreateReques // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsProvResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsProvId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsProvId(ctx, stateData) + } getAndSetFvRsProvAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -262,7 +266,9 @@ func (r *FvRsProvResource) Create(ctx context.Context, req resource.CreateReques return } - setFvRsProvId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsProvId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_provided_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_taboo_contract.go b/internal/provider/resource_aci_relation_to_taboo_contract.go index c4433a5d0..5ef39c7b4 100644 --- a/internal/provider/resource_aci_relation_to_taboo_contract.go +++ b/internal/provider/resource_aci_relation_to_taboo_contract.go @@ -75,16 +75,18 @@ func (r *FvRsProtByResource) ModifyPlan(ctx context.Context, req resource.Modify return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TnVzTabooName.IsUnknown() { - var createCheckData *FvRsProtByResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvRsProtById(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsProtBy", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TnVzTabooName.IsUnknown() { + setFvRsProtById(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvRsProtBy", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -217,7 +219,9 @@ func (r *FvRsProtByResource) Create(ctx context.Context, req resource.CreateRequ // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvRsProtByResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvRsProtById(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvRsProtById(ctx, stateData) + } getAndSetFvRsProtByAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -236,7 +240,9 @@ func (r *FvRsProtByResource) Create(ctx context.Context, req resource.CreateRequ return } - setFvRsProtById(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvRsProtById(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_taboo_contract with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_relation_to_vrf_fallback_route_group.go b/internal/provider/resource_aci_relation_to_vrf_fallback_route_group.go index 547144f9a..d008edd56 100644 --- a/internal/provider/resource_aci_relation_to_vrf_fallback_route_group.go +++ b/internal/provider/resource_aci_relation_to_vrf_fallback_route_group.go @@ -75,16 +75,18 @@ func (r *L3extRsOutToFBRGroupResource) ModifyPlan(ctx context.Context, req resou return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.TDn.IsUnknown() { - var createCheckData *L3extRsOutToFBRGroupResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setL3extRsOutToFBRGroupId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "l3extRsOutToFBRGroup", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.TDn.IsUnknown() { + setL3extRsOutToFBRGroupId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "l3extRsOutToFBRGroup", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -217,7 +219,9 @@ func (r *L3extRsOutToFBRGroupResource) Create(ctx context.Context, req resource. // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *L3extRsOutToFBRGroupResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setL3extRsOutToFBRGroupId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setL3extRsOutToFBRGroupId(ctx, stateData) + } getAndSetL3extRsOutToFBRGroupAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -236,7 +240,9 @@ func (r *L3extRsOutToFBRGroupResource) Create(ctx context.Context, req resource. return } - setL3extRsOutToFBRGroupId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setL3extRsOutToFBRGroupId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_relation_to_vrf_fallback_route_group with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_tag.go b/internal/provider/resource_aci_tag.go index 9566da4e5..73d0fbe8c 100644 --- a/internal/provider/resource_aci_tag.go +++ b/internal/provider/resource_aci_tag.go @@ -59,16 +59,18 @@ func (r *TagTagResource) ModifyPlan(ctx context.Context, req resource.ModifyPlan return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Key.IsUnknown() { - var createCheckData *TagTagResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setTagTagId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "tagTag", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Key.IsUnknown() { + setTagTagId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "tagTag", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -154,7 +156,9 @@ func (r *TagTagResource) Create(ctx context.Context, req resource.CreateRequest, return } - setTagTagId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setTagTagId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_tag with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_vrf_fallback_route.go b/internal/provider/resource_aci_vrf_fallback_route.go index b0872e97a..3aacb88c9 100644 --- a/internal/provider/resource_aci_vrf_fallback_route.go +++ b/internal/provider/resource_aci_vrf_fallback_route.go @@ -78,16 +78,18 @@ func (r *FvFBRouteResource) ModifyPlan(ctx context.Context, req resource.ModifyP return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.FbrPrefix.IsUnknown() { - var createCheckData *FvFBRouteResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvFBRouteId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRoute", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.FbrPrefix.IsUnknown() { + setFvFBRouteId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRoute", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -244,7 +246,9 @@ func (r *FvFBRouteResource) Create(ctx context.Context, req resource.CreateReque // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvFBRouteResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvFBRouteId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvFBRouteId(ctx, stateData) + } getAndSetFvFBRouteAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -263,7 +267,9 @@ func (r *FvFBRouteResource) Create(ctx context.Context, req resource.CreateReque return } - setFvFBRouteId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvFBRouteId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_vrf_fallback_route with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_vrf_fallback_route_group.go b/internal/provider/resource_aci_vrf_fallback_route_group.go index 8b97b195f..46355dfdc 100644 --- a/internal/provider/resource_aci_vrf_fallback_route_group.go +++ b/internal/provider/resource_aci_vrf_fallback_route_group.go @@ -99,16 +99,18 @@ func (r *FvFBRGroupResource) ModifyPlan(ctx context.Context, req resource.Modify return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { - var createCheckData *FvFBRGroupResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvFBRGroupId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRGroup", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.Name.IsUnknown() { + setFvFBRGroupId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRGroup", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -362,7 +364,9 @@ func (r *FvFBRGroupResource) Create(ctx context.Context, req resource.CreateRequ // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvFBRGroupResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvFBRGroupId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvFBRGroupId(ctx, stateData) + } getAndSetFvFBRGroupAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -381,7 +385,9 @@ func (r *FvFBRGroupResource) Create(ctx context.Context, req resource.CreateRequ return } - setFvFBRGroupId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvFBRGroupId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_vrf_fallback_route_group with id '%s'", data.Id.ValueString())) diff --git a/internal/provider/resource_aci_vrf_fallback_route_group_member.go b/internal/provider/resource_aci_vrf_fallback_route_group_member.go index 0f7472b8e..15e31d9b2 100644 --- a/internal/provider/resource_aci_vrf_fallback_route_group_member.go +++ b/internal/provider/resource_aci_vrf_fallback_route_group_member.go @@ -78,16 +78,18 @@ func (r *FvFBRMemberResource) ModifyPlan(ctx context.Context, req resource.Modif return } - if stateData == nil && !globalAllowExistingOnCreate && !planData.ParentDn.IsUnknown() && !planData.RnhAddr.IsUnknown() { - var createCheckData *FvFBRMemberResourceModel - resp.Diagnostics.Append(req.Plan.Get(ctx, &createCheckData)...) - setFvFBRMemberId(ctx, createCheckData) - CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRMember", createCheckData.Id.ValueString()) + if (planData.Id.IsUnknown() || planData.Id.IsNull()) && !planData.ParentDn.IsUnknown() && !planData.RnhAddr.IsUnknown() { + setFvFBRMemberId(ctx, planData) + } + + if stateData == nil && !globalAllowExistingOnCreate && !planData.Id.IsUnknown() && !planData.Id.IsNull() { + CheckDn(ctx, &resp.Diagnostics, r.client, "fvFBRMember", planData.Id.ValueString()) if resp.Diagnostics.HasError() { return } } + resp.Diagnostics.Append(resp.Plan.Set(ctx, &planData)...) } } @@ -244,7 +246,9 @@ func (r *FvFBRMemberResource) Create(ctx context.Context, req resource.CreateReq // On create retrieve information on current state prior to making any changes in order to determine child delete operations var stateData *FvFBRMemberResourceModel resp.Diagnostics.Append(req.Plan.Get(ctx, &stateData)...) - setFvFBRMemberId(ctx, stateData) + if stateData.Id.IsUnknown() || stateData.Id.IsNull() { + setFvFBRMemberId(ctx, stateData) + } getAndSetFvFBRMemberAttributes(ctx, &resp.Diagnostics, r.client, stateData) if !globalAllowExistingOnCreate && !stateData.Id.IsNull() { resp.Diagnostics.AddError( @@ -263,7 +267,9 @@ func (r *FvFBRMemberResource) Create(ctx context.Context, req resource.CreateReq return } - setFvFBRMemberId(ctx, data) + if data.Id.IsUnknown() || data.Id.IsNull() { + setFvFBRMemberId(ctx, data) + } tflog.Debug(ctx, fmt.Sprintf("Create of resource aci_vrf_fallback_route_group_member with id '%s'", data.Id.ValueString()))