MCPcopy Index your code
hub / github.com/perkeep/perkeep / fetchScanFunc

Method fetchScanFunc

app/scanningcabinet/datastore.go:210–233  ·  view source on GitHub ↗

returns os.ErrNotExist when scan was not found

(br blob.Ref, searchFunc func(blob.Ref) (*search.SearchResult, error))

Source from the content-addressed store, hash-verified

208
209// returns os.ErrNotExist when scan was not found
210func (h *handler) fetchScanFunc(br blob.Ref, searchFunc func(blob.Ref) (*search.SearchResult, error)) (mediaObject, error) {
211 var mo mediaObject
212 res, err := searchFunc(br)
213 if err != nil {
214 return mo, err
215 }
216 if len(res.Blobs) != 1 {
217 return mo, os.ErrNotExist
218 }
219 if res.Describe == nil || len(res.Describe.Meta) == 0 {
220 return mo, errors.New("scan permanode was not described")
221 }
222 for _, des := range res.Describe.Meta {
223 if des.Permanode == nil {
224 continue
225 }
226 scan, err := h.describeScan(des)
227 if err != nil {
228 return mo, fmt.Errorf("error describing scan %v: %v", des.BlobRef, err)
229 }
230 return scan, nil
231 }
232 return mo, os.ErrNotExist
233}
234
235// TODO(mpl): move that to client pkg, with a good API ?
236

Callers 2

fetchScanByContentMethod · 0.95
fetchScanMethod · 0.95

Calls 1

describeScanMethod · 0.95

Tested by

no test coverage detected