func (ph *Handler) purgeAll(app types.App, pr purgeRequest) (purgeResult, error) { var pres = purgeResult(make(map[string]bool)) for _, uString := range pr { pres[uString] = false var u, err = url.Parse(uString) if err != nil { continue } var location = app.GetLocationFor(u.Host, u.Path) if location == nil { ph.logger.Logf( "[%p] got request to purge an object (%s) that is for a not configured location", ph, uString) continue } var oid = location.NewObjectIDForURL(u) parts, err := location.Cache.Storage.GetAvailableParts(oid) if err != nil { if !os.IsNotExist(err) { ph.logger.Errorf( "[%p] got error while gettings parts of object '%s' - %s", ph, oid, err) return nil, err } } if len(parts) == 0 { continue } if err = location.Cache.Storage.Discard(oid); err != nil { if !os.IsNotExist(err) { ph.logger.Errorf( "[%p] got error while purging object '%s' - %s", ph, oid, err) return nil, err } } location.Cache.Algorithm.Remove(parts...) pres[uString] = err == nil // err is os.ErrNotExist } return pres, nil }