Skip to content

Commit 853ea81

Browse files
committed
chore(terraform): use a util func to build internal terraform id
1 parent 801ef60 commit 853ea81

69 files changed

Lines changed: 200 additions & 529 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/docs/contribution-guide/resource.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
1717
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core"
1818
fooUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/foo/utils"
19+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
1920

2021
"github.com/stackitcloud/stackit-sdk-go/services/foo" // Import service "foo" from the STACKIT SDK for Go
2122
// (...)
@@ -264,13 +265,7 @@ func mapFields(barResp *foo.GetBarResponse, model *Model) error {
264265
bar := barResp.Bar
265266
model.BarId = types.StringPointerValue(bar.BarId)
266267

267-
idParts := []string{
268-
model.ProjectId.ValueString(),
269-
model.BarId.ValueString(),
270-
}
271-
model.Id = types.StringValue(
272-
strings.Join(idParts, core.Separator),
273-
)
268+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), model.BarId.ValueString())
274269

275270
model.MyRequiredField = types.StringPointerValue(bar.MyRequiredField)
276271
model.MyOptionalField = types.StringPointerValue(bar.MyOptionalField)

stackit/internal/services/authorization/roleassignments/resource.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"fmt"
88
"strings"
99

10+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
11+
1012
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
1113
authorizationUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/authorization/utils"
1214

@@ -281,15 +283,7 @@ func mapListMembersResponse(resp *authorization.ListMembersResponse, model *Mode
281283
return fmt.Errorf("model input is nil")
282284
}
283285

284-
idParts := []string{
285-
model.ResourceId.ValueString(),
286-
model.Role.ValueString(),
287-
model.Subject.ValueString(),
288-
}
289-
model.Id = types.StringValue(
290-
strings.Join(idParts, core.Separator),
291-
)
292-
286+
model.Id = utils.BuildInternalTerraformId(model.ResourceId.ValueString(), model.Role.ValueString(), model.Subject.ValueString())
293287
model.ResourceId = types.StringPointerValue(resp.ResourceId)
294288

295289
for _, m := range *resp.Members {

stackit/internal/services/dns/recordset/resource.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -420,13 +420,8 @@ func mapFields(ctx context.Context, recordSetResp *dns.RecordSetResponse, model
420420

421421
model.Records = recordsTF
422422
}
423-
idParts := []string{
424-
model.ProjectId.ValueString(),
425-
model.ZoneId.ValueString(),
426-
recordSetId,
427-
}
428-
model.Id = types.StringValue(
429-
strings.Join(idParts, core.Separator),
423+
model.Id = utils.BuildInternalTerraformId(
424+
model.ProjectId.ValueString(), model.ZoneId.ValueString(), recordSetId,
430425
)
431426
model.RecordSetId = types.StringPointerValue(recordSet.Id)
432427
model.Active = types.BoolPointerValue(recordSet.Active)

stackit/internal/services/dns/zone/resource.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -487,13 +487,7 @@ func mapFields(ctx context.Context, zoneResp *dns.ZoneResponse, model *Model) er
487487
return fmt.Errorf("zone id not present")
488488
}
489489

490-
idParts := []string{
491-
model.ProjectId.ValueString(),
492-
zoneId,
493-
}
494-
model.Id = types.StringValue(
495-
strings.Join(idParts, core.Separator),
496-
)
490+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), zoneId)
497491

498492
if z.Primaries == nil {
499493
model.Primaries = types.ListNull(types.StringType)

stackit/internal/services/git/instance/resource.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"net/http"
88
"strings"
99

10+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
11+
1012
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
1113
gitUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/git/utils"
1214

@@ -306,8 +308,7 @@ func mapFields(resp *git.Instance, model *Model) error {
306308
}
307309

308310
// Build the ID by combining the project ID and instance id and assign the model's fields.
309-
idParts := []string{model.ProjectId.ValueString(), *resp.Id}
310-
model.Id = types.StringValue(strings.Join(idParts, core.Separator))
311+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), *resp.Id)
311312
model.Url = types.StringPointerValue(resp.Url)
312313
model.Name = types.StringPointerValue(resp.Name)
313314
model.InstanceId = types.StringPointerValue(resp.Id)

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"regexp"
88
"strings"
99

10+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
11+
1012
iaasUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/iaas/utils"
1113

1214
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
@@ -301,13 +303,7 @@ func mapFields(ctx context.Context, affinityGroupResp *iaas.AffinityGroup, model
301303
return fmt.Errorf("affinity group id not present")
302304
}
303305

304-
idParts := []string{
305-
model.ProjectId.ValueString(),
306-
affinityGroupId,
307-
}
308-
model.Id = types.StringValue(
309-
strings.Join(idParts, core.Separator),
310-
)
306+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), affinityGroupId)
311307

312308
if affinityGroupResp.Members != nil && len(*affinityGroupResp.Members) > 0 {
313309
members, diags := types.ListValueFrom(ctx, types.StringType, *affinityGroupResp.Members)

stackit/internal/services/iaas/image/datasource.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66
"net/http"
7-
"strings"
87

98
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
109
iaasUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/iaas/utils"
@@ -265,13 +264,7 @@ func mapDataSourceFields(ctx context.Context, imageResp *iaas.Image, model *Data
265264
return fmt.Errorf("image id not present")
266265
}
267266

268-
idParts := []string{
269-
model.ProjectId.ValueString(),
270-
imageId,
271-
}
272-
model.Id = types.StringValue(
273-
strings.Join(idParts, core.Separator),
274-
)
267+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), imageId)
275268

276269
// Map config
277270
var configModel = &configModel{}

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"strings"
1010
"time"
1111

12+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
13+
1214
iaasUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/iaas/utils"
1315

1416
"github.com/hashicorp/terraform-plugin-framework/attr"
@@ -603,13 +605,7 @@ func mapFields(ctx context.Context, imageResp *iaas.Image, model *Model) error {
603605
return fmt.Errorf("image id not present")
604606
}
605607

606-
idParts := []string{
607-
model.ProjectId.ValueString(),
608-
imageId,
609-
}
610-
model.Id = types.StringValue(
611-
strings.Join(idParts, core.Separator),
612-
)
608+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), imageId)
613609

614610
// Map config
615611
var configModel = &configModel{}

stackit/internal/services/iaas/network/datasource.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"fmt"
66
"net"
77
"net/http"
8-
"strings"
98

109
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
1110
iaasUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/iaas/utils"
@@ -245,13 +244,7 @@ func mapDataSourceFields(ctx context.Context, networkResp *iaas.Network, model *
245244
return fmt.Errorf("network id not present")
246245
}
247246

248-
idParts := []string{
249-
model.ProjectId.ValueString(),
250-
networkId,
251-
}
252-
model.Id = types.StringValue(
253-
strings.Join(idParts, core.Separator),
254-
)
247+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), networkId)
255248

256249
labels, err := iaasUtils.MapLabels(ctx, networkResp.Labels, model.Labels)
257250
if err != nil {

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -503,13 +503,7 @@ func mapFields(ctx context.Context, networkResp *iaas.Network, model *Model) err
503503
return fmt.Errorf("network id not present")
504504
}
505505

506-
idParts := []string{
507-
model.ProjectId.ValueString(),
508-
networkId,
509-
}
510-
model.Id = types.StringValue(
511-
strings.Join(idParts, core.Separator),
512-
)
506+
model.Id = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), networkId)
513507

514508
labels, err := iaasUtils.MapLabels(ctx, networkResp.Labels, model.Labels)
515509
if err != nil {

0 commit comments

Comments
 (0)