@@ -328,6 +328,7 @@ func (fms *FileManagerService) ClearCache() {
328328// nolint:revive,cyclop
329329func (fms * FileManagerService ) Rollback (ctx context.Context , instanceID string ) error {
330330 slog .InfoContext (ctx , "Rolling back config for instance" , "instanceid" , instanceID )
331+ areFilesUpdated := false
331332 fms .filesMutex .Lock ()
332333 defer fms .filesMutex .Unlock ()
333334 for _ , file := range fms .fileActions {
@@ -339,6 +340,7 @@ func (fms *FileManagerService) Rollback(ctx context.Context, instanceID string)
339340
340341 // currentFilesOnDisk needs to be updated after rollback action is performed
341342 delete (fms .currentFilesOnDisk , file .GetFileMeta ().GetName ())
343+ areFilesUpdated = true
342344 manifestFileErr := fms .UpdateManifestFile (fms .currentFilesOnDisk )
343345 if manifestFileErr != nil {
344346 return manifestFileErr
@@ -355,6 +357,7 @@ func (fms *FileManagerService) Rollback(ctx context.Context, instanceID string)
355357 // currentFilesOnDisk needs to be updated after rollback action is performed
356358 file .GetFileMeta ().Hash = files .GenerateHash (content )
357359 fms .currentFilesOnDisk [file .GetFileMeta ().GetName ()] = file
360+ areFilesUpdated = true
358361 manifestFileErr := fms .UpdateManifestFile (fms .currentFilesOnDisk )
359362 if manifestFileErr != nil {
360363 return manifestFileErr
@@ -366,6 +369,13 @@ func (fms *FileManagerService) Rollback(ctx context.Context, instanceID string)
366369 }
367370 }
368371
372+ if areFilesUpdated {
373+ manifestFileErr := fms .UpdateManifestFile (fms .currentFilesOnDisk )
374+ if manifestFileErr != nil {
375+ return manifestFileErr
376+ }
377+ }
378+
369379 return nil
370380}
371381
@@ -532,7 +542,7 @@ func (fms *FileManagerService) UpdateCurrentFilesOnDisk(currentFiles map[string]
532542}
533543
534544func (fms * FileManagerService ) UpdateManifestFile (currentFiles map [string ]* mpi.File ) (err error ) {
535- manifestFiles := fms .ConvertToManifestFileMap (currentFiles )
545+ manifestFiles := fms .convertToManifestFileMap (currentFiles )
536546 manifestJSON , err := json .MarshalIndent (manifestFiles , "" , " " )
537547 if err != nil {
538548 slog .Error ("Unable to marshal manifest file json " , "err" , err )
@@ -581,12 +591,12 @@ func (fms *FileManagerService) getManifestFile(currentFiles map[string]*mpi.File
581591 return currentFiles
582592 }
583593
584- fileMap := fms .ConvertToFileMap (manifestFiles )
594+ fileMap := fms .convertToFileMap (manifestFiles )
585595
586596 return fileMap
587597}
588598
589- func (fms * FileManagerService ) ConvertToManifestFileMap (
599+ func (fms * FileManagerService ) convertToManifestFileMap (
590600 currentFiles map [string ]* mpi.File ,
591601) map [string ]* model.ManifestFile {
592602 manifestFileMap := make (map [string ]* model.ManifestFile )
@@ -595,14 +605,14 @@ func (fms *FileManagerService) ConvertToManifestFileMap(
595605 if file == nil || file .GetFileMeta () == nil {
596606 continue
597607 }
598- manifestFile := ConvertToManifestFile (file )
608+ manifestFile := fms . convertToManifestFile (file )
599609 manifestFileMap [name ] = manifestFile
600610 }
601611
602612 return manifestFileMap
603613}
604614
605- func ConvertToManifestFile (file * mpi.File ) * model.ManifestFile {
615+ func ( fms * FileManagerService ) convertToManifestFile (file * mpi.File ) * model.ManifestFile {
606616 return & model.ManifestFile {
607617 ManifestFileMeta : & model.ManifestFileMeta {
608618 Name : file .GetFileMeta ().GetName (),
@@ -612,17 +622,17 @@ func ConvertToManifestFile(file *mpi.File) *model.ManifestFile {
612622 }
613623}
614624
615- func (fms * FileManagerService ) ConvertToFileMap (manifestFiles map [string ]* model.ManifestFile ) map [string ]* mpi.File {
625+ func (fms * FileManagerService ) convertToFileMap (manifestFiles map [string ]* model.ManifestFile ) map [string ]* mpi.File {
616626 currentFileMap := make (map [string ]* mpi.File )
617627 for name , manifestFile := range manifestFiles {
618- currentFile := ConvertToFile (manifestFile )
628+ currentFile := fms . convertToFile (manifestFile )
619629 currentFileMap [name ] = currentFile
620630 }
621631
622632 return currentFileMap
623633}
624634
625- func ConvertToFile (manifestFile * model.ManifestFile ) * mpi.File {
635+ func ( fms * FileManagerService ) convertToFile (manifestFile * model.ManifestFile ) * mpi.File {
626636 return & mpi.File {
627637 FileMeta : & mpi.FileMeta {
628638 Name : manifestFile .ManifestFileMeta .Name ,
0 commit comments