Skip to content

Commit 62962d0

Browse files
authored
fix(iaas): network_area_region default nameservers reconcile issue (#1191)
Signed-off-by: Alexander Dahmen <alexander.dahmen@inovex.de>
1 parent 397cede commit 62962d0

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

stackit/internal/services/iaas/networkarearegion/resource.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -503,12 +503,21 @@ func mapFields(ctx context.Context, networkAreaRegion *iaas.RegionalArea, model
503503
model.Id = utils.BuildInternalTerraformId(model.OrganizationId.ValueString(), model.NetworkAreaId.ValueString(), region)
504504
model.Region = types.StringValue(region)
505505

506-
model.Ipv4 = &ipv4Model{}
506+
// This mapFields() function is also used for the datasource where model.Ipv4 is computed.
507+
if model.Ipv4 == nil {
508+
model.Ipv4 = &ipv4Model{}
509+
}
510+
507511
if networkAreaRegion.Ipv4 != nil {
508512
model.Ipv4.TransferNetwork = types.StringPointerValue(networkAreaRegion.Ipv4.TransferNetwork)
509513
model.Ipv4.DefaultPrefixLength = types.Int64PointerValue(networkAreaRegion.Ipv4.DefaultPrefixLen)
510514
model.Ipv4.MaxPrefixLength = types.Int64PointerValue(networkAreaRegion.Ipv4.MaxPrefixLen)
511515
model.Ipv4.MinPrefixLength = types.Int64PointerValue(networkAreaRegion.Ipv4.MinPrefixLen)
516+
// map network ranges
517+
err := mapIpv4NetworkRanges(ctx, networkAreaRegion.Ipv4.NetworkRanges, model)
518+
if err != nil {
519+
return fmt.Errorf("mapping network ranges: %w", err)
520+
}
512521
}
513522

514523
// map default nameservers
@@ -531,12 +540,6 @@ func mapFields(ctx context.Context, networkAreaRegion *iaas.RegionalArea, model
531540
model.Ipv4.DefaultNameservers = defaultNameserversTF
532541
}
533542

534-
// map network ranges
535-
err := mapIpv4NetworkRanges(ctx, networkAreaRegion.Ipv4.NetworkRanges, model)
536-
if err != nil {
537-
return fmt.Errorf("mapping network ranges: %w", err)
538-
}
539-
540543
return nil
541544
}
542545

stackit/internal/services/iaas/networkarearegion/resource_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ func Test_mapFields(t *testing.T) {
5555
model: &Model{
5656
OrganizationId: types.StringValue(organizationId),
5757
NetworkAreaId: types.StringValue(networkAreaId),
58+
Ipv4: &ipv4Model{},
5859
},
5960
networkAreaRegion: &iaas.RegionalArea{
6061
Ipv4: &iaas.RegionalAreaIPv4{
@@ -118,6 +119,28 @@ func Test_mapFields(t *testing.T) {
118119
want: nil,
119120
wantErr: true,
120121
},
122+
{
123+
name: "model.Ipv4 is nil",
124+
args: args{
125+
model: &Model{
126+
OrganizationId: types.StringValue(organizationId),
127+
NetworkAreaId: types.StringValue(networkAreaId),
128+
Ipv4: nil,
129+
},
130+
networkAreaRegion: &iaas.RegionalArea{},
131+
region: "eu01",
132+
},
133+
want: &Model{
134+
Id: types.StringValue(fmt.Sprintf("%s,%s,eu01", organizationId, networkAreaId)),
135+
OrganizationId: types.StringValue(organizationId),
136+
NetworkAreaId: types.StringValue(networkAreaId),
137+
Region: types.StringValue("eu01"),
138+
Ipv4: &ipv4Model{
139+
DefaultNameservers: types.ListNull(types.StringType),
140+
},
141+
},
142+
wantErr: false,
143+
},
121144
{
122145
name: "network area region response is nil",
123146
args: args{

0 commit comments

Comments
 (0)