Skip to content

Commit 92bdcdd

Browse files
committed
Updating archive file resource read func to create archive on every run to emulate behaviour of data source (#112)
1 parent a897efb commit 92bdcdd

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

internal/provider/resource_archive_file.go

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -197,45 +197,68 @@ func (d *archiveFileResource) Create(ctx context.Context, req resource.CreateReq
197197
return
198198
}
199199

200+
resp.Diagnostics.Append(updateModel(ctx, &model)...)
201+
202+
diags = resp.State.Set(ctx, model)
203+
resp.Diagnostics.Append(diags...)
204+
}
205+
206+
func (d *archiveFileResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
207+
var model fileModel
208+
diags := req.State.Get(ctx, &model)
209+
resp.Diagnostics.Append(diags...)
210+
if resp.Diagnostics.HasError() {
211+
return
212+
}
213+
214+
resp.Diagnostics.Append(updateModel(ctx, &model)...)
215+
216+
diags = resp.State.Set(ctx, model)
217+
resp.Diagnostics.Append(diags...)
218+
}
219+
220+
func updateModel(ctx context.Context, model *fileModel) diag.Diagnostics {
221+
var diags diag.Diagnostics
200222
outputPath := model.OutputPath.ValueString()
201223

202224
outputDirectory := path.Dir(outputPath)
203225
if outputDirectory != "" {
204226
if _, err := os.Stat(outputDirectory); err != nil {
205227
if err := os.MkdirAll(outputDirectory, 0755); err != nil {
206-
resp.Diagnostics.AddError(
228+
diags.AddError(
207229
"Output path error",
208230
fmt.Sprintf("error creating output path: %s", err),
209231
)
210-
return
232+
return diags
211233
}
212234
}
213235
}
214236

215-
if err := archive(ctx, model); err != nil {
216-
resp.Diagnostics.AddError(
237+
if err := archive(ctx, *model); err != nil {
238+
diags.AddError(
217239
"Archive creation error",
218240
fmt.Sprintf("error creating archive: %s", err),
219241
)
220-
return
242+
return diags
221243
}
222244

223245
// Generate archived file stats
224246
fi, err := os.Stat(outputPath)
225247
if err != nil {
226-
resp.Diagnostics.AddError(
248+
diags.AddError(
227249
"Archive output error",
228250
fmt.Sprintf("error reading output: %s", err),
229251
)
230-
return
252+
return diags
231253
}
232254

233255
sha1, base64sha256, md5, err := genFileShas(outputPath)
234256
if err != nil {
235-
resp.Diagnostics.AddError(
257+
diags.AddError(
236258
"Hash generation error",
237259
fmt.Sprintf("error generating hashed: %s", err),
238260
)
261+
return diags
239262
}
240263

241264
model.OutputSha = types.StringValue(sha1)
@@ -245,11 +268,7 @@ func (d *archiveFileResource) Create(ctx context.Context, req resource.CreateReq
245268

246269
model.ID = types.StringValue(sha1)
247270

248-
diags = resp.State.Set(ctx, model)
249-
resp.Diagnostics.Append(diags...)
250-
}
251-
252-
func (d *archiveFileResource) Read(_ context.Context, _ resource.ReadRequest, _ *resource.ReadResponse) {
271+
return diags
253272
}
254273

255274
func (d *archiveFileResource) Update(_ context.Context, _ resource.UpdateRequest, _ *resource.UpdateResponse) {

0 commit comments

Comments
 (0)