@@ -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
0 commit comments