MCPcopy Create free account
hub / github.com/docker/cli / importTar

Function importTar

cli/context/store/store.go:384–432  ·  view source on GitHub ↗
(name string, s Writer, reader io.Reader)

Source from the content-addressed store, hash-verified

382}
383
384func importTar(name string, s Writer, reader io.Reader) error {
385 tr := tar.NewReader(&limitedReader{R: reader, N: maxAllowedFileSizeToImport})
386 tlsData := ContextTLSData{
387 Endpoints: map[string]EndpointTLSData{},
388 }
389 var importedMetaFile bool
390 for {
391 hdr, err := tr.Next()
392 if err == io.EOF {
393 break
394 }
395 if err != nil {
396 return err
397 }
398 if hdr.Typeflag != tar.TypeReg {
399 // skip this entry, only taking files into account
400 continue
401 }
402 if err := isValidFilePath(hdr.Name); err != nil {
403 return fmt.Errorf("%s: %w", hdr.Name, err)
404 }
405 if hdr.Name == metaFile {
406 data, err := io.ReadAll(tr)
407 if err != nil {
408 return err
409 }
410 meta, err := parseMetadata(data, name)
411 if err != nil {
412 return err
413 }
414 if err := s.CreateOrUpdate(meta); err != nil {
415 return err
416 }
417 importedMetaFile = true
418 } else if strings.HasPrefix(hdr.Name, "tls/") {
419 data, err := io.ReadAll(tr)
420 if err != nil {
421 return err
422 }
423 if err := importEndpointTLS(&tlsData, hdr.Name, data); err != nil {
424 return err
425 }
426 }
427 }
428 if !importedMetaFile {
429 return invalidParameter(errors.New("invalid context: no metadata found"))
430 }
431 return s.ResetTLSMaterial(name, &tlsData)
432}
433
434func importZip(name string, s Writer, reader io.Reader) error {
435 body, err := io.ReadAll(&limitedReader{R: reader, N: maxAllowedFileSizeToImport})

Callers 1

ImportFunction · 0.85

Calls 7

isValidFilePathFunction · 0.85
parseMetadataFunction · 0.85
importEndpointTLSFunction · 0.85
NextMethod · 0.80
invalidParameterFunction · 0.70
CreateOrUpdateMethod · 0.65
ResetTLSMaterialMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…