X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a56406d730f2a07dd442b9e99ef9dab7b7d81895..b92203411f6f6adaef1c2af62495830f13f4fa14:/services/datamanager/summary/file.go diff --git a/services/datamanager/summary/file.go b/services/datamanager/summary/file.go index 3a853bca3e..8c37e99ade 100644 --- a/services/datamanager/summary/file.go +++ b/services/datamanager/summary/file.go @@ -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 } }