X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/dc82c1c16a9b18e094e60af2c3973e034d5e2068..refs/heads/test-group-contents-trash-filter:/sdk/go/manifest/manifest.go diff --git a/sdk/go/manifest/manifest.go b/sdk/go/manifest/manifest.go index cb605609f0..a517c064fb 100644 --- a/sdk/go/manifest/manifest.go +++ b/sdk/go/manifest/manifest.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + /* Deals with parsing Manifest Text. */ // Inspired by the Manifest class in arvados/sdk/ruby/lib/arvados/keep.rb @@ -162,7 +166,6 @@ func firstBlock(offsets []uint64, range_start uint64) int { // assumes that all of the blocks are contiguous, so range_start is guaranteed // to either fall into the range of a block or be outside the block range entirely for !(range_start >= block_start && range_start < block_end) { - fmt.Println(i, block_start, block_end) if lo == i { // must be out of range, fail return -1 @@ -349,23 +352,23 @@ func (m *Manifest) segment() (*segmentedManifest, error) { func (stream segmentedStream) normalizedText(name string) string { var sortedfiles []string - for k, _ := range stream { + for k := range stream { sortedfiles = append(sortedfiles, k) } sort.Strings(sortedfiles) stream_tokens := []string{EscapeName(name)} - blocks := make(map[string]int64) + blocks := make(map[blockdigest.BlockDigest]int64) var streamoffset int64 // Go through each file and add each referenced block exactly once. for _, streamfile := range sortedfiles { for _, segment := range stream[streamfile] { - if _, ok := blocks[segment.Locator]; !ok { + b, _ := ParseBlockLocator(segment.Locator) + if _, ok := blocks[b.Digest]; !ok { stream_tokens = append(stream_tokens, segment.Locator) - blocks[segment.Locator] = streamoffset - b, _ := ParseBlockLocator(segment.Locator) + blocks[b.Digest] = streamoffset streamoffset += int64(b.Size) } } @@ -382,7 +385,8 @@ func (stream segmentedStream) normalizedText(name string) string { fout := EscapeName(streamfile) for _, segment := range stream[streamfile] { // Collapse adjacent segments - streamoffset = blocks[segment.Locator] + int64(segment.Offset) + b, _ := ParseBlockLocator(segment.Locator) + streamoffset = blocks[b.Digest] + int64(segment.Offset) if span_start == -1 { span_start = streamoffset span_end = streamoffset + int64(segment.Len) @@ -442,7 +446,7 @@ func (m segmentedManifest) manifestTextForPath(srcpath, relocate string) string } var sortedstreams []string - for k, _ := range m { + for k := range m { sortedstreams = append(sortedstreams, k) } sort.Strings(sortedstreams)