view pkg/imports/gmsched.go @ 1664:819f67c31dfb

Imports: Stripped schema prefixes from table dependencies.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 23 Dec 2018 12:57:28 +0100
parents 51a0ba4ede41
children
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2018 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

package imports

import (
	"log"

	"gemma.intevation.de/gemma/pkg/common"
	"gemma.intevation.de/gemma/pkg/scheduler"
)

func init() {
	scheduler.RegisterAction("gm", scheduledGM)
}

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("error: No config found for id %d.\n", id)
		return
	}
	if cfg.URL == nil {
		log.Println("error: No URL specified")
		return
	}
	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)
}