MCPcopy
hub / github.com/NVIDIA/aistore / httpbckget

Method httpbckget

ais/target.go:543–629  ·  view source on GitHub ↗

httpbck* handlers // GET /v1/buckets[/bucket-name]

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

541
542// GET /v1/buckets[/bucket-name]
543func (t *target) httpbckget(w http.ResponseWriter, r *http.Request) {
544 var bckName string
545 apiItems, err := t.checkRESTItems(w, r, 0, true, apc.URLPathBuckets.L)
546 if err != nil {
547 return
548 }
549 msg, err := t.readAisMsg(w, r)
550 if err != nil {
551 return
552 }
553 t.ensureLatestBMD(msg, r)
554
555 if len(apiItems) > 0 {
556 bckName = apiItems[0]
557 }
558 switch msg.Action {
559 case apc.ActList:
560 dpq := dpqAlloc()
561 if err := dpq.fromRawQ(r.URL.RawQuery); err != nil {
562 dpqFree(dpq)
563 t.writeErr(w, r, err)
564 return
565 }
566 qbck, err := newQbckFromQ(bckName, nil, dpq)
567 dpqFree(dpq)
568 if err != nil {
569 t.writeErr(w, r, err)
570 return
571 }
572 // list buckets if `qbck` is indeed a bucket-query
573 if !qbck.IsBucket() {
574 t.listBuckets(w, r, qbck)
575 return
576 }
577 bck := cluster.CloneBck((*cmn.Bck)(qbck))
578 if err := bck.Init(t.owner.bmd); err != nil {
579 if cmn.IsErrRemoteBckNotFound(err) {
580 t.BMDVersionFixup(r)
581 err = bck.Init(t.owner.bmd)
582 }
583 if err != nil {
584 t.writeErr(w, r, err)
585 return
586 }
587 }
588 begin := mono.NanoTime()
589 if ok := t.listObjects(w, r, bck, msg); !ok {
590 return
591 }
592 delta := mono.SinceNano(begin)
593 t.statsT.AddMany(
594 cos.NamedVal64{Name: stats.ListCount, Value: 1},
595 cos.NamedVal64{Name: stats.ListLatency, Value: delta},
596 )
597 case apc.ActSummaryBck:
598 var (
599 bsumMsg apc.BckSummMsg
600 query = r.URL.Query()

Callers 1

bucketHandlerMethod · 0.95

Calls 15

ensureLatestBMDMethod · 0.95
listBucketsMethod · 0.95
BMDVersionFixupMethod · 0.95
listObjectsMethod · 0.95
bsummMethod · 0.95
CloneBckFunction · 0.92
IsErrRemoteBckNotFoundFunction · 0.92
NanoTimeFunction · 0.92
SinceNanoFunction · 0.92
MorphMarshalFunction · 0.92
dpqAllocFunction · 0.85
dpqFreeFunction · 0.85

Tested by

no test coverage detected