Merge branch '6264-cwl-runner' closes #6264
[arvados.git] / services / datamanager / summary / file.go
index 3a853bca3e6d30001679f5c8da667973ad6fc205..8c37e99ade723a5c51a1f80f6c203dce504100d3 100644 (file)
@@ -14,11 +14,22 @@ import (
        "os"
 )
 
+// Used to locally cache data read from servers to reduce execution
+// time when developing. Not for use in production.
+type serializedData struct {
+       ReadCollections collection.ReadCollections
+       KeepServerInfo  keep.ReadServers
+}
+
 var (
        writeDataTo  string
        readDataFrom string
 )
 
+type DataFetcher func(arvLogger *logger.Logger,
+       readCollections *collection.ReadCollections,
+       keepServerInfo *keep.ReadServers)
+
 func init() {
        flag.StringVar(&writeDataTo,
                "write-data-to",
@@ -64,6 +75,10 @@ func MaybeWriteData(arvLogger *logger.Logger,
        }
 }
 
+func ShouldReadData() bool {
+       return readDataFrom != ""
+}
+
 // Reads data that we've written to a file.
 //
 // This is useful for development, so that we don't need to read all
@@ -71,11 +86,12 @@ func MaybeWriteData(arvLogger *logger.Logger,
 //
 // This should not be used outside of development, since you'll be
 // working with stale data.
-func MaybeReadData(arvLogger *logger.Logger,
+func ReadData(arvLogger *logger.Logger,
        readCollections *collection.ReadCollections,
-       keepServerInfo *keep.ReadServers) bool {
+       keepServerInfo *keep.ReadServers) {
        if readDataFrom == "" {
-               return false
+               loggerutil.FatalWithMessage(arvLogger,
+                       "ReadData() called with empty filename.")
        } else {
                summaryFile, err := os.Open(readDataFrom)
                if err != nil {
@@ -94,12 +110,11 @@ func MaybeReadData(arvLogger *logger.Logger,
 
                // re-summarize data, so that we can update our summarizing
                // functions without needing to do all our network i/o
-               data.ReadCollections.Summarize()
-               keep.ComputeBlockReplicationCounts(&data.KeepServerInfo)
+               data.ReadCollections.Summarize(arvLogger)
+               data.KeepServerInfo.Summarize(arvLogger)
 
                *readCollections = data.ReadCollections
                *keepServerInfo = data.KeepServerInfo
                log.Printf("Read summary data from: %s", readDataFrom)
-               return true
        }
 }