"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"
)
}
var (
- writeDataTo string
+ WriteDataTo string
readDataFrom string
)
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.")
// 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()
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
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()
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