76
// Assumes that build ids are safe to remove, ex: a set default is never removed unless it is a single set member and
77
// that set is not default for the queue.
78
>
func RemoveBuildIds(clock *hlc.Clock, versioningData *persistencespb.VersioningData, buildIds []string) *persistencespb.VersioningData {
version_sets.go
79
>
buildIdsMap := make(map[string]struct{}, len(buildIds))
80
>
for _, buildId := range buildIds {
81
>
buildIdsMap[buildId] = struct{}{}
82
>
}
83
>
modifiedData := shallowCloneVersioningData(versioningData)
84
>
for setIdx, original := range modifiedData.GetVersionSets() {
85
>
set := shallowCloneVersionSet(original)
86
>
modifiedData.VersionSets[setIdx] = set
87
>
for buildIdIdx, buildId := range set.BuildIds {
88
>
if _, found := buildIdsMap[buildId.Id]; found {
89
>
set.BuildIds[buildIdIdx] = &persistencespb.BuildId{
90
>
Id: buildId.Id,
91
>
State: persistencespb.STATE_DELETED,
92
>
StateUpdateTimestamp: clock,
93
>
BecameDefaultTimestamp: buildId.BecameDefaultTimestamp,
94
>
}
95
>
}
96
}
97
}
99
}
100