@@ -828,20 +828,22 @@ func (am *MultitenantAlertmanager) setConfig(cfg alertspb.AlertConfigDesc) error
828
828
var userTemplateDir = filepath .Join (am .getTenantDirectory (cfg .User ), templatesDir )
829
829
var pathsToRemove = make (map [string ]struct {})
830
830
831
+ // List existing files to keep track the ones to be removed
831
832
if oldTemplateFiles , err := ioutil .ReadDir (userTemplateDir ); err == nil {
832
833
for _ , file := range oldTemplateFiles {
833
- filesToRemove [ file . Name ()] = filepath .Join (userTemplateDir , file .Name ())
834
+ pathsToRemove [ filepath .Join (userTemplateDir , file .Name ())] = struct {}{}
834
835
}
835
836
}
836
837
837
838
for _ , tmpl := range cfg .Templates {
838
- templateFilepath , err := safeTemplateFilepath (userTemplateDir , tmpl .Filename )
839
+ templateFilePath , err := safeTemplateFilepath (userTemplateDir , tmpl .Filename )
839
840
if err != nil {
840
841
return err
841
842
}
842
843
844
+ // Removing from pathsToRemove map the files that still exists in the config
843
845
delete (pathsToRemove , templateFilePath )
844
- hasChanged , err := storeTemplateFile (templateFilepath , tmpl .Body )
846
+ hasChanged , err := storeTemplateFile (templateFilePath , tmpl .Body )
845
847
if err != nil {
846
848
return err
847
849
}
@@ -851,7 +853,7 @@ func (am *MultitenantAlertmanager) setConfig(cfg alertspb.AlertConfigDesc) error
851
853
}
852
854
}
853
855
854
- for _ , pathToRemove := range pathsToRemove {
856
+ for pathToRemove := range pathsToRemove {
855
857
err := os .Remove (pathToRemove )
856
858
if err != nil {
857
859
level .Warn (am .logger ).Log ("msg" , "failed to remove file" , "file" , pathToRemove , "err" , err )
0 commit comments