Skip to content

Commit 510ab6a

Browse files
committed
review comments 2
1 parent 452ec0c commit 510ab6a

File tree

1 file changed

+11
-22
lines changed

1 file changed

+11
-22
lines changed

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

+11-22
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ func (r *distributionResource) Schema(_ context.Context, _ resource.SchemaReques
164164
Optional: false,
165165
PlanModifiers: []planmodifier.String{
166166
stringplanmodifier.RequiresReplace(),
167-
stringplanmodifier.UseStateForUnknown(),
168167
},
169168
},
170169
"status": schema.StringAttribute{
@@ -290,24 +289,16 @@ func (r *distributionResource) Read(ctx context.Context, req resource.ReadReques
290289
if resp.Diagnostics.HasError() {
291290
return
292291
}
293-
if model.ProjectId.IsUnknown() || model.ProjectId.IsNull() {
294-
core.LogAndAddError(ctx, &resp.Diagnostics, "Update CDN distribution", "No project_id in plan")
295-
return
296-
}
297-
projectId := model.ProjectId.ValueString()
298292

299-
if model.DistributionId.IsUnknown() || model.DistributionId.IsNull() {
300-
core.LogAndAddError(ctx, &resp.Diagnostics, "Update CDN distribution", "No distribution_id in plan")
301-
return
302-
}
293+
projectId := model.ProjectId.ValueString()
303294
distributionId := model.DistributionId.ValueString()
304295
ctx = tflog.SetField(ctx, "project_id", projectId)
305296
ctx = tflog.SetField(ctx, "distribution_id", distributionId)
306297

307298
cdnResp, err := r.client.GetDistribution(ctx, projectId, distributionId).Execute()
308299
if err != nil {
309300
var oapiErr *oapierror.GenericOpenAPIError
310-
// n.b. err is caught here if of type **oapierror.GenericOpenAPIError, which it is
301+
// n.b. err is caught here if of type *oapierror.GenericOpenAPIError, which the stackit SDK client returns
311302
if errors.As(err, &oapiErr) {
312303
if oapiErr.StatusCode == http.StatusNotFound {
313304
resp.State.RemoveResource(ctx)
@@ -338,16 +329,8 @@ func (r *distributionResource) Update(ctx context.Context, req resource.UpdateRe
338329
if resp.Diagnostics.HasError() {
339330
return
340331
}
341-
if model.ProjectId.IsUnknown() || model.ProjectId.IsNull() {
342-
core.LogAndAddError(ctx, &resp.Diagnostics, "Update CDN distribution", "No project_id in plan")
343-
return
344-
}
345-
projectId := model.ProjectId.ValueString()
346332

347-
if model.DistributionId.IsUnknown() || model.DistributionId.IsNull() {
348-
core.LogAndAddError(ctx, &resp.Diagnostics, "Update CDN distribution", "No distribution_id in plan")
349-
return
350-
}
333+
projectId := model.ProjectId.ValueString()
351334
distributionId := model.DistributionId.ValueString()
352335
ctx = tflog.SetField(ctx, "project_id", projectId)
353336
ctx = tflog.SetField(ctx, "distribution_id", distributionId)
@@ -487,9 +470,9 @@ func mapFields(distribution *cdn.Distribution, model *Model) error {
487470
return core.DiagsToError(diags)
488471
}
489472
originRequestHeaders := types.MapNull(types.StringType)
490-
if distribution.Config.Backend.HttpBackend.OriginRequestHeaders != nil && len(*distribution.Config.Backend.HttpBackend.OriginRequestHeaders) > 0 {
473+
if origHeaders := distribution.Config.Backend.HttpBackend.OriginRequestHeaders; origHeaders != nil && len(*origHeaders) > 0 {
491474
headers := map[string]attr.Value{}
492-
for k, v := range *distribution.Config.Backend.HttpBackend.OriginRequestHeaders {
475+
for k, v := range *origHeaders {
493476
headers[k] = types.StringValue(v)
494477
}
495478
mappedHeaders, diags := types.MapValue(types.StringType, headers)
@@ -522,13 +505,19 @@ func mapFields(distribution *cdn.Distribution, model *Model) error {
522505
domainErrors := []attr.Value{}
523506
if d.Errors != nil {
524507
for _, e := range *d.Errors {
508+
if e.En == nil {
509+
return fmt.Errorf("error description missing")
510+
}
525511
domainErrors = append(domainErrors, types.StringValue(*e.En))
526512
}
527513
}
528514
modelDomainErrors, diags := types.ListValue(types.StringType, domainErrors)
529515
if diags.HasError() {
530516
return core.DiagsToError(diags)
531517
}
518+
if d.Name == nil || d.Status == nil || d.Type == nil {
519+
return fmt.Errorf("domain entry incomplete")
520+
}
532521
modelDomain, diags := types.ObjectValue(domainTypes, map[string]attr.Value{
533522
"name": types.StringValue(*d.Name),
534523
"status": types.StringValue(string(*d.Status)),

0 commit comments

Comments
 (0)