diff pkg/imports/gmsched.go @ 1661:51a0ba4ede41

Scheduled imports: Made gauge measurement import able to be scheduled.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 21 Dec 2018 14:15:33 +0100
parents 85386ad17d34
children
line wrap: on
line diff
--- a/pkg/imports/gmsched.go	Fri Dec 21 13:04:46 2018 +0100
+++ b/pkg/imports/gmsched.go	Fri Dec 21 14:15:33 2018 +0100
@@ -16,6 +16,7 @@
 import (
 	"log"
 
+	"gemma.intevation.de/gemma/pkg/common"
 	"gemma.intevation.de/gemma/pkg/scheduler"
 )
 
@@ -25,14 +26,41 @@
 
 func scheduledGM(id int64) {
 	log.Println("info: scheduled GM import")
+
 	cfg, err := loadIDConfig(id)
 	if err != nil {
 		log.Printf("error: %v\n", err)
 		return
 	}
 	if cfg == nil {
-		log.Printf("warn: No config found for id %d.\n", id)
+		log.Printf("error: No config found for id %d.\n", id)
+		return
+	}
+	if cfg.URL == nil {
+		log.Println("error: No URL specified")
 		return
 	}
-	// TODO: Implement me!
+	gm := &GaugeMeasurement{
+		URL:      *cfg.URL,
+		Insecure: false,
+	}
+
+	var serialized string
+	if serialized, err = common.ToJSONString(gm); err != nil {
+		log.Printf("error: %v\n", err)
+		return
+	}
+
+	var jobID int64
+	if jobID, err = AddJob(
+		GMJobKind,
+		cfg.User,
+		cfg.SendEMail, cfg.AutoAccept,
+		serialized,
+	); err != nil {
+		log.Printf("error: %v\n", err)
+		return
+	}
+
+	log.Printf("info: added import #%d to queue\n", jobID)
 }