Exemplo n.º 1
0
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
}