7748: use local variables for arvLogger.Update
[arvados.git] / services / datamanager / summary / file.go
index 18b3aec8190408897d2857e3e6b2a212936bc21c..9f1eab6641f288d50cfa68cab42c10e911a7ba81 100644 (file)
@@ -9,7 +9,6 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/logger"
        "git.curoverse.com/arvados.git/services/datamanager/collection"
        "git.curoverse.com/arvados.git/services/datamanager/keep"
-       "git.curoverse.com/arvados.git/services/datamanager/loggerutil"
        "log"
        "os"
 )
@@ -22,7 +21,7 @@ type serializedData struct {
 }
 
 var (
-       writeDataTo  string
+       WriteDataTo  string
        readDataFrom string
 )
 
@@ -32,7 +31,7 @@ type DataFetcher func(arvLogger *logger.Logger,
        keepServerInfo *keep.ReadServers)
 
 func init() {
-       flag.StringVar(&writeDataTo,
+       flag.StringVar(&WriteDataTo,
                "write-data-to",
                "",
                "Write summary of data received to this file. Used for development only.")
@@ -51,14 +50,13 @@ func init() {
 // working with stale data.
 func MaybeWriteData(arvLogger *logger.Logger,
        readCollections collection.ReadCollections,
-       keepServerInfo keep.ReadServers) bool {
-       if writeDataTo == "" {
-               return false
+       keepServerInfo keep.ReadServers) error {
+       if WriteDataTo == "" {
+               return nil
        }
-       summaryFile, err := os.Create(writeDataTo)
+       summaryFile, err := os.Create(WriteDataTo)
        if err != nil {
-               loggerutil.FatalWithMessage(arvLogger,
-                       fmt.Sprintf("Failed to open %s: %v", writeDataTo, err))
+               return err
        }
        defer summaryFile.Close()
 
@@ -68,11 +66,10 @@ func MaybeWriteData(arvLogger *logger.Logger,
                KeepServerInfo:  keepServerInfo}
        err = enc.Encode(data)
        if err != nil {
-               loggerutil.FatalWithMessage(arvLogger,
-                       fmt.Sprintf("Failed to write summary data: %v", err))
+               return err
        }
-       log.Printf("Wrote summary data to: %s", writeDataTo)
-       return true
+       log.Printf("Wrote summary data to: %s", WriteDataTo)
+       return nil
 }
 
 // ShouldReadData should not be used outside of development
@@ -91,13 +88,13 @@ func ReadData(arvLogger *logger.Logger,
        readCollections *collection.ReadCollections,
        keepServerInfo *keep.ReadServers) {
        if readDataFrom == "" {
-               loggerutil.FatalWithMessage(arvLogger,
-                       "ReadData() called with empty filename.")
+               readCollections.Err = fmt.Errorf("ReadData() called with empty filename.")
+               return
        } else {
                summaryFile, err := os.Open(readDataFrom)
                if err != nil {
-                       loggerutil.FatalWithMessage(arvLogger,
-                               fmt.Sprintf("Failed to open %s: %v", readDataFrom, err))
+                       readCollections.Err = err
+                       return
                }
                defer summaryFile.Close()
 
@@ -105,8 +102,8 @@ func ReadData(arvLogger *logger.Logger,
                data := serializedData{}
                err = dec.Decode(&data)
                if err != nil {
-                       loggerutil.FatalWithMessage(arvLogger,
-                               fmt.Sprintf("Failed to read summary data: %v", err))
+                       readCollections.Err = err
+                       return
                }
 
                // re-summarize data, so that we can update our summarizing