Mercurial > gemma
changeset 2187:7c83b5277c1c
Import queue: Removed boilerplate code to deserialize jobs from JSON by making it part of the import queue.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 11 Feb 2019 18:35:01 +0100 |
parents | d0498088894f |
children | 005da2c21b11 |
files | pkg/imports/agm.go pkg/imports/bn.go pkg/imports/dma.go pkg/imports/dmv.go pkg/imports/fa.go pkg/imports/fd.go pkg/imports/gm.go pkg/imports/queue.go pkg/imports/sr.go pkg/imports/st.go pkg/imports/wa.go pkg/imports/wg.go pkg/imports/wp.go pkg/imports/wx.go |
diffstat | 14 files changed, 18 insertions(+), 112 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/agm.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/agm.go Mon Feb 11 18:35:01 2019 +0100 @@ -28,7 +28,6 @@ "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/models" ) @@ -52,13 +51,7 @@ return "approved gauge measurements" } -func (agmJobCreator) Create(data string) (Job, error) { - agm := new(ApprovedGaugeMeasurements) - if err := common.FromJSONString(data, agm); err != nil { - return nil, err - } - return agm, nil -} +func (agmJobCreator) Create() Job { return new(ApprovedGaugeMeasurements) } func (agmJobCreator) Depends() []string { return []string{
--- a/pkg/imports/bn.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/bn.go Mon Feb 11 18:35:01 2019 +0100 @@ -21,7 +21,6 @@ "strconv" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/soap/ifbn" ) @@ -88,13 +87,7 @@ func (bnJobCreator) AutoAccept() bool { return false } -func (bnJobCreator) Create(data string) (Job, error) { - bn := new(Bottleneck) - if err := common.FromJSONString(data, bn); err != nil { - return nil, err - } - return bn, nil -} +func (bnJobCreator) Create() Job { return new(Bottleneck) } func (bnJobCreator) Depends() []string { return []string{
--- a/pkg/imports/dma.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/dma.go Mon Feb 11 18:35:01 2019 +0100 @@ -22,7 +22,6 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -51,13 +50,7 @@ func (dmaJobCreator) AutoAccept() bool { return true } -func (dmaJobCreator) Create(data string) (Job, error) { - dma := new(DistanceMarksAshore) - if err := common.FromJSONString(data, dma); err != nil { - return nil, err - } - return dma, nil -} +func (dmaJobCreator) Create() Job { return new(DistanceMarksAshore) } func (dmaJobCreator) Depends() []string { return []string{
--- a/pkg/imports/dmv.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/dmv.go Mon Feb 11 18:35:01 2019 +0100 @@ -22,7 +22,6 @@ "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap" "gemma.intevation.de/gemma/pkg/soap/erdms" @@ -52,13 +51,7 @@ func (dmvJobCreator) AutoAccept() bool { return true } -func (dmvJobCreator) Create(data string) (Job, error) { - dmv := new(DistanceMarksVirtual) - if err := common.FromJSONString(data, dmv); err != nil { - return nil, err - } - return dmv, nil -} +func (dmvJobCreator) Create() Job { return new(DistanceMarksVirtual) } func (dmvJobCreator) Depends() []string { return []string{
--- a/pkg/imports/fa.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/fa.go Mon Feb 11 18:35:01 2019 +0100 @@ -21,7 +21,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/soap/ifaf" ) @@ -156,13 +155,7 @@ return "fairway availability" } -func (faJobCreator) Create(data string) (Job, error) { - fa := new(FairwayAvailability) - if err := common.FromJSONString(data, fa); err != nil { - return nil, err - } - return fa, nil -} +func (faJobCreator) Create() Job { return new(FairwayAvailability) } func (faJobCreator) Depends() []string { return []string{
--- a/pkg/imports/fd.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/fd.go Mon Feb 11 18:35:01 2019 +0100 @@ -21,7 +21,6 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -75,13 +74,7 @@ func (fdJobCreator) AutoAccept() bool { return false } -func (fdJobCreator) Create(data string) (Job, error) { - fd := new(FairwayDimension) - if err := common.FromJSONString(data, fd); err != nil { - return nil, err - } - return fd, nil -} +func (fdJobCreator) Create() Job { return new(FairwayDimension) } func (fdJobCreator) Depends() []string { return []string{
--- a/pkg/imports/gm.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/gm.go Mon Feb 11 18:35:01 2019 +0100 @@ -20,7 +20,6 @@ "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap/nts" ) @@ -116,17 +115,9 @@ RegisterJobCreator(GMJobKind, gmJobCreator{}) } -func (gmJobCreator) Description() string { - return "gauge measurements" -} +func (gmJobCreator) Description() string { return "gauge measurements" } -func (gmJobCreator) Create(data string) (Job, error) { - gm := new(GaugeMeasurement) - if err := common.FromJSONString(data, gm); err != nil { - return nil, err - } - return gm, nil -} +func (gmJobCreator) Create() Job { return new(GaugeMeasurement) } func (gmJobCreator) Depends() []string { return []string{
--- a/pkg/imports/queue.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/queue.go Mon Feb 11 18:35:01 2019 +0100 @@ -27,6 +27,7 @@ "github.com/jackc/pgx/pgtype" "gemma.intevation.de/gemma/pkg/auth" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/config" ) @@ -73,10 +74,7 @@ // Description is the long name of the import. Description() string // Create build the actual job. - // data is a free form string to pass arguments to the creation - // process. This is useful to tell e.g. where to find data - // in the file system to be used for importing. - Create(data string) (Job, error) + Create() Job // Depends returns a list of ressources locked by this type of import. // Imports are run concurrently if they have disjoint sets // of dependencies. @@ -588,8 +586,8 @@ } }() - job, err := jc.Create(idj.data) - if err != nil { + job := jc.Create() + if err := common.FromJSONString(idj.data, job); err != nil { errorAndFail(idj.id, "failed to create job for import #%d: %v", idj.id, err) return
--- a/pkg/imports/sr.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/sr.go Mon Feb 11 18:35:01 2019 +0100 @@ -77,13 +77,7 @@ func (srJobCreator) AutoAccept() bool { return false } -func (srJobCreator) Create(data string) (Job, error) { - sr := new(SoundingResult) - if err := common.FromJSONString(data, sr); err != nil { - return nil, err - } - return sr, nil -} +func (srJobCreator) Create() Job { return new(SoundingResult) } func (srJobCreator) Depends() []string { return []string{
--- a/pkg/imports/st.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/st.go Mon Feb 11 18:35:01 2019 +0100 @@ -19,7 +19,6 @@ "errors" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" ) @@ -46,13 +45,7 @@ func (stJobCreator) AutoAccept() bool { return false } -func (stJobCreator) Create(data string) (Job, error) { - st := new(Stretch) - if err := common.FromJSONString(data, st); err != nil { - return nil, err - } - return st, nil -} +func (stJobCreator) Create() Job { return new(Stretch) } func (stJobCreator) Depends() []string { return []string{
--- a/pkg/imports/wa.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/wa.go Mon Feb 11 18:35:01 2019 +0100 @@ -23,7 +23,6 @@ "strconv" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -53,13 +52,7 @@ func (waJobCreator) AutoAccept() bool { return true } -func (waJobCreator) Create(data string) (Job, error) { - wa := new(WaterwayArea) - if err := common.FromJSONString(data, wa); err != nil { - return nil, err - } - return wa, nil -} +func (waJobCreator) Create() Job { return new(WaterwayArea) } func (waJobCreator) Depends() []string { return []string{
--- a/pkg/imports/wg.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/wg.go Mon Feb 11 18:35:01 2019 +0100 @@ -23,7 +23,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap" "gemma.intevation.de/gemma/pkg/soap/erdms" @@ -53,13 +52,7 @@ func (wgJobCreator) AutoAccept() bool { return true } -func (wgJobCreator) Create(data string) (Job, error) { - wg := new(WaterwayGauge) - if err := common.FromJSONString(data, wg); err != nil { - return nil, err - } - return wg, nil -} +func (wgJobCreator) Create() Job { return new(WaterwayGauge) } func (wgJobCreator) Depends() []string { return []string{
--- a/pkg/imports/wp.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/wp.go Mon Feb 11 18:35:01 2019 +0100 @@ -30,7 +30,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/wfs" @@ -61,13 +60,7 @@ RegisterJobCreator(WPJobKind, wpJobCreator{}) } -func (wpJobCreator) Create(data string) (Job, error) { - wp := new(WaterwayProfiles) - if err := common.FromJSONString(data, wp); err != nil { - return nil, err - } - return wp, nil -} +func (wpJobCreator) Create() Job { return new(WaterwayProfiles) } func (wpJobCreator) AutoAccept() bool { return false }
--- a/pkg/imports/wx.go Mon Feb 11 16:49:18 2019 +0100 +++ b/pkg/imports/wx.go Mon Feb 11 18:35:01 2019 +0100 @@ -22,7 +22,6 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -52,13 +51,7 @@ func (wxJobCreator) AutoAccept() bool { return true } -func (wxJobCreator) Create(data string) (Job, error) { - wx := new(WaterwayAxis) - if err := common.FromJSONString(data, wx); err != nil { - return nil, err - } - return wx, nil -} +func (wxJobCreator) Create() Job { return new(WaterwayAxis) } func (wxJobCreator) Depends() []string { return []string{