diff --git a/pkg/storage/memory.go b/pkg/storage/memory.go index fcf0e7042..d9c1ac3b5 100644 --- a/pkg/storage/memory.go +++ b/pkg/storage/memory.go @@ -70,15 +70,15 @@ func (m *Memory) Delete(name string) (*release.Release, error) { return rel, nil } -// List returns all releases. +// List returns all releases whose status is not Status_DELETED. func (m *Memory) List() ([]*release.Release, error) { m.RLock() defer m.RUnlock() - buf := make([]*release.Release, len(m.releases)) - i := 0 + buf := []*release.Release{} for _, v := range m.releases { - buf[i] = v - i++ + if v.Info.Status.Code != release.Status_DELETED { + buf = append(buf, v) + } } return buf, nil } diff --git a/pkg/storage/memory_test.go b/pkg/storage/memory_test.go index 0c513fbc7..da95010b3 100644 --- a/pkg/storage/memory_test.go +++ b/pkg/storage/memory_test.go @@ -72,7 +72,18 @@ func TestList(t *testing.T) { rels := []string{"a", "b", "c"} for _, k := range rels { - ms.Create(&release.Release{Name: k}) + ms.Create(&release.Release{ + Name: k, + Info: &release.Info{ + Status: &release.Status{Code: release.Status_UNKNOWN}, + }, + }) + ms.Create(&release.Release{ + Name: "deleted-should-not-show-up", + Info: &release.Info{ + Status: &release.Status{Code: release.Status_DELETED}, + }, + }) } l, err := ms.List()