MCPcopy
hub / github.com/helm/helm / Create

Method Create

pkg/storage/driver/sql.go:467–576  ·  view source on GitHub ↗

Create creates a new release.

(key string, rel release.Releaser)

Source from the content-addressed store, hash-verified

465
466// Create creates a new release.
467func (s *SQL) Create(key string, rel release.Releaser) error {
468 rls, err := releaserToV1Release(rel)
469 if err != nil {
470 return err
471 }
472
473 namespace := rls.Namespace
474 if namespace == "" {
475 namespace = defaultNamespace
476 }
477 s.namespace = namespace
478
479 body, err := encodeRelease(rls)
480 if err != nil {
481 s.Logger().Debug("failed to encode release", slog.Any("error", err))
482 return err
483 }
484
485 transaction, err := s.db.Beginx()
486 if err != nil {
487 s.Logger().Debug("failed to start SQL transaction", slog.Any("error", err))
488 return fmt.Errorf("error beginning transaction: %v", err)
489 }
490
491 insertQuery, args, err := s.statementBuilder.
492 Insert(sqlReleaseTableName).
493 Columns(
494 sqlReleaseTableKeyColumn,
495 sqlReleaseTableTypeColumn,
496 sqlReleaseTableBodyColumn,
497 sqlReleaseTableNameColumn,
498 sqlReleaseTableNamespaceColumn,
499 sqlReleaseTableVersionColumn,
500 sqlReleaseTableStatusColumn,
501 sqlReleaseTableOwnerColumn,
502 sqlReleaseTableCreatedAtColumn,
503 ).
504 Values(
505 key,
506 sqlReleaseDefaultType,
507 body,
508 rls.Name,
509 namespace,
510 int(rls.Version),
511 rls.Info.Status.String(),
512 sqlReleaseDefaultOwner,
513 int(time.Now().Unix()),
514 ).ToSql()
515 if err != nil {
516 s.Logger().Debug("failed to build insert query", slog.Any("error", err))
517 return err
518 }
519
520 if _, err := transaction.Exec(insertQuery, args...); err != nil {
521 defer transaction.Rollback()
522
523 selectQuery, args, buildErr := s.statementBuilder.
524 Select(sqlReleaseTableKeyColumn).

Callers

nothing calls this directly

Calls 8

encodeReleaseFunction · 0.85
filterSystemLabelsFunction · 0.85
NowMethod · 0.80
releaserToV1ReleaseFunction · 0.70
LoggerMethod · 0.65
ValuesMethod · 0.65
GetMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected