zrepl/cmd/handler.go

36 lines
810 B
Go
Raw Normal View History

2017-04-26 20:21:18 +02:00
package main
import (
"github.com/zrepl/zrepl/model"
"github.com/zrepl/zrepl/rpc"
2017-04-26 20:25:53 +02:00
"github.com/zrepl/zrepl/zfs"
"io"
2017-04-26 20:21:18 +02:00
)
2017-04-26 20:25:53 +02:00
type Handler struct{}
2017-04-26 20:21:18 +02:00
func (h Handler) HandleFilesystemRequest(r rpc.FilesystemRequest) (roots []model.Filesystem, err error) {
roots = make([]model.Filesystem, 0, 10)
for _, root := range r.Roots {
var zfsRoot model.Filesystem
if zfsRoot, err = zfs.FilesystemsAtRoot(root); err != nil {
return
}
roots = append(roots, zfsRoot)
}
return
}
func (h Handler) HandleInitialTransferRequest(r rpc.InitialTransferRequest) (io.Reader, error) {
// TODO ACL
return zfs.InitialSend(r.Snapshot)
}
func (h Handler) HandleIncrementalTransferRequest(r rpc.IncrementalTransferRequest) (io.Reader, error) {
// TODO ACL
return zfs.IncrementalSend(r.FromSnapshot, r.ToSnapshot)
}