diff --git a/README.md b/README.md index 7bb5acc..03847a7 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,14 @@ Pre-built binary for Linux x86_64 is available at [Github releases](https://gith # Job Run Process -PreSyncing Syncing Success -+-----------+ +-----------+ +-------------+ +--------------+ -| pre-job +--+->| job run +--->| post-exec +-+-->| post-success | -+-----------+ ^ +-----------+ +-------------+ | +--------------+ - | | - | +-----------------+ | Failed - +------+ post-fail |<---------+ - +-----------------+ +PreSyncing Syncing Success ++-----------+ +----------+ +-----------+ +-------------+ +--------------+ +| pre-job +--+->| pre-exec +--->| job run +--->| post-exec +-+-->| post-success | ++-----------+ ^ +----------+ +-----------+ +-------------+ | +--------------+ + | | + | +-----------------+ | Failed + +----------------+ post-fail |<---------------+ + +-----------------+ ``` diff --git a/manager/server_test.go b/manager/server_test.go index 7f4b0ea..e0ece22 100644 --- a/manager/server_test.go +++ b/manager/server_test.go @@ -109,7 +109,7 @@ func TestHTTPServer(t *testing.T) { So(res[_errorKey], ShouldEqual, "invalid workerID "+invalidWorker) }) - Convey("flush disabled jobs", func(ctx C) { + Convey("flush disabled jobs", func(ctx C) { req, err := http.NewRequest("DELETE", baseURL+"/jobs/disabled", nil) So(err, ShouldBeNil) clt := &http.Client{} diff --git a/worker/cgroup.go b/worker/cgroup.go index f25cdd3..cf2b572 100644 --- a/worker/cgroup.go +++ b/worker/cgroup.go @@ -17,7 +17,6 @@ import ( type cgroupHook struct { emptyHook - provider mirrorProvider basePath string baseGroup string created bool @@ -36,7 +35,9 @@ func newCgroupHook(p mirrorProvider, basePath, baseGroup, subsystem, memLimit st subsystem = "cpu" } return &cgroupHook{ - provider: p, + emptyHook: emptyHook{ + provider: p, + }, basePath: basePath, baseGroup: baseGroup, subsystem: subsystem, diff --git a/worker/docker.go b/worker/docker.go index 852e67e..0993417 100644 --- a/worker/docker.go +++ b/worker/docker.go @@ -7,10 +7,9 @@ import ( type dockerHook struct { emptyHook - provider mirrorProvider - image string - volumes []string - options []string + image string + volumes []string + options []string } func newDockerHook(p mirrorProvider, gCfg dockerConfig, mCfg mirrorConfig) *dockerHook { @@ -23,10 +22,12 @@ func newDockerHook(p mirrorProvider, gCfg dockerConfig, mCfg mirrorConfig) *dock options = append(options, mCfg.DockerOptions...) return &dockerHook{ - provider: p, - image: mCfg.DockerImage, - volumes: volumes, - options: options, + emptyHook: emptyHook{ + provider: p, + }, + image: mCfg.DockerImage, + volumes: volumes, + options: options, } } diff --git a/worker/docker_test.go b/worker/docker_test.go index 29526c2..a3bd5ac 100644 --- a/worker/docker_test.go +++ b/worker/docker_test.go @@ -55,8 +55,10 @@ sleep 10 So(err, ShouldBeNil) d := &dockerHook{ - provider: provider, - image: "alpine", + emptyHook: emptyHook{ + provider: provider, + }, + image: "alpine", volumes: []string{ fmt.Sprintf("%s:%s", cmdScript, "/bin/cmd.sh"), }, diff --git a/worker/exec_post_hook.go b/worker/exec_post_hook.go index 22a9ec6..a2c564c 100644 --- a/worker/exec_post_hook.go +++ b/worker/exec_post_hook.go @@ -18,7 +18,6 @@ const ( type execPostHook struct { emptyHook - provider mirrorProvider // exec on success or on failure execOn uint8 @@ -37,9 +36,11 @@ func newExecPostHook(provider mirrorProvider, execOn uint8, command string) (*ex } return &execPostHook{ - provider: provider, - execOn: execOn, - command: cmd, + emptyHook: emptyHook{ + provider: provider, + }, + execOn: execOn, + command: cmd, }, nil } diff --git a/worker/loglimit_hook.go b/worker/loglimit_hook.go index b3ddffb..57b78fa 100644 --- a/worker/loglimit_hook.go +++ b/worker/loglimit_hook.go @@ -14,12 +14,13 @@ import ( type logLimiter struct { emptyHook - provider mirrorProvider } func newLogLimiter(provider mirrorProvider) *logLimiter { return &logLimiter{ - provider: provider, + emptyHook: emptyHook{ + provider: provider, + }, } } diff --git a/worker/provider.go b/worker/provider.go index 90c9c0e..7ea6b60 100644 --- a/worker/provider.go +++ b/worker/provider.go @@ -141,10 +141,10 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider { retry: mirror.Retry, } p, err := newRsyncProvider(rc) - p.isMaster = isMaster if err != nil { panic(err) } + p.isMaster = isMaster provider = p case provTwoStageRsync: rc := twoStageRsyncConfig{ diff --git a/worker/zfs_hook.go b/worker/zfs_hook.go index 36f3e50..35c3cdb 100644 --- a/worker/zfs_hook.go +++ b/worker/zfs_hook.go @@ -11,14 +11,15 @@ import ( type zfsHook struct { emptyHook - provider mirrorProvider - zpool string + zpool string } func newZfsHook(provider mirrorProvider, zpool string) *zfsHook { return &zfsHook{ - provider: provider, - zpool: zpool, + emptyHook: emptyHook{ + provider: provider, + }, + zpool: zpool, } } @@ -40,12 +41,12 @@ func (z *zfsHook) printHelpMessage() { func (z *zfsHook) preJob() error { workingDir := z.provider.WorkingDir() if _, err := os.Stat(workingDir); os.IsNotExist(err) { - logger.Errorf("Directory %s doesn't exist", workingDir); + logger.Errorf("Directory %s doesn't exist", workingDir) z.printHelpMessage() return err } if err := sh.Command("mountpoint", "-q", workingDir).Run(); err != nil { - logger.Errorf("%s is not a mount point", workingDir); + logger.Errorf("%s is not a mount point", workingDir) z.printHelpMessage() return err }