cleanup and add a few stuff for http
This commit is contained in:
50
box.go
50
box.go
@@ -7,31 +7,21 @@ import (
|
||||
|
||||
"github.com/silenceper/pool"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/crypto/ssh"
|
||||
)
|
||||
|
||||
type Box struct {
|
||||
name string
|
||||
addr string
|
||||
user string
|
||||
key string
|
||||
zfs *BoxZfs
|
||||
sshPool pool.Pool
|
||||
created bool
|
||||
online bool
|
||||
allowDirectConnect bool
|
||||
mx sync.Mutex
|
||||
name string
|
||||
addr string
|
||||
user string
|
||||
key string
|
||||
zfs *BoxZfs
|
||||
sshPool pool.Pool
|
||||
created bool
|
||||
online bool
|
||||
mx sync.Mutex
|
||||
}
|
||||
|
||||
type BoxSshPool struct {
|
||||
signer ssh.Signer
|
||||
config *ssh.ClientConfig
|
||||
client *ssh.Client
|
||||
logged bool
|
||||
mx sync.Mutex
|
||||
}
|
||||
|
||||
func (c *Config) NewBox(name, addr, user, key string, direct bool) (b *Box, err error) {
|
||||
func (c *Config) NewBox(name, addr, user, key string) (b *Box, err error) {
|
||||
log.WithFields(log.Fields{"name": name, "addr": addr, "user": user, "key": key}).Debugf("starting")
|
||||
defer log.WithFields(log.Fields{"name": name, "addr": addr, "user": user, "key": key}).Debugf("done")
|
||||
|
||||
@@ -56,10 +46,9 @@ func (c *Config) NewBox(name, addr, user, key string, direct bool) (b *Box, err
|
||||
zfs: &BoxZfs{
|
||||
online: false,
|
||||
},
|
||||
sshPool: p,
|
||||
online: false,
|
||||
created: true,
|
||||
allowDirectConnect: true, //FIXME use direct
|
||||
sshPool: p,
|
||||
online: false,
|
||||
created: true,
|
||||
}
|
||||
|
||||
b.zfs.box = b
|
||||
@@ -145,17 +134,12 @@ func TransferZfs(from Addr, to []Addr) (int, error) {
|
||||
|
||||
count := 0
|
||||
|
||||
dests := make([]Addr, 0)
|
||||
for _, dest := range to {
|
||||
if cfg.box[from.Box()].allowDirectConnect && cfg.box[dest.Box()].allowDirectConnect {
|
||||
if err := TransferDirectZfs(from, dest); err != nil {
|
||||
log.WithFields(log.Fields{"from": from, "to": to, "call": "TransferDirectZfs", "attr": dest, "error": err}).Errorf("")
|
||||
return count, err
|
||||
} else {
|
||||
count++
|
||||
}
|
||||
if err := TransferDirectZfs(from, dest); err != nil {
|
||||
log.WithFields(log.Fields{"from": from, "to": to, "call": "TransferDirectZfs", "attr": dest, "error": err}).Errorf("")
|
||||
return count, err
|
||||
} else {
|
||||
dests = append(dests, dest)
|
||||
count++
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user