mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-25 21:09:05 +01:00
Change job repo interface
This commit is contained in:
parent
172c7173d3
commit
d63130923c
@ -3,6 +3,7 @@ package api
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
@ -205,13 +206,12 @@ func (api *RestApi) startJob(rw http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// Check if combination of (job_id, cluster_id, start_time) already exists:
|
||||
job, err := api.JobRepository.Find(req.JobID, req.Cluster, req.StartTime)
|
||||
if err != nil {
|
||||
print("ERROR in Find\n")
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
if job != nil {
|
||||
if err != sql.ErrNoRows {
|
||||
http.Error(rw, fmt.Sprintf("a job with that job_id, cluster_id and start_time already exists (database id: %d)", job.ID), http.StatusUnprocessableEntity)
|
||||
return
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ type JobRepository struct {
|
||||
// The job is queried using the batch job id, the cluster name,
|
||||
// and the start time of the job in UNIX epoch time seconds.
|
||||
// It returns a pointer to a schema.Job data structure and an error variable.
|
||||
// If the job was not found nil is returned for the job pointer.
|
||||
// To check if no job was found test err == sql.ErrNoRows
|
||||
func (r *JobRepository) Find(
|
||||
jobId int64,
|
||||
cluster string,
|
||||
@ -33,18 +33,13 @@ func (r *JobRepository) Find(
|
||||
}
|
||||
|
||||
job, err := schema.ScanJob(r.DB.QueryRowx(sqlQuery, args...))
|
||||
|
||||
// Reset error if no job is found as this is indicated by nil job ptr
|
||||
if err == sql.ErrNoRows {
|
||||
err = nil
|
||||
}
|
||||
return job, err
|
||||
}
|
||||
|
||||
// FindById executes a SQL query to find a specific batch job.
|
||||
// The job is queried using the database id.
|
||||
// It returns a pointer to a schema.Job data structure and an error variable.
|
||||
// If the job was not found nil is returned for the job pointer.
|
||||
// To check if no job was found test err == sql.ErrNoRows
|
||||
func (r *JobRepository) FindById(
|
||||
jobId int64) (*schema.Job, error) {
|
||||
sqlQuery, args, err := sq.Select(schema.JobColumns...).
|
||||
@ -54,11 +49,6 @@ func (r *JobRepository) FindById(
|
||||
}
|
||||
|
||||
job, err := schema.ScanJob(r.DB.QueryRowx(sqlQuery, args...))
|
||||
|
||||
// Reset error if no job is found as this is indicated by nil job ptr
|
||||
if err == sql.ErrNoRows {
|
||||
err = nil
|
||||
}
|
||||
return job, err
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user