|
|
@ -154,22 +154,12 @@ func (l *List) Run() ([]*release.Release, error) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
selectorObj, err := labels.Parse(l.Selector)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
results, err := l.cfg.Releases.List(func(rel *release.Release) bool {
|
|
|
|
results, err := l.cfg.Releases.List(func(rel *release.Release) bool {
|
|
|
|
// Skip anything that doesn't match the filter.
|
|
|
|
// Skip anything that doesn't match the filter.
|
|
|
|
if filter != nil && !filter.MatchString(rel.Name) {
|
|
|
|
if filter != nil && !filter.MatchString(rel.Name) {
|
|
|
|
return false
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Skip anything that doesn't match the selector
|
|
|
|
|
|
|
|
if !selectorObj.Matches(labels.Set(rel.Labels)) {
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true
|
|
|
|
return true
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
@ -192,6 +182,13 @@ func (l *List) Run() ([]*release.Release, error) {
|
|
|
|
// latest releases, otherwise outdated entries can be returned
|
|
|
|
// latest releases, otherwise outdated entries can be returned
|
|
|
|
results = l.filterStateMask(results)
|
|
|
|
results = l.filterStateMask(results)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Skip anything that doesn't match the selector
|
|
|
|
|
|
|
|
selectorObj, err := labels.Parse(l.Selector)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
results = l.filterSelector(results, selectorObj)
|
|
|
|
|
|
|
|
|
|
|
|
// Unfortunately, we have to sort before truncating, which can incur substantial overhead
|
|
|
|
// Unfortunately, we have to sort before truncating, which can incur substantial overhead
|
|
|
|
l.sort(results)
|
|
|
|
l.sort(results)
|
|
|
|
|
|
|
|
|
|
|
@ -274,6 +271,18 @@ func (l *List) filterStateMask(releases []*release.Release) []*release.Release {
|
|
|
|
return desiredStateReleases
|
|
|
|
return desiredStateReleases
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func (l *List) filterSelector(releases []*release.Release, selector labels.Selector) []*release.Release {
|
|
|
|
|
|
|
|
desiredStateReleases := make([]*release.Release, 0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for _, rls := range releases {
|
|
|
|
|
|
|
|
if selector.Matches(labels.Set(rls.Labels)) {
|
|
|
|
|
|
|
|
desiredStateReleases = append(desiredStateReleases, rls)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return desiredStateReleases
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// SetStateMask calculates the state mask based on parameters.
|
|
|
|
// SetStateMask calculates the state mask based on parameters.
|
|
|
|
func (l *List) SetStateMask() {
|
|
|
|
func (l *List) SetStateMask() {
|
|
|
|
if l.All {
|
|
|
|
if l.All {
|
|
|
|