X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/558574e31f56db08c82ca7c2b955e74df04242dd..d542de20d8617f5823ab8f675c114f78aaf4a924:/services/datamanager/summary/file.go diff --git a/services/datamanager/summary/file.go b/services/datamanager/summary/file.go index 18b3aec819..6e463d7670 100644 --- a/services/datamanager/summary/file.go +++ b/services/datamanager/summary/file.go @@ -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,17 +21,17 @@ type serializedData struct { } var ( - writeDataTo string + WriteDataTo string readDataFrom string ) // DataFetcher to fetch data from keep servers type DataFetcher func(arvLogger *logger.Logger, readCollections *collection.ReadCollections, - keepServerInfo *keep.ReadServers) + keepServerInfo *keep.ReadServers) error 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 @@ -89,33 +86,30 @@ func ShouldReadData() bool { // working with stale data. func ReadData(arvLogger *logger.Logger, readCollections *collection.ReadCollections, - keepServerInfo *keep.ReadServers) { + keepServerInfo *keep.ReadServers) error { if readDataFrom == "" { - loggerutil.FatalWithMessage(arvLogger, - "ReadData() called with empty filename.") - } else { - summaryFile, err := os.Open(readDataFrom) - if err != nil { - loggerutil.FatalWithMessage(arvLogger, - fmt.Sprintf("Failed to open %s: %v", readDataFrom, err)) - } - defer summaryFile.Close() + return fmt.Errorf("ReadData() called with empty filename.") + } + summaryFile, err := os.Open(readDataFrom) + if err != nil { + return err + } + defer summaryFile.Close() - dec := gob.NewDecoder(summaryFile) - data := serializedData{} - err = dec.Decode(&data) - if err != nil { - loggerutil.FatalWithMessage(arvLogger, - fmt.Sprintf("Failed to read summary data: %v", err)) - } + dec := gob.NewDecoder(summaryFile) + data := serializedData{} + err = dec.Decode(&data) + if err != nil { + return err + } - // re-summarize data, so that we can update our summarizing - // functions without needing to do all our network i/o - data.ReadCollections.Summarize(arvLogger) - data.KeepServerInfo.Summarize(arvLogger) + // re-summarize data, so that we can update our summarizing + // functions without needing to do all our network i/o + data.ReadCollections.Summarize(arvLogger) + data.KeepServerInfo.Summarize(arvLogger) - *readCollections = data.ReadCollections - *keepServerInfo = data.KeepServerInfo - log.Printf("Read summary data from: %s", readDataFrom) - } + *readCollections = data.ReadCollections + *keepServerInfo = data.KeepServerInfo + log.Printf("Read summary data from: %s", readDataFrom) + return nil }