@@ -352,6 +352,7 @@ func (r *TemplateResource) Create(ctx context.Context, req resource.CreateReques
352
352
return
353
353
}
354
354
if idx == 0 {
355
+ tflog .Trace (ctx ,"creating template" )
355
356
templateResp ,err = client .CreateTemplate (ctx ,orgID , codersdk.CreateTemplateRequest {
356
357
Name :data .Name .ValueString (),
357
358
DisplayName :data .DisplayName .ValueString (),
@@ -366,21 +367,31 @@ func (r *TemplateResource) Create(ctx context.Context, req resource.CreateReques
366
367
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to create template: %s" ,err ))
367
368
return
368
369
}
370
+ tflog .Trace (ctx ,"successfully created template" ,map [string ]any {
371
+ "id" :templateResp .ID ,
372
+ })
369
373
374
+ tflog .Trace (ctx ,"updating template ACL" )
370
375
err = client .UpdateTemplateACL (ctx ,templateResp .ID ,convertACLToRequest (data .ACL ))
371
376
if err != nil {
372
377
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template ACL: %s" ,err ))
373
378
return
374
379
}
380
+ tflog .Trace (ctx ,"successfully updated template ACL" )
375
381
}
376
382
if version .Active .ValueBool () {
383
+ tflog .Trace (ctx ,"marking template version as active" ,map [string ]any {
384
+ "version_id" :versionResp .ID ,
385
+ "template_id" :templateResp .ID ,
386
+ })
377
387
err := client .UpdateActiveTemplateVersion (ctx ,templateResp .ID , codersdk.UpdateActiveTemplateVersion {
378
388
ID :versionResp .ID ,
379
389
})
380
390
if err != nil {
381
391
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to set active template version: %s" ,err ))
382
392
return
383
393
}
394
+ tflog .Trace (ctx ,"marked template version as active" )
384
395
}
385
396
data .Versions [idx ].ID = UUIDValue (versionResp .ID )
386
397
data .Versions [idx ].Name = types .StringValue (versionResp .Name )
@@ -478,6 +489,7 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
478
489
client := r .data .Client
479
490
480
491
if ! planState .EqualTemplateMetadata (curState ) {
492
+ tflog .Trace (ctx ,"change in template metadata detected, updating." )
481
493
_ ,err := client .UpdateTemplateMeta (ctx ,templateID , codersdk.UpdateTemplateMeta {
482
494
Name :planState .Name .ValueString (),
483
495
DisplayName :planState .DisplayName .ValueString (),
@@ -491,11 +503,13 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
491
503
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template: %s" ,err ))
492
504
return
493
505
}
506
+ tflog .Trace (ctx ,"successfully updated template metadata" )
494
507
err = client .UpdateTemplateACL (ctx ,templateID ,convertACLToRequest (planState .ACL ))
495
508
if err != nil {
496
509
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template ACL: %s" ,err ))
497
510
return
498
511
}
512
+ tflog .Trace (ctx ,"successfully updated template ACL" )
499
513
}
500
514
501
515
for idx ,plannedVersion := range planState .Versions {
@@ -504,6 +518,7 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
504
518
foundVersion := curState .Versions .ByID (plannedVersion .ID )
505
519
// If the version is new, or if the directory hash has changed, create a new version
506
520
if foundVersion == nil || foundVersion .DirectoryHash != plannedVersion .DirectoryHash {
521
+ tflog .Trace (ctx ,"discovered a new or modified template version" )
507
522
versionResp ,err := newVersion (ctx ,client ,newVersionRequest {
508
523
Version :& plannedVersion ,
509
524
OrganizationID :orgID ,
@@ -524,13 +539,18 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
524
539
return
525
540
}
526
541
if plannedVersion .Active .ValueBool () {
542
+ tflog .Trace (ctx ,"marking template version as active" ,map [string ]any {
543
+ "version_id" :versionResp .ID ,
544
+ "template_id" :templateID ,
545
+ })
527
546
err := client .UpdateActiveTemplateVersion (ctx ,templateID , codersdk.UpdateActiveTemplateVersion {
528
547
ID :versionResp .ID ,
529
548
})
530
549
if err != nil {
531
550
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update active template version: %s" ,err ))
532
551
return
533
552
}
553
+ tflog .Trace (ctx ,"marked template version as active" )
534
554
}
535
555
planState .Versions [idx ].ID = UUIDValue (versionResp .ID )
536
556
}
@@ -553,6 +573,7 @@ func (r *TemplateResource) Delete(ctx context.Context, req resource.DeleteReques
553
573
554
574
templateID := data .ID .ValueUUID ()
555
575
576
+ tflog .Trace (ctx ,"deleting template" )
556
577
err := client .DeleteTemplate (ctx ,templateID )
557
578
if err != nil {
558
579
resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to delete template: %s" ,err ))
@@ -712,11 +733,14 @@ type newVersionRequest struct {
712
733
713
734
func newVersion (ctx context.Context ,client * codersdk.Client ,req newVersionRequest ) (* codersdk.TemplateVersion ,error ) {
714
735
directory := req .Version .Directory .ValueString ()
736
+ tflog .Trace (ctx ,"uploading directory" )
715
737
uploadResp ,err := uploadDirectory (ctx ,client ,slog .Make (newTFLogSink (ctx )),directory )
716
738
if err != nil {
717
739
return nil ,fmt .Errorf ("failed to upload directory: %s" ,err )
718
740
}
741
+ tflog .Trace (ctx ,"successfully uploaded directory" )
719
742
// TODO(ethanndickson): Uncomment when a released `codersdk` exports template variable parsing
743
+ // tflog.Trace(ctx,"discovering and parsing vars files")
720
744
// varFiles, err := codersdk.DiscoverVarsFiles(directory)
721
745
// if err != nil {
722
746
// return nil, fmt.Errorf("failed to discover vars files: %s", err)
@@ -725,6 +749,9 @@ func newVersion(ctx context.Context, client *codersdk.Client, req newVersionRequ
725
749
// if err != nil {
726
750
// return nil, fmt.Errorf("failed to parse user variable values: %s", err)
727
751
// }
752
+ // tflog.Trace(ctx,"discovered and parsed vars files", map[string]any{
753
+ // "vars": vars,
754
+ // })
728
755
vars := make ([]codersdk.VariableValue ,0 ,len (req .Version .TerraformVariables ))
729
756
for _ ,variable := range req .Version .TerraformVariables {
730
757
vars = append (vars , codersdk.VariableValue {
@@ -743,14 +770,17 @@ func newVersion(ctx context.Context, client *codersdk.Client, req newVersionRequ
743
770
if req .TemplateID != nil {
744
771
tmplVerReq .TemplateID = * req .TemplateID
745
772
}
773
+ tflog .Trace (ctx ,"creating template version" )
746
774
versionResp ,err := client .CreateTemplateVersion (ctx ,req .OrganizationID ,tmplVerReq )
747
775
if err != nil {
748
776
return nil ,fmt .Errorf ("failed to create template version: %s" ,err )
749
777
}
778
+ tflog .Trace (ctx ,"waiting for template version import job." )
750
779
err = waitForJob (ctx ,client ,& versionResp )
751
780
if err != nil {
752
781
return nil ,fmt .Errorf ("failed to wait for job: %s" ,err )
753
782
}
783
+ tflog .Trace (ctx ,"successfully created template version" )
754
784
return & versionResp ,nil
755
785
}
756
786