MCPcopy
hub / github.com/kopia/kopia / prepareAndWritePackInternal

Method prepareAndWritePackInternal

repo/content/content_manager.go:559–580  ·  view source on GitHub ↗
(ctx context.Context, pp *pendingPackInfo, onUpload func(int64))

Source from the content-addressed store, hash-verified

557}
558
559func (sm *SharedManager) prepareAndWritePackInternal(ctx context.Context, pp *pendingPackInfo, onUpload func(int64)) (index.Builder, error) {
560 ctx = contentlog.WithParams(ctx,
561 logparam.String("span:writePack", string(pp.packBlobID)))
562
563 mp, mperr := sm.format.GetMutableParameters(ctx)
564 if mperr != nil {
565 return nil, errors.Wrap(mperr, "mutable parameters")
566 }
567
568 packFileIndex, err := sm.preparePackDataContent(ctx, mp, pp)
569 if err != nil {
570 return nil, errors.Wrap(err, "error preparing data content")
571 }
572
573 if pp.currentPackData.Length() > 0 {
574 if err := sm.writePackFileNotLocked(ctx, pp.packBlobID, pp.currentPackData.Bytes(), onUpload); err != nil {
575 return nil, errors.Wrapf(err, "can't save pack data blob %v", pp.packBlobID)
576 }
577 }
578
579 return packFileIndex, nil
580}
581
582func removePendingPack(slice []*pendingPackInfo, pp *pendingPackInfo) []*pendingPackInfo {
583 result := slice[:0]

Calls 7

WithParamsFunction · 0.92
StringFunction · 0.92
GetMutableParametersMethod · 0.65
LengthMethod · 0.65
BytesMethod · 0.45

Tested by

no test coverage detected