func (g *OvenCleaner) GC(log lager.Logger, cake layercake.Cake) error { log = log.Session("gc") log.Info("start") defer log.Info("finished") if exceeded := g.GraphCleanupThreshold.Exceeded(log, cake); !exceeded { log.Debug("threshold-not-exceeded") return nil } ids, err := cake.GetAllLeaves() if err != nil { return err } for _, id := range ids { if err := g.removeRecursively(log, cake, id); err != nil { return err } } return nil }