diff --git a/internal/internal.go b/internal/internal.go index 7352d409..1143ee39 100644 --- a/internal/internal.go +++ b/internal/internal.go @@ -25,11 +25,6 @@ func CantParseUint64(err error, s string) error { return errors.Wrapf(err, "can't parse %q into uint64", s) } -// CantPerformQuery wraps the given error with the specified query that cannot be executed. -func CantPerformQuery(err error, q string) error { - return errors.Wrapf(err, "can't perform %q", q) -} - // CantUnmarshalYAML wraps the given error with the designated value, which cannot be unmarshalled into. func CantUnmarshalYAML(err error, v interface{}) error { return errors.Wrapf(err, "can't unmarshal YAML into %T", v) diff --git a/pkg/database/utils.go b/pkg/database/utils.go new file mode 100644 index 00000000..247edfce --- /dev/null +++ b/pkg/database/utils.go @@ -0,0 +1,8 @@ +package database + +import "github.com/pkg/errors" + +// CantPerformQuery wraps the given error with the specified query that cannot be executed. +func CantPerformQuery(err error, q string) error { + return errors.Wrapf(err, "can't perform %q", q) +} diff --git a/pkg/icingadb/cleanup.go b/pkg/icingadb/cleanup.go index 22bf02d6..aae0a862 100644 --- a/pkg/icingadb/cleanup.go +++ b/pkg/icingadb/cleanup.go @@ -3,9 +3,9 @@ package icingadb import ( "context" "fmt" - "github.com/icinga/icingadb/internal" "github.com/icinga/icingadb/pkg/backoff" "github.com/icinga/icingadb/pkg/com" + "github.com/icinga/icingadb/pkg/database" "github.com/icinga/icingadb/pkg/retry" "github.com/icinga/icingadb/pkg/types" "time" @@ -58,7 +58,7 @@ func (db *DB) CleanupOlderThan( Time: types.UnixMilli(olderThan), }) if err != nil { - return internal.CantPerformQuery(err, q) + return database.CantPerformQuery(err, q) } rowsDeleted, err = rs.RowsAffected() diff --git a/pkg/icingadb/db.go b/pkg/icingadb/db.go index 47940af9..485b72f2 100644 --- a/pkg/icingadb/db.go +++ b/pkg/icingadb/db.go @@ -3,10 +3,10 @@ package icingadb import ( "context" "fmt" - "github.com/icinga/icingadb/internal" "github.com/icinga/icingadb/pkg/backoff" "github.com/icinga/icingadb/pkg/com" "github.com/icinga/icingadb/pkg/contracts" + "github.com/icinga/icingadb/pkg/database" "github.com/icinga/icingadb/pkg/logging" "github.com/icinga/icingadb/pkg/periodic" "github.com/icinga/icingadb/pkg/retry" @@ -116,7 +116,7 @@ func (db *DB) CheckSchema(ctx context.Context) error { query := "SELECT version FROM icingadb_schema ORDER BY id DESC LIMIT 1" err = db.QueryRowxContext(ctx, query).Scan(&version) if err != nil { - err = internal.CantPerformQuery(err, query) + err = database.CantPerformQuery(err, query) } return }, @@ -344,7 +344,7 @@ func (db *DB) BulkExec( stmt = db.Rebind(stmt) _, err = db.ExecContext(ctx, stmt, args...) if err != nil { - return internal.CantPerformQuery(err, query) + return database.CantPerformQuery(err, query) } counter.Add(uint64(len(b))) @@ -409,7 +409,7 @@ func (db *DB) NamedBulkExec( func(ctx context.Context) error { _, err := db.NamedExecContext(ctx, query, b) if err != nil { - return internal.CantPerformQuery(err, query) + return database.CantPerformQuery(err, query) } counter.Add(uint64(len(b))) @@ -535,7 +535,7 @@ func (db *DB) YieldAll(ctx context.Context, factoryFunc contracts.EntityFactoryF rows, err := db.NamedQueryContext(ctx, query, scope) if err != nil { - return internal.CantPerformQuery(err, query) + return database.CantPerformQuery(err, query) } defer rows.Close() diff --git a/pkg/icingadb/ha.go b/pkg/icingadb/ha.go index cc32a4b3..a7c186c0 100644 --- a/pkg/icingadb/ha.go +++ b/pkg/icingadb/ha.go @@ -6,9 +6,9 @@ import ( "database/sql" "encoding/hex" "github.com/google/uuid" - "github.com/icinga/icingadb/internal" "github.com/icinga/icingadb/pkg/backoff" "github.com/icinga/icingadb/pkg/com" + "github.com/icinga/icingadb/pkg/database" v1 "github.com/icinga/icingadb/pkg/icingadb/v1" "github.com/icinga/icingadb/pkg/icingaredis" icingaredisv1 "github.com/icinga/icingadb/pkg/icingaredis/v1" @@ -338,7 +338,7 @@ func (h *HA) realize( } default: - return internal.CantPerformQuery(errQuery, query) + return database.CantPerformQuery(errQuery, query) } i := v1.IcingadbInstance{ @@ -365,7 +365,7 @@ func (h *HA) realize( stmt, _ := h.db.BuildUpsertStmt(i) if _, err := tx.NamedExecContext(ctx, stmt, i); err != nil { - return internal.CantPerformQuery(err, stmt) + return database.CantPerformQuery(err, stmt) } if takeover != "" { @@ -373,7 +373,7 @@ func (h *HA) realize( _, err := tx.ExecContext(ctx, stmt, "n", envId, h.instanceId) if err != nil { - return internal.CantPerformQuery(err, stmt) + return database.CantPerformQuery(err, stmt) } } @@ -441,7 +441,7 @@ func (h *HA) realize( func (h *HA) realizeLostHeartbeat() { stmt := h.db.Rebind("UPDATE icingadb_instance SET responsible = ? WHERE id = ?") if _, err := h.db.ExecContext(h.ctx, stmt, "n", h.instanceId); err != nil && !utils.IsContextCanceled(err) { - h.logger.Warnw("Can't update instance", zap.Error(internal.CantPerformQuery(err, stmt))) + h.logger.Warnw("Can't update instance", zap.Error(database.CantPerformQuery(err, stmt))) } } @@ -451,7 +451,7 @@ func (h *HA) insertEnvironment() error { stmt, _ := h.db.BuildInsertIgnoreStmt(h.environment) if _, err := h.db.NamedExecContext(h.ctx, stmt, h.environment); err != nil { - return internal.CantPerformQuery(err, stmt) + return database.CantPerformQuery(err, stmt) } return nil diff --git a/pkg/icingadb/overdue/sync.go b/pkg/icingadb/overdue/sync.go index 377592ac..0962ed87 100644 --- a/pkg/icingadb/overdue/sync.go +++ b/pkg/icingadb/overdue/sync.go @@ -5,9 +5,9 @@ import ( _ "embed" "fmt" "github.com/google/uuid" - "github.com/icinga/icingadb/internal" "github.com/icinga/icingadb/pkg/com" "github.com/icinga/icingadb/pkg/contracts" + "github.com/icinga/icingadb/pkg/database" "github.com/icinga/icingadb/pkg/icingadb" "github.com/icinga/icingadb/pkg/icingadb/v1" "github.com/icinga/icingadb/pkg/icingadb/v1/overdue" @@ -89,7 +89,7 @@ func (s Sync) initSync(ctx context.Context, objectType string) error { query := fmt.Sprintf("SELECT id FROM %s_state WHERE is_overdue='y'", objectType) if err := s.db.SelectContext(ctx, &rows, query); err != nil { - return internal.CantPerformQuery(err, query) + return database.CantPerformQuery(err, query) } _, err := s.redis.Pipelined(ctx, func(pipe redis.Pipeliner) error {