prepare indirect zfs transfer and multi-transfer
This commit is contained in:
13
app.go
13
app.go
@@ -478,7 +478,7 @@ func (a *App) Transfer() error {
|
||||
defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
|
||||
|
||||
for _, src := range a.sources {
|
||||
backedUp := false
|
||||
dests := make([]Addr, 0)
|
||||
for _, dest := range a.destinations {
|
||||
dest2 := dest.Append("/" + src.Box() + "/" + src.Path())
|
||||
if dest2.Online() {
|
||||
@@ -486,18 +486,17 @@ func (a *App) Transfer() error {
|
||||
log.WithFields(log.Fields{"app": a.name, "call": "Mkdir", "attr": dest, "error": err}).Errorf("")
|
||||
return err
|
||||
}
|
||||
if err := TransferZfs(src, dest2); err != nil {
|
||||
log.WithFields(log.Fields{"app": a.name, "call": "TransferZfs", "src": src, "dest": dest, "error": err}).Errorf("")
|
||||
return err
|
||||
}
|
||||
if err := dest2.SetManaged(true); err != nil {
|
||||
log.WithFields(log.Fields{"app": a.name, "call": "SetManaged", "src": src, "dest": dest, "error": err}).Errorf("")
|
||||
return err
|
||||
}
|
||||
backedUp = true
|
||||
dests = append(dests, dest2)
|
||||
}
|
||||
}
|
||||
if backedUp {
|
||||
if n, err := TransferZfs(src, dests); err != nil {
|
||||
log.WithFields(log.Fields{"app": a.name, "call": "TransferZfs", "src": src, "dests": dests, "error": err}).Errorf("")
|
||||
return err
|
||||
} else if n > 0 {
|
||||
if err := src.SetBackedUp(true); err != nil {
|
||||
log.WithFields(log.Fields{"app": a.name, "call": "SetBackedUp", "src": src, "error": err}).Errorf("")
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user