|
|
|
@ -593,6 +593,12 @@ func (s *SQL) Update(key string, rel release.Releaser) error {
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
transaction, err := s.db.Beginx()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to start SQL transaction", slog.Any("error", err))
|
|
|
|
|
|
|
|
return fmt.Errorf("error beginning transaction: %w", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
query, args, err := s.statementBuilder.
|
|
|
|
query, args, err := s.statementBuilder.
|
|
|
|
Update(sqlReleaseTableName).
|
|
|
|
Update(sqlReleaseTableName).
|
|
|
|
Set(sqlReleaseTableBodyColumn, body).
|
|
|
|
Set(sqlReleaseTableBodyColumn, body).
|
|
|
|
@ -605,15 +611,68 @@ func (s *SQL) Update(key string, rel release.Releaser) error {
|
|
|
|
Where(sq.Eq{sqlReleaseTableNamespaceColumn: namespace}).
|
|
|
|
Where(sq.Eq{sqlReleaseTableNamespaceColumn: namespace}).
|
|
|
|
ToSql()
|
|
|
|
ToSql()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
s.Logger().Debug("failed to build update query", slog.Any("error", err))
|
|
|
|
s.Logger().Debug("failed to build update query", slog.Any("error", err))
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if _, err := s.db.Exec(query, args...); err != nil {
|
|
|
|
if _, err := transaction.Exec(query, args...); err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
s.Logger().Debug("failed to update release in SQL database", slog.String("key", key), slog.Any("error", err))
|
|
|
|
s.Logger().Debug("failed to update release in SQL database", slog.String("key", key), slog.Any("error", err))
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
deleteQuery, args, err := s.statementBuilder.
|
|
|
|
|
|
|
|
Delete(sqlCustomLabelsTableName).
|
|
|
|
|
|
|
|
Where(sq.Eq{sqlCustomLabelsTableReleaseKeyColumn: key}).
|
|
|
|
|
|
|
|
Where(sq.Eq{sqlCustomLabelsTableReleaseNamespaceColumn: namespace}).
|
|
|
|
|
|
|
|
ToSql()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to build delete Labels query", slog.Any("error", err))
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if _, err := transaction.Exec(deleteQuery, args...); err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to delete Labels", slog.Any("error", err))
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for k, v := range filterSystemLabels(rls.Labels) {
|
|
|
|
|
|
|
|
insertLabelsQuery, args, err := s.statementBuilder.
|
|
|
|
|
|
|
|
Insert(sqlCustomLabelsTableName).
|
|
|
|
|
|
|
|
Columns(
|
|
|
|
|
|
|
|
sqlCustomLabelsTableReleaseKeyColumn,
|
|
|
|
|
|
|
|
sqlCustomLabelsTableReleaseNamespaceColumn,
|
|
|
|
|
|
|
|
sqlCustomLabelsTableKeyColumn,
|
|
|
|
|
|
|
|
sqlCustomLabelsTableValueColumn,
|
|
|
|
|
|
|
|
).
|
|
|
|
|
|
|
|
Values(
|
|
|
|
|
|
|
|
key,
|
|
|
|
|
|
|
|
namespace,
|
|
|
|
|
|
|
|
k,
|
|
|
|
|
|
|
|
v,
|
|
|
|
|
|
|
|
).ToSql()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to build insert query", slog.Any("error", err))
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if _, err := transaction.Exec(insertLabelsQuery, args...); err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to write Labels", slog.Any("error", err))
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if err := transaction.Commit(); err != nil {
|
|
|
|
|
|
|
|
transaction.Rollback()
|
|
|
|
|
|
|
|
s.Logger().Debug("failed to commit transaction", slog.Any("error", err))
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|