40 lines
928 B
Go
40 lines
928 B
Go
package spool
|
|
|
|
import (
|
|
"bareos-zabbix-check/config"
|
|
"bareos-zabbix-check/job"
|
|
"encoding/csv"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path"
|
|
"strconv"
|
|
)
|
|
|
|
// Load loads a spool file in path
|
|
func (s *Spool) Load(c *config.Config) (err error) {
|
|
s.config = c
|
|
// We read the spool
|
|
file, err := os.Open(path.Join(c.WorkDir(), spoolFile))
|
|
if err != nil {
|
|
return fmt.Errorf("Couldn't open spool file, starting from scratch: %s", err)
|
|
}
|
|
defer file.Close()
|
|
lines, err := csv.NewReader(file).ReadAll()
|
|
if err != nil {
|
|
return fmt.Errorf("Corrupted spool file, starting from scratch : %s", err)
|
|
}
|
|
if c.Verbose() {
|
|
log.Printf("Spool file content : %v\n", lines)
|
|
}
|
|
|
|
for _, line := range lines {
|
|
var i int
|
|
i, err = strconv.Atoi(line[1])
|
|
if err != nil {
|
|
return fmt.Errorf("Corrupted spool file : couldn't parse timestamp entry")
|
|
}
|
|
s.jobs = append(s.jobs, job.Job{Name: line[0], Timestamp: uint64(i), Success: true})
|
|
}
|
|
return
|
|
}
|