@@ -352,6 +352,7 @@ func (r *TemplateResource) Create(ctx context.Context, req resource.CreateReques
352352return
353353}
354354if idx == 0 {
355+ tflog .Trace (ctx ,"creating template" )
355356templateResp ,err = client .CreateTemplate (ctx ,orgID , codersdk.CreateTemplateRequest {
356357Name :data .Name .ValueString (),
357358DisplayName :data .DisplayName .ValueString (),
@@ -366,21 +367,31 @@ func (r *TemplateResource) Create(ctx context.Context, req resource.CreateReques
366367resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to create template: %s" ,err ))
367368return
368369}
370+ tflog .Trace (ctx ,"successfully created template" ,map [string ]any {
371+ "id" :templateResp .ID ,
372+ })
369373
374+ tflog .Trace (ctx ,"updating template ACL" )
370375err = client .UpdateTemplateACL (ctx ,templateResp .ID ,convertACLToRequest (data .ACL ))
371376if err != nil {
372377resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template ACL: %s" ,err ))
373378return
374379}
380+ tflog .Trace (ctx ,"successfully updated template ACL" )
375381}
376382if 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+ })
377387err := client .UpdateActiveTemplateVersion (ctx ,templateResp .ID , codersdk.UpdateActiveTemplateVersion {
378388ID :versionResp .ID ,
379389})
380390if err != nil {
381391resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to set active template version: %s" ,err ))
382392return
383393}
394+ tflog .Trace (ctx ,"marked template version as active" )
384395}
385396data .Versions [idx ].ID = UUIDValue (versionResp .ID )
386397data .Versions [idx ].Name = types .StringValue (versionResp .Name )
@@ -478,6 +489,7 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
478489client := r .data .Client
479490
480491if ! planState .EqualTemplateMetadata (curState ) {
492+ tflog .Trace (ctx ,"change in template metadata detected, updating." )
481493_ ,err := client .UpdateTemplateMeta (ctx ,templateID , codersdk.UpdateTemplateMeta {
482494Name :planState .Name .ValueString (),
483495DisplayName :planState .DisplayName .ValueString (),
@@ -491,11 +503,13 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
491503resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template: %s" ,err ))
492504return
493505}
506+ tflog .Trace (ctx ,"successfully updated template metadata" )
494507err = client .UpdateTemplateACL (ctx ,templateID ,convertACLToRequest (planState .ACL ))
495508if err != nil {
496509resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update template ACL: %s" ,err ))
497510return
498511}
512+ tflog .Trace (ctx ,"successfully updated template ACL" )
499513}
500514
501515for idx ,plannedVersion := range planState .Versions {
@@ -504,6 +518,7 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
504518foundVersion := curState .Versions .ByID (plannedVersion .ID )
505519// If the version is new, or if the directory hash has changed, create a new version
506520if foundVersion == nil || foundVersion .DirectoryHash != plannedVersion .DirectoryHash {
521+ tflog .Trace (ctx ,"discovered a new or modified template version" )
507522versionResp ,err := newVersion (ctx ,client ,newVersionRequest {
508523Version :& plannedVersion ,
509524OrganizationID :orgID ,
@@ -524,13 +539,18 @@ func (r *TemplateResource) Update(ctx context.Context, req resource.UpdateReques
524539return
525540}
526541if 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+ })
527546err := client .UpdateActiveTemplateVersion (ctx ,templateID , codersdk.UpdateActiveTemplateVersion {
528547ID :versionResp .ID ,
529548})
530549if err != nil {
531550resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to update active template version: %s" ,err ))
532551return
533552}
553+ tflog .Trace (ctx ,"marked template version as active" )
534554}
535555planState .Versions [idx ].ID = UUIDValue (versionResp .ID )
536556}
@@ -553,6 +573,7 @@ func (r *TemplateResource) Delete(ctx context.Context, req resource.DeleteReques
553573
554574templateID := data .ID .ValueUUID ()
555575
576+ tflog .Trace (ctx ,"deleting template" )
556577err := client .DeleteTemplate (ctx ,templateID )
557578if err != nil {
558579resp .Diagnostics .AddError ("Client Error" ,fmt .Sprintf ("Failed to delete template: %s" ,err ))
@@ -712,11 +733,14 @@ type newVersionRequest struct {
712733
713734func newVersion (ctx context.Context ,client * codersdk.Client ,req newVersionRequest ) (* codersdk.TemplateVersion ,error ) {
714735directory := req .Version .Directory .ValueString ()
736+ tflog .Trace (ctx ,"uploading directory" )
715737uploadResp ,err := uploadDirectory (ctx ,client ,slog .Make (newTFLogSink (ctx )),directory )
716738if err != nil {
717739return nil ,fmt .Errorf ("failed to upload directory: %s" ,err )
718740}
741+ tflog .Trace (ctx ,"successfully uploaded directory" )
719742// TODO(ethanndickson): Uncomment when a released `codersdk` exports template variable parsing
743+ // tflog.Trace(ctx,"discovering and parsing vars files")
720744// varFiles, err := codersdk.DiscoverVarsFiles(directory)
721745// if err != nil {
722746// 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
725749// if err != nil {
726750// return nil, fmt.Errorf("failed to parse user variable values: %s", err)
727751// }
752+ // tflog.Trace(ctx,"discovered and parsed vars files", map[string]any{
753+ // "vars": vars,
754+ // })
728755vars := make ([]codersdk.VariableValue ,0 ,len (req .Version .TerraformVariables ))
729756for _ ,variable := range req .Version .TerraformVariables {
730757vars = append (vars , codersdk.VariableValue {
@@ -743,14 +770,17 @@ func newVersion(ctx context.Context, client *codersdk.Client, req newVersionRequ
743770if req .TemplateID != nil {
744771tmplVerReq .TemplateID = * req .TemplateID
745772}
773+ tflog .Trace (ctx ,"creating template version" )
746774versionResp ,err := client .CreateTemplateVersion (ctx ,req .OrganizationID ,tmplVerReq )
747775if err != nil {
748776return nil ,fmt .Errorf ("failed to create template version: %s" ,err )
749777}
778+ tflog .Trace (ctx ,"waiting for template version import job." )
750779err = waitForJob (ctx ,client ,& versionResp )
751780if err != nil {
752781return nil ,fmt .Errorf ("failed to wait for job: %s" ,err )
753782}
783+ tflog .Trace (ctx ,"successfully created template version" )
754784return & versionResp ,nil
755785}
756786