aboutsummaryrefslogtreecommitdiff
path: root/spool/load.go
diff options
context:
space:
mode:
Diffstat (limited to 'spool/load.go')
-rw-r--r--spool/load.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/spool/load.go b/spool/load.go
new file mode 100644
index 0000000..282fdc6
--- /dev/null
+++ b/spool/load.go
@@ -0,0 +1,40 @@
+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
+}