Skip to content

Commit fdebd7a

Browse files
Merge pull request #100 from bparees/tagevents
search tag events by tag before searching by age age
2 parents c0ab4d3 + dae5c7c commit fdebd7a

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

pkg/imagestream/imagestreamhasblob.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,28 @@ func (is *imageStream) HasBlob(ctx context.Context, dgst digest.Digest, requireM
4444
return logFound(nil)
4545
}
4646

47-
tagEvents := []*imageapiv1.TagEvent{}
47+
// firstTagEvents holds the first tagevent for each tag
48+
// so we can quickly scan those first, before checking older
49+
// tagevents.
50+
firstTagEvents := []*imageapiv1.TagEvent{}
51+
olderTagEvents := []*imageapiv1.TagEvent{}
4852
event2Name := make(map[*imageapiv1.TagEvent]string)
4953
for _, eventList := range stream.Status.Tags {
5054
name := eventList.Tag
5155
for i := range eventList.Items {
5256
event := &eventList.Items[i]
53-
tagEvents = append(tagEvents, event)
57+
if i == 0 {
58+
firstTagEvents = append(firstTagEvents, event)
59+
} else {
60+
olderTagEvents = append(olderTagEvents, event)
61+
}
5462
event2Name[event] = name
5563
}
5664
}
57-
// search from youngest to oldest
58-
sort.Sort(ByGeneration(tagEvents))
65+
// for older tag events, search from youngest to oldest
66+
sort.Sort(ByGeneration(olderTagEvents))
67+
68+
tagEvents := append(firstTagEvents, olderTagEvents...)
5969

6070
processedImages := map[string]struct{}{}
6171

0 commit comments

Comments
 (0)