1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-06 06:26:46 +00:00

feature(worker): implemented mirror role (master/slave) option

这个提交包含在:
bigeagle
2016-04-29 22:38:47 +08:00
父节点 8399417880
当前提交 56459f2ce0
共有 4 个文件被更改,包括 22 次插入1 次删除

查看文件

@@ -90,6 +90,16 @@ func (w *Worker) initProviders() {
}
logDir = formatLogDir(logDir, mirror)
// IsMaster
isMaster := true
if mirror.Role == "slave" {
isMaster = false
} else {
if mirror.Role != "" && mirror.Role != "master" {
logger.Warningf("Invalid role configuration for %s", mirror.Name)
}
}
var provider mirrorProvider
switch mirror.Provider {
@@ -105,6 +115,7 @@ func (w *Worker) initProviders() {
env: mirror.Env,
}
p, err := newCmdProvider(pc)
p.isMaster = isMaster
if err != nil {
panic(err)
}
@@ -123,6 +134,7 @@ func (w *Worker) initProviders() {
interval: time.Duration(mirror.Interval) * time.Minute,
}
p, err := newRsyncProvider(rc)
p.isMaster = isMaster
if err != nil {
panic(err)
}
@@ -142,6 +154,7 @@ func (w *Worker) initProviders() {
interval: time.Duration(mirror.Interval) * time.Minute,
}
p, err := newTwoStageRsyncProvider(rc)
p.isMaster = isMaster
if err != nil {
panic(err)
}
@@ -395,7 +408,7 @@ func (w *Worker) updateStatus(jobMsg jobMessage) {
smsg := MirrorStatus{
Name: jobMsg.name,
Worker: w.cfg.Global.Name,
IsMaster: true,
IsMaster: p.IsMaster(),
Status: jobMsg.status,
Upstream: p.Upstream(),
Size: "unknown",