Errors: remove "error" prefix from message

Instead of returning an error "error doing X", just return "doing X". The
fact that it's returned as an error object says enough about that it's
an error.

This also makes it easier to chain error messages, without seeing the
word "error" in every part of the chain.
This commit is contained in:
Sybren A. Stüvel 2022-03-04 11:30:13 +01:00
parent 02ce95070f
commit cd2fe8170e
12 changed files with 38 additions and 38 deletions

View File

@ -413,10 +413,10 @@ func (c *Conf) checkDatabase() {
func (c *Conf) Overwrite() error {
tempFilename := configFilename + "~"
if err := c.Write(tempFilename); err != nil {
return fmt.Errorf("error writing config to %s: %w", tempFilename, err)
return fmt.Errorf("writing config to %s: %w", tempFilename, err)
}
if err := os.Rename(tempFilename, configFilename); err != nil {
return fmt.Errorf("error moving %s to %s: %w", tempFilename, configFilename, err)
return fmt.Errorf("moving %s to %s: %w", tempFilename, configFilename, err)
}
log.Info().Str("filename", configFilename).Msg("saved configuration to file")

View File

@ -127,7 +127,7 @@ func (db *DB) StoreAuthoredJob(ctx context.Context, authoredJob job_compilers.Au
}
if err := tx.Create(&dbJob).Error; err != nil {
return fmt.Errorf("error storing job: %v", err)
return fmt.Errorf("storing job: %v", err)
}
uuidToTask := make(map[string]*Task)
@ -151,7 +151,7 @@ func (db *DB) StoreAuthoredJob(ctx context.Context, authoredJob job_compilers.Au
// dependencies are stored below.
}
if err := tx.Create(&dbTask).Error; err != nil {
return fmt.Errorf("error storing task: %v", err)
return fmt.Errorf("storing task: %v", err)
}
uuidToTask[authoredTask.UUID] = &dbTask
@ -172,7 +172,7 @@ func (db *DB) StoreAuthoredJob(ctx context.Context, authoredJob job_compilers.Au
for i, t := range authoredTask.Dependencies {
depTask, ok := uuidToTask[t.UUID]
if !ok {
return fmt.Errorf("error finding task with UUID %q; a task depends on a task that is not part of this job", t.UUID)
return fmt.Errorf("finding task with UUID %q; a task depends on a task that is not part of this job", t.UUID)
}
deps[i] = depTask
}
@ -202,7 +202,7 @@ func (db *DB) SaveJobStatus(ctx context.Context, j *Job) error {
Model(j).
Updates(Job{Status: j.Status})
if tx.Error != nil {
return fmt.Errorf("error saving job status: %w", tx.Error)
return fmt.Errorf("saving job status: %w", tx.Error)
}
return nil
}
@ -220,14 +220,14 @@ func (db *DB) FetchTask(ctx context.Context, taskUUID string) (*Task, error) {
func (db *DB) SaveTask(ctx context.Context, t *Task) error {
if err := db.gormDB.WithContext(ctx).Save(t).Error; err != nil {
return fmt.Errorf("error saving task: %w", err)
return fmt.Errorf("saving task: %w", err)
}
return nil
}
func (db *DB) SaveTaskActivity(ctx context.Context, t *Task) error {
if err := db.gormDB.Model(t).Updates(Task{Activity: t.Activity}).Error; err != nil {
return fmt.Errorf("error saving task activity: %w", err)
return fmt.Errorf("saving task activity: %w", err)
}
return nil
}

View File

@ -51,7 +51,7 @@ func (db *DB) ScheduleTask(ctx context.Context, w *Worker) (*Task, error) {
var err error
task, err = findTaskForWorker(tx, w)
if err != nil {
return fmt.Errorf("error finding task for worker: %w", err)
return fmt.Errorf("finding task for worker: %w", err)
}
if task == nil {
// No task found, which is fine.
@ -65,7 +65,7 @@ func (db *DB) ScheduleTask(ctx context.Context, w *Worker) (*Task, error) {
Str("taskID", task.UUID).
Err(err).
Msg("error assigning task to worker")
return fmt.Errorf("error assigning task to worker: %w", err)
return fmt.Errorf("assigning task to worker: %w", err)
}
return nil
@ -73,7 +73,7 @@ func (db *DB) ScheduleTask(ctx context.Context, w *Worker) (*Task, error) {
if txErr != nil {
logger.Error().Err(txErr).Msg("error finding task for worker")
return nil, fmt.Errorf("error finding task for worker: %w", txErr)
return nil, fmt.Errorf("finding task for worker: %w", txErr)
}
if task == nil {

View File

@ -53,7 +53,7 @@ func (w *Worker) TaskTypes() []string {
func (db *DB) CreateWorker(ctx context.Context, w *Worker) error {
if err := db.gormDB.WithContext(ctx).Create(w).Error; err != nil {
return fmt.Errorf("error creating new worker: %w", err)
return fmt.Errorf("creating new worker: %w", err)
}
return nil
}
@ -77,14 +77,14 @@ func (db *DB) SaveWorkerStatus(ctx context.Context, w *Worker) error {
StatusRequested: w.StatusRequested,
}).Error
if err != nil {
return fmt.Errorf("error saving worker: %w", err)
return fmt.Errorf("saving worker: %w", err)
}
return nil
}
func (db *DB) SaveWorker(ctx context.Context, w *Worker) error {
if err := db.gormDB.WithContext(ctx).Save(w).Error; err != nil {
return fmt.Errorf("error saving worker: %w", err)
return fmt.Errorf("saving worker: %w", err)
}
return nil
}

View File

@ -66,7 +66,7 @@ func (s *Storage) Write(logger zerolog.Logger, jobID, taskID string, logText str
if err := os.MkdirAll(path.Dir(filepath), 0755); err != nil {
logger.Error().Err(err).Msg("unable to create directory for log file")
return fmt.Errorf("error creating directory: %w", err)
return fmt.Errorf("creating directory: %w", err)
}
file, err := os.OpenFile(filepath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)

View File

@ -94,10 +94,10 @@ func (sm *StateMachine) TaskStatusChange(
logger.Debug().Msg("task state changed")
if err := sm.persist.SaveTask(ctx, task); err != nil {
return fmt.Errorf("error saving task to database: %w", err)
return fmt.Errorf("saving task to database: %w", err)
}
if err := sm.updateJobAfterTaskStatusChange(ctx, task, oldTaskStatus); err != nil {
return fmt.Errorf("error updating job after task status change: %w", err)
return fmt.Errorf("updating job after task status change: %w", err)
}
return nil
}
@ -253,14 +253,14 @@ func (sm *StateMachine) JobStatusChange(ctx context.Context, job *persistence.Jo
// Persist the new job status.
err = sm.persist.SaveJobStatus(ctx, job)
if err != nil {
return fmt.Errorf("error saving job status change %q to %q to database: %w",
return fmt.Errorf("saving job status change %q to %q to database: %w",
oldJobStatus, newJobStatus, err)
}
// Handle the status change.
newJobStatus, err = sm.updateTasksAfterJobStatusChange(ctx, logger, job, oldJobStatus)
if err != nil {
return fmt.Errorf("error updating job's tasks after job status change: %w", err)
return fmt.Errorf("updating job's tasks after job status change: %w", err)
}
}
@ -326,7 +326,7 @@ func (sm *StateMachine) cancelTasks(
fmt.Sprintf("Manager cancelled this task because the job got status %q.", job.Status),
)
if err != nil {
return "", fmt.Errorf("error cancelling tasks of job %s: %w", job.UUID, err)
return "", fmt.Errorf("cancelling tasks of job %s: %w", job.UUID, err)
}
// If cancellation was requested, it has now happened, so the job can transition.
@ -380,7 +380,7 @@ func (sm *StateMachine) requeueTasks(
}
if err != nil {
return "", fmt.Errorf("error queueing tasks of job %s: %w", job.UUID, err)
return "", fmt.Errorf("queueing tasks of job %s: %w", job.UUID, err)
}
// TODO: also reset the 'failed by workers' blacklist.

View File

@ -176,7 +176,7 @@ func cmdBlenderRenderParams(logger zerolog.Logger, cmd api.Command) (BlenderPara
exeArgs, err := shlex.Split(parameters.exe)
if err != nil {
logger.Warn().Err(err).Interface("command", cmd).Msg("error parsing 'exe' parameter with shlex")
return parameters, fmt.Errorf("error parsing 'exe' parameter %q: %w", parameters.exe, err)
return parameters, fmt.Errorf("parsing 'exe' parameter %q: %w", parameters.exe, err)
}
if len(exeArgs) > 1 {
allArgsBefore := []string{}

View File

@ -66,19 +66,19 @@ func loadConfig(configWrangler FileConfigWrangler) (WorkerConfig, error) {
cfg = configWrangler.DefaultConfig()
err = configWrangler.WriteConfig(configFilename, "Configuration", cfg)
if err != nil {
return cfg, fmt.Errorf("error writing default config: %w", err)
return cfg, fmt.Errorf("writing default config: %w", err)
}
err = configWrangler.LoadConfig(configFilename, &cfg)
}
if err != nil {
return cfg, fmt.Errorf("error loading config from %s: %w", configFilename, err)
return cfg, fmt.Errorf("loading config from %s: %w", configFilename, err)
}
// Validate the manager URL.
if cfg.Manager != "" {
_, err := ParseURL(cfg.Manager)
if err != nil {
return cfg, fmt.Errorf("error parsing manager URL %s: %w", cfg.Manager, err)
return cfg, fmt.Errorf("parsing manager URL %s: %w", cfg.Manager, err)
}
logger.Debug().Str("url", cfg.Manager).Msg("parsed manager URL")
}

View File

@ -72,7 +72,7 @@ func (te *TaskExecutor) Run(ctx context.Context, task api.AssignedTask) error {
if err == ErrTaskReassigned {
return ErrTaskReassigned
}
return fmt.Errorf("error sending 'task started' notification to manager: %w", err)
return fmt.Errorf("sending 'task started' notification to manager: %w", err)
}
for _, cmd := range task.Commands {
@ -96,7 +96,7 @@ func (te *TaskExecutor) Run(ctx context.Context, task api.AssignedTask) error {
if err == ErrTaskReassigned {
return ErrTaskReassigned
}
return fmt.Errorf("error sending 'task failed' notification to manager: %w", err)
return fmt.Errorf("sending 'task failed' notification to manager: %w", err)
}
return runErr
}
@ -105,7 +105,7 @@ func (te *TaskExecutor) Run(ctx context.Context, task api.AssignedTask) error {
if err == ErrTaskReassigned {
return ErrTaskReassigned
}
return fmt.Errorf("error sending 'task completed' notification to manager: %w", err)
return fmt.Errorf("sending 'task completed' notification to manager: %w", err)
}
return nil

View File

@ -79,11 +79,11 @@ func (ub *UpstreamBufferDB) OpenDB(ctx context.Context, databaseFilename string)
db, err := sql.Open("sqlite", databaseFilename)
if err != nil {
return fmt.Errorf("error opening %s: %w", databaseFilename, err)
return fmt.Errorf("opening %s: %w", databaseFilename, err)
}
if err := db.PingContext(ctx); err != nil {
return fmt.Errorf("error accessing %s: %w", databaseFilename, err)
return fmt.Errorf("accessing %s: %w", databaseFilename, err)
}
ub.db = db
@ -325,7 +325,7 @@ func (ub *UpstreamBufferDB) discardRow(ctx context.Context, tx *sql.Tx, rowID in
_, err := tx.ExecContext(ctx, stmt, rowID)
if err != nil {
return fmt.Errorf("error un-queueing task update: %w", err)
return fmt.Errorf("un-queueing task update: %w", err)
}
return nil
}

View File

@ -81,16 +81,16 @@ var swaggerSpec = []string{
func decodeSpec() ([]byte, error) {
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
if err != nil {
return nil, fmt.Errorf("error base64 decoding spec: %s", err)
return nil, fmt.Errorf("base64 decoding spec: %s", err)
}
zr, err := gzip.NewReader(bytes.NewReader(zipped))
if err != nil {
return nil, fmt.Errorf("error decompressing spec: %s", err)
return nil, fmt.Errorf("decompressing spec: %s", err)
}
var buf bytes.Buffer
_, err = buf.ReadFrom(zr)
if err != nil {
return nil, fmt.Errorf("error decompressing spec: %s", err)
return nil, fmt.Errorf("decompressing spec: %s", err)
}
return buf.Bytes(), nil

View File

@ -330,7 +330,7 @@ func (a *JobMetadata) UnmarshalJSON(b []byte) error {
var fieldVal string
err := json.Unmarshal(fieldBuf, &fieldVal)
if err != nil {
return fmt.Errorf("error unmarshaling field %s: %w", fieldName, err)
return fmt.Errorf("unmarshaling field %s: %w", fieldName, err)
}
a.AdditionalProperties[fieldName] = fieldVal
}
@ -346,7 +346,7 @@ func (a JobMetadata) MarshalJSON() ([]byte, error) {
for fieldName, field := range a.AdditionalProperties {
object[fieldName], err = json.Marshal(field)
if err != nil {
return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
return nil, fmt.Errorf("marshaling '%s': %w", fieldName, err)
}
}
return json.Marshal(object)
@ -383,7 +383,7 @@ func (a *JobSettings) UnmarshalJSON(b []byte) error {
var fieldVal interface{}
err := json.Unmarshal(fieldBuf, &fieldVal)
if err != nil {
return fmt.Errorf("error unmarshaling field %s: %w", fieldName, err)
return fmt.Errorf("unmarshaling field %s: %w", fieldName, err)
}
a.AdditionalProperties[fieldName] = fieldVal
}
@ -399,7 +399,7 @@ func (a JobSettings) MarshalJSON() ([]byte, error) {
for fieldName, field := range a.AdditionalProperties {
object[fieldName], err = json.Marshal(field)
if err != nil {
return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
return nil, fmt.Errorf("marshaling '%s': %w", fieldName, err)
}
}
return json.Marshal(object)