MCPcopy Index your code
hub / github.com/helm/helm / List

Method List

pkg/storage/driver/sql.go:346–394  ·  view source on GitHub ↗

List returns the list of all releases such that filter(release) == true

(filter func(release.Releaser) bool)

Source from the content-addressed store, hash-verified

344
345// List returns the list of all releases such that filter(release) == true
346func (s *SQL) List(filter func(release.Releaser) bool) ([]release.Releaser, error) {
347 sb := s.statementBuilder.
348 Select(sqlReleaseTableKeyColumn, sqlReleaseTableNamespaceColumn, sqlReleaseTableBodyColumn).
349 From(sqlReleaseTableName).
350 Where(sq.Eq{sqlReleaseTableOwnerColumn: sqlReleaseDefaultOwner})
351
352 // If a namespace was specified, we only list releases from that namespace
353 if s.namespace != "" {
354 sb = sb.Where(sq.Eq{sqlReleaseTableNamespaceColumn: s.namespace})
355 }
356
357 query, args, err := sb.ToSql()
358 if err != nil {
359 s.Logger().Debug("failed to build query", slog.Any("error", err))
360 return nil, err
361 }
362
363 var records = []SQLReleaseWrapper{}
364 if err := s.db.Select(&records, query, args...); err != nil {
365 s.Logger().Debug("failed to list", slog.Any("error", err))
366 return nil, err
367 }
368
369 var releases []release.Releaser
370 for _, record := range records {
371 release, err := decodeRelease(record.Body)
372 if err != nil {
373 s.Logger().Debug("failed to decode release", slog.Any("record", record), slog.Any("error", err))
374 continue
375 }
376
377 if release.Labels, err = s.getReleaseCustomLabels(record.Key, record.Namespace); err != nil {
378 s.Logger().Debug(
379 "failed to get release custom labels",
380 slog.String("namespace", record.Namespace),
381 slog.String("key", record.Key),
382 slog.Any("error", err),
383 )
384 return nil, err
385 }
386 maps.Copy(release.Labels, getReleaseSystemLabels(release))
387
388 if filter(release) {
389 releases = append(releases, release)
390 }
391 }
392
393 return releases, nil
394}
395
396// Query returns the set of releases that match the provided set of labels.
397func (s *SQL) Query(labels map[string]string) ([]release.Releaser, error) {

Callers

nothing calls this directly

Calls 6

decodeReleaseFunction · 0.85
getReleaseSystemLabelsFunction · 0.85
CopyMethod · 0.80
LoggerMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected