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

Method httpbckhead

ais/proxy.go:1525–1567  ·  view source on GitHub ↗

HEAD /v1/buckets/bucket-name

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

Source from the content-addressed store, hash-verified

1523
1524// HEAD /v1/buckets/bucket-name
1525func (p *proxy) httpbckhead(w http.ResponseWriter, r *http.Request) {
1526 apireq := apiReqAlloc(1, apc.URLPathBuckets.L, false)
1527 defer apiReqFree(apireq)
1528 if err := p.parseReq(w, r, apireq); err != nil {
1529 return
1530 }
1531 bckArgs := bckInitArgs{p: p, w: w, r: r, bck: apireq.bck, perms: apc.AceBckHEAD, dpq: apireq.dpq, query: apireq.query}
1532 bckArgs.createAIS = false
1533 bckArgs.headRemB = shouldHeadRemB()
1534 bck, err := bckArgs.initAndTry(apireq.bck.Name)
1535 if err != nil {
1536 return
1537 }
1538 if bck.IsAIS() || !bckArgs.exists {
1539 _bpropsToHdr(bck, w.Header())
1540 return
1541 }
1542 cloudProps, statusCode, err := p.headRemoteBck(bck.RemoteBck(), nil)
1543 if err != nil {
1544 // TODO: what if HEAD fails
1545 p.writeErr(w, r, err, statusCode)
1546 return
1547 }
1548
1549 if p.forwardCP(w, r, nil, "httpheadbck") {
1550 return
1551 }
1552
1553 ctx := &bmdModifier{
1554 pre: p._bckHeadPre,
1555 final: p._syncBMDFinal,
1556 msg: &apc.ActionMsg{Action: apc.ActResyncBprops},
1557 bcks: []*cluster.Bck{bck},
1558 cloudProps: cloudProps,
1559 }
1560 _, err = p.owner.bmd.modify(ctx)
1561 if err != nil {
1562 debug.AssertNoErr(err)
1563 p.writeErr(w, r, err, http.StatusNotFound)
1564 return
1565 }
1566 _bpropsToHdr(bck, w.Header())
1567}
1568
1569func _bpropsToHdr(bck *cluster.Bck, hdr http.Header) {
1570 if bck.Props == nil {

Callers 1

bucketHandlerMethod · 0.95

Calls 14

initAndTryMethod · 0.95
headRemoteBckMethod · 0.95
forwardCPMethod · 0.95
AssertNoErrFunction · 0.92
apiReqAllocFunction · 0.85
apiReqFreeFunction · 0.85
shouldHeadRemBFunction · 0.85
_bpropsToHdrFunction · 0.85
parseReqMethod · 0.80
HeaderMethod · 0.80
writeErrMethod · 0.80
modifyMethod · 0.65

Tested by

no test coverage detected