Use Server.FreezeToFile for the timer

This commit is contained in:
Benjamin Jemlich 2011-04-26 01:31:11 +08:00 committed by Mikkel Krautz
parent bee3327e0f
commit eb4c442be0

View file

@ -10,8 +10,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"gob" "gob"
"io"
"io/ioutil"
"os" "os"
"os/signal" "os/signal"
"log" "log"
@ -190,33 +188,10 @@ func main() {
select { select {
case <-ticker.C: case <-ticker.C:
for sid, server := range servers { for sid, server := range servers {
r := server.FreezeServer() err := server.FreezeToFile(filepath.Join(*datadir, fmt.Sprintf("%v", sid)))
if err != nil { if err != nil {
log.Panicf("Unable to freeze server %v", sid) log.Printf("Unable to freeze server %v: %s", sid, err.String())
} continue
f, err := ioutil.TempFile(*datadir, fmt.Sprintf("%v_", sid))
if err != nil {
log.Panicf("Unable to open file: %", err.String())
}
nwritten, err := io.Copy(f, r)
if err != nil {
log.Panicf("Unable to copy frozen server data: %v bytes, err=%v", nwritten, err)
}
err = r.Close()
if err != nil {
log.Panicf("Unable to freeze server: %v", err)
}
err = f.Sync()
if err != nil {
log.Panicf("Unable to sync frozen file: %v", err)
}
err = f.Close()
if err != nil {
log.Panicf("Unable to freeze server: %v", err)
}
err = os.Rename(f.Name(), filepath.Join(*datadir, fmt.Sprintf("%v", sid)))
if err != nil {
log.Panicf("Unable to freeze server: %v", err)
} }
} }