@@ -887,12 +887,18 @@ func (am *MultitenantAlertmanager) setConfig(cfg alertspb.AlertConfigDesc) error
887887 // List existing files to keep track the ones to be removed
888888 if oldTemplateFiles , err := os .ReadDir (userTemplateDir ); err == nil {
889889 for _ , file := range oldTemplateFiles {
890- pathsToRemove [filepath .Join (userTemplateDir , file .Name ())] = struct {}{}
890+ pathToRemove , err := safeTemplateFilepath (userTemplateDir , file .Name ())
891+ if err != nil {
892+ return err
893+ }
894+ level .Debug (am .logger ).Log ("msg" , "discovered existing file" , "oldTemplateFile" , file .Name (), "pathToRemove" , pathToRemove , "user" , cfg .User )
895+ pathsToRemove [pathToRemove ] = struct {}{}
891896 }
892897 }
893898
894899 for _ , tmpl := range cfg .Templates {
895900 templateFilePath , err := safeTemplateFilepath (userTemplateDir , tmpl .Filename )
901+ level .Debug (am .logger ).Log ("msg" , "skipping template file since it's still used by the config" , "file" , templateFilePath , "user" , cfg .User )
896902 if err != nil {
897903 return err
898904 }
@@ -906,10 +912,12 @@ func (am *MultitenantAlertmanager) setConfig(cfg alertspb.AlertConfigDesc) error
906912
907913 if hasChanged {
908914 hasTemplateChanges = true
915+ level .Debug (am .logger ).Log ("msg" , "template file changed" , "file" , templateFilePath , "body" , tmpl .Body , "user" , cfg .User )
909916 }
910917 }
911918
912919 for pathToRemove := range pathsToRemove {
920+ level .Debug (am .logger ).Log ("msg" , "removing stale template file" , "file" , pathToRemove , "user" , cfg .User )
913921 err := os .Remove (pathToRemove )
914922 if err != nil {
915923 level .Warn (am .logger ).Log ("msg" , "failed to remove file" , "file" , pathToRemove , "err" , err )
0 commit comments