From 7c52bf7f86fee24c0d5d43b9654f0faf7108b4c7 Mon Sep 17 00:00:00 2001 From: Rajashree Mandaogane Date: Sun, 23 Oct 2016 13:12:20 -0700 Subject: [PATCH] Remove deleted catalogs from disk (#84) Use RemoveAll Log error --- manager/catalog_manager.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/manager/catalog_manager.go b/manager/catalog_manager.go index 97a6738..f298ed4 100644 --- a/manager/catalog_manager.go +++ b/manager/catalog_manager.go @@ -7,6 +7,7 @@ import ( "io/ioutil" "os" "os/signal" + "path" "strings" "syscall" "time" @@ -148,6 +149,29 @@ func SetEnv() { if *validate { ValidationMode = true + } else { + //Code to delete non-embedded catalogs + setCatalogDirectories := make(map[string]bool) + for _, cat := range catalogURL { + catalog := strings.Split(cat, "=")[0] + setCatalogDirectories[catalog] = true + } + //get all subdirs under catalogRoot, if they are not part of catalogDirectories then rm -rf + clonedCatalogDirectories, _ := ioutil.ReadDir(CatalogRootDir) + log.Debugf("Removing deleted catalogs\n") + for _, dir := range clonedCatalogDirectories { + clonedCatalog := dir.Name() + if !setCatalogDirectories[clonedCatalog] { + noPurge := path.Join(CatalogRootDir, clonedCatalog, ".nopurge") + _, err := os.Stat(noPurge) + if os.IsNotExist(err) { + err = os.RemoveAll(path.Join(CatalogRootDir, clonedCatalog)) + if err != nil { + log.Errorf("Error %v removing directory %s", err, clonedCatalog) + } + } + } + } } if *logFile != "" {