X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/53f785c298338645b6880f22f26b0c36a7cfab4d..2255281ed7406e7c10027ed778f53ee28e6869fa:/services/datamanager/summary/file.go diff --git a/services/datamanager/summary/file.go b/services/datamanager/summary/file.go index ce7d687412..18b3aec819 100644 --- a/services/datamanager/summary/file.go +++ b/services/datamanager/summary/file.go @@ -26,6 +26,11 @@ var ( readDataFrom string ) +// DataFetcher to fetch data from keep servers +type DataFetcher func(arvLogger *logger.Logger, + readCollections *collection.ReadCollections, + keepServerInfo *keep.ReadServers) + func init() { flag.StringVar(&writeDataTo, "write-data-to", @@ -37,7 +42,7 @@ func init() { "Avoid network i/o and read summary data from this file instead. Used for development only.") } -// Writes data we've read to a file. +// MaybeWriteData writes data we've read to a file. // // This is useful for development, so that we don't need to read all // our data from the network every time we tweak something. @@ -49,40 +54,45 @@ func MaybeWriteData(arvLogger *logger.Logger, keepServerInfo keep.ReadServers) bool { if writeDataTo == "" { return false - } else { - summaryFile, err := os.Create(writeDataTo) - if err != nil { - loggerutil.FatalWithMessage(arvLogger, - fmt.Sprintf("Failed to open %s: %v", writeDataTo, err)) - } - defer summaryFile.Close() + } + summaryFile, err := os.Create(writeDataTo) + if err != nil { + loggerutil.FatalWithMessage(arvLogger, + fmt.Sprintf("Failed to open %s: %v", writeDataTo, err)) + } + defer summaryFile.Close() - enc := gob.NewEncoder(summaryFile) - data := serializedData{ - ReadCollections: readCollections, - KeepServerInfo: keepServerInfo} - err = enc.Encode(data) - if err != nil { - loggerutil.FatalWithMessage(arvLogger, - fmt.Sprintf("Failed to write summary data: %v", err)) - } - log.Printf("Wrote summary data to: %s", writeDataTo) - return true + enc := gob.NewEncoder(summaryFile) + data := serializedData{ + ReadCollections: readCollections, + KeepServerInfo: keepServerInfo} + err = enc.Encode(data) + if err != nil { + loggerutil.FatalWithMessage(arvLogger, + fmt.Sprintf("Failed to write summary data: %v", err)) } + log.Printf("Wrote summary data to: %s", writeDataTo) + return true } -// Reads data that we've written to a file. +// ShouldReadData should not be used outside of development +func ShouldReadData() bool { + return readDataFrom != "" +} + +// ReadData reads data that we've written to a file. // // This is useful for development, so that we don't need to read all // our data from the network every time we tweak something. // // 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 { @@ -107,6 +117,5 @@ func MaybeReadData(arvLogger *logger.Logger, *readCollections = data.ReadCollections *keepServerInfo = data.KeepServerInfo log.Printf("Read summary data from: %s", readDataFrom) - return true } }