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

Method setExtractCreator

dsort/manager.go:449–494  ·  view source on GitHub ↗

setExtractCreator sets what type of file extraction and creation is used based on the RequestSpec.

()

Source from the content-addressed store, hash-verified

447
448// setExtractCreator sets what type of file extraction and creation is used based on the RequestSpec.
449func (m *Manager) setExtractCreator() (err error) {
450 var keyExtractor extract.KeyExtractor
451
452 switch m.rs.Algorithm.Kind {
453 case SortKindContent:
454 keyExtractor, err = extract.NewContentKeyExtractor(m.rs.Algorithm.FormatType, m.rs.Algorithm.Extension)
455 case SortKindMD5:
456 keyExtractor, err = extract.NewMD5KeyExtractor()
457 default:
458 keyExtractor, err = extract.NewNameKeyExtractor()
459 }
460
461 if err != nil {
462 return errors.WithStack(err)
463 }
464
465 onDuplicatedRecords := func(msg string) error {
466 return m.react(m.rs.DuplicatedRecords, msg)
467 }
468
469 var extractCreator extract.Creator
470 switch m.rs.Extension {
471 case cos.ExtTar:
472 extractCreator = extract.NewTarExtractCreator(m.ctx.t)
473 case cos.ExtTarTgz, cos.ExtTgz:
474 extractCreator = extract.NewTargzExtractCreator(m.ctx.t)
475 case cos.ExtZip:
476 extractCreator = extract.NewZipExtractCreator(m.ctx.t)
477 default:
478 cos.Assertf(false, "unknown extension %s", m.rs.Extension)
479 }
480
481 if !m.rs.DryRun {
482 m.extractCreator = extractCreator
483 } else {
484 m.extractCreator = extract.NopExtractCreator(extractCreator)
485 }
486
487 m.recManager = extract.NewRecordManager(
488 m.ctx.t, m.rs.Bck,
489 m.rs.Extension, m.extractCreator,
490 keyExtractor, onDuplicatedRecords,
491 )
492
493 return nil
494}
495
496// updateFinishedAck marks daemonID as finished. If all daemons ack then the
497// finalCleanup is dispatched in separate goroutine.

Callers 1

initMethod · 0.95

Calls 10

reactMethod · 0.95
NewContentKeyExtractorFunction · 0.92
NewMD5KeyExtractorFunction · 0.92
NewNameKeyExtractorFunction · 0.92
NewTarExtractCreatorFunction · 0.92
NewTargzExtractCreatorFunction · 0.92
NewZipExtractCreatorFunction · 0.92
AssertfFunction · 0.92
NopExtractCreatorFunction · 0.92
NewRecordManagerFunction · 0.92

Tested by

no test coverage detected