From 5e5fc9b2cbd5e4f2a91ab2e2d7425a7b02e58b5e Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Mon, 16 May 2016 13:57:30 +0800 Subject: [PATCH] fixes --- dao/replication_job.go | 3 ++- job/config/config.go | 5 +++-- job/imgout/statehandlers.go | 3 +++ job/statemachine.go | 9 ++++++--- job/workerpool.go | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/dao/replication_job.go b/dao/replication_job.go index 695464621..4e049d182 100644 --- a/dao/replication_job.go +++ b/dao/replication_job.go @@ -2,6 +2,7 @@ package dao import ( "fmt" + "github.com/astaxie/beego/orm" "github.com/vmware/harbor/models" ) @@ -107,7 +108,7 @@ func UpdateRepJobStatus(id int64, status string) error { } num, err := o.Update(&j, "Status") if num == 0 { - err = fmt.Errorf("Failed to update replication job with id: %d", id) + err = fmt.Errorf("Failed to update replication job with id: %d %s", id, err.Error()) } return err } diff --git a/job/config/config.go b/job/config/config.go index 553db13c2..8fb90c360 100644 --- a/job/config/config.go +++ b/job/config/config.go @@ -1,9 +1,10 @@ package config import ( - "github.com/vmware/harbor/utils/log" "os" "strconv" + + "github.com/vmware/harbor/utils/log" ) const defaultMaxWorkers int = 10 @@ -20,7 +21,7 @@ func init() { maxJobWorkers = defaultMaxWorkers } - localRegURL := os.Getenv("LOCAL_REGISTRY_URL") + localRegURL = os.Getenv("LOCAL_REGISTRY_URL") if len(localRegURL) == 0 { localRegURL = "http://registry:5000/" } diff --git a/job/imgout/statehandlers.go b/job/imgout/statehandlers.go index d89766868..36c3bd2cf 100644 --- a/job/imgout/statehandlers.go +++ b/job/imgout/statehandlers.go @@ -67,6 +67,9 @@ type BaseHandler struct { func InitBaseHandler(repository, srcURL, srcSecretKey, dstURL, dstUsr, dstPwd string, tags []string, logger *utils.Logger) (*BaseHandler, error) { + logger.Infof("initializing base handler: repository: %s, tags: %v, source URL: %s, destination URL: %s, destination user: %s", + repository, tags, srcURL, dstURL, dstUsr) + base := &BaseHandler{ repository: repository, tags: tags, diff --git a/job/statemachine.go b/job/statemachine.go index 8593d4df9..e1b4059cf 100644 --- a/job/statemachine.go +++ b/job/statemachine.go @@ -141,12 +141,15 @@ func (sm *JobSM) Init() { sm.lock = &sync.Mutex{} sm.Handlers = make(map[string]StateHandler) sm.Transitions = make(map[string]map[string]struct{}) - sm.AddTransition(models.JobPending, models.JobRunning, StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobRunning}) - sm.Handlers[models.JobError] = StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobError} - sm.Handlers[models.JobStopped] = StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobStopped} + } func (sm *JobSM) Reset(jid int64) error { sm.JobID = jid + + sm.AddTransition(models.JobPending, models.JobRunning, StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobRunning}) + sm.Handlers[models.JobError] = StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobError} + sm.Handlers[models.JobStopped] = StatusUpdater{DummyHandler{JobID: sm.JobID}, models.JobStopped} + //init parms job, err := dao.GetRepJob(sm.JobID) if err != nil { diff --git a/job/workerpool.go b/job/workerpool.go index 8606df35e..44d0e2762 100644 --- a/job/workerpool.go +++ b/job/workerpool.go @@ -43,7 +43,7 @@ func (w *Worker) Stop() { func (w *Worker) handleRepJob(id int64) { err := w.SM.Reset(id) if err != nil { - log.Errorf("Worker %d, failed to re-initialize statemachine, error: %v", err) + log.Errorf("Worker %d, failed to re-initialize statemachine, error: %v", w.ID, err) err2 := dao.UpdateRepJobStatus(id, models.JobError) if err2 != nil { log.Errorf("Failed to update job status to ERROR, error:%v", err2)