diff --git a/src/jobservice_v2/job/impl/logger/job_logger.go b/src/jobservice_v2/job/impl/logger/job_logger.go index d4b87f7e8..3033c101f 100644 --- a/src/jobservice_v2/job/impl/logger/job_logger.go +++ b/src/jobservice_v2/job/impl/logger/job_logger.go @@ -12,6 +12,7 @@ import ( //It used in the job to output logs to the logfile. type JobLogger struct { backendLogger *log.Logger + streamRef *os.File } //New logger @@ -26,9 +27,20 @@ func New(logPath string, level string) logger.Interface { return &JobLogger{ backendLogger: backendLogger, + streamRef: f, } } +//Close the opened io stream +//Implements logger.Closer interface +func (jl *JobLogger) Close() error { + if jl.streamRef != nil { + jl.streamRef.Close() + } + + return nil +} + //Debug ... func (jl *JobLogger) Debug(v ...interface{}) { jl.backendLogger.Debug(v...) diff --git a/src/jobservice_v2/job/impl/replication_job.go b/src/jobservice_v2/job/impl/replication_job.go index 24706e9cd..a908a20fe 100644 --- a/src/jobservice_v2/job/impl/replication_job.go +++ b/src/jobservice_v2/job/impl/replication_job.go @@ -8,6 +8,8 @@ import ( "strings" "time" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" "github.com/vmware/harbor/src/jobservice_v2/opm" "github.com/vmware/harbor/src/jobservice_v2/errs" @@ -59,6 +61,9 @@ func (rj *ReplicationJob) Run(ctx env.JobContext, params map[string]interface{}) if v, ok := ctx.Get("email_from"); ok { fmt.Printf("Get prop form context: email_from=%s\n", v) } + if u, err := dao.GetUser(models.User{}); err == nil { + fmt.Printf("u=%#+v\n", u) + } /*if 1 != 0 { return errors.New("I suicide") diff --git a/src/jobservice_v2/logger/closer.go b/src/jobservice_v2/logger/closer.go new file mode 100644 index 000000000..224716956 --- /dev/null +++ b/src/jobservice_v2/logger/closer.go @@ -0,0 +1,9 @@ +// Copyright 2018 The Harbor Authors. All rights reserved. + +package logger + +//Closer defines method to close the open io stream used by logger. +type Closer interface { + //Close the opened io stream + Close() error +} diff --git a/src/jobservice_v2/pool/redis_job_wrapper.go b/src/jobservice_v2/pool/redis_job_wrapper.go index 28895da1e..91a08e0bb 100644 --- a/src/jobservice_v2/pool/redis_job_wrapper.go +++ b/src/jobservice_v2/pool/redis_job_wrapper.go @@ -9,6 +9,7 @@ import ( "github.com/vmware/harbor/src/jobservice_v2/env" "github.com/vmware/harbor/src/jobservice_v2/errs" "github.com/vmware/harbor/src/jobservice_v2/job" + "github.com/vmware/harbor/src/jobservice_v2/logger" "github.com/vmware/harbor/src/jobservice_v2/opm" ) @@ -48,6 +49,11 @@ func (rj *RedisJob) Run(j *work.Job) error { runningJob = Wrap(rj.job) defer func() { + //Close open io stream first + if closer, ok := execContext.GetLogger().(logger.Closer); ok { + closer.Close() + } + if err == nil { return //nothing need to do }