Skip to content

Commit b313ef6

Browse files
authored
chore(terraform): use a util func to build internal terraform id (#869)
1 parent 801ef60 commit b313ef6

72 files changed

Lines changed: 205 additions & 538 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/cdn/customdomain/resource.go

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

11+
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils"
12+
1113
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/conversion"
1214
cdnUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/cdn/utils"
1315

@@ -274,9 +276,7 @@ func mapCustomDomainFields(customDomain *cdn.CustomDomain, model *CustomDomainMo
274276
return fmt.Errorf("Status missing in response")
275277
}
276278

277-
id := model.ProjectId.ValueString() + core.Separator + model.DistributionId.ValueString() + core.Separator + *customDomain.Name
278-
279-
model.ID = types.StringValue(id)
279+
model.ID = utils.BuildInternalTerraformId(model.ProjectId.ValueString(), model.DistributionId.ValueString(), *customDomain.Name)
280280
model.Status = types.StringValue(string(*customDomain.Status))
281281

282282
customDomainErrors := []attr.Value{}

stackit/internal/services/cdn/distribution/resource.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -447,9 +447,7 @@ func mapFields(distribution *cdn.Distribution, model *Model) error {
447447
return fmt.Errorf("Status missing in response")
448448
}
449449

450-
id := *distribution.ProjectId + core.Separator + *distribution.Id
451-
452-
model.ID = types.StringValue(id)
450+
model.ID = utils.BuildInternalTerraformId(*distribution.ProjectId, *distribution.Id)
453451
model.DistributionId = types.StringValue(*distribution.Id)
454452
model.ProjectId = types.StringValue(*distribution.ProjectId)
455453
model.Status = types.StringValue(string(distribution.GetStatus()))

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{}

0 commit comments

Comments
 (0)