Skip to content

Commit

Permalink
add jobid to logger
Browse files Browse the repository at this point in the history
Signed-off-by: lengrongfu <1275177125@qq.com>
  • Loading branch information
lengrongfu committed Jul 26, 2023
1 parent db82d6e commit c1ed836
Show file tree
Hide file tree
Showing 22 changed files with 74 additions and 13 deletions.
3 changes: 2 additions & 1 deletion src/jobservice/job/impl/gc/garbage_collection.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ func (gc *GarbageCollector) Run(ctx job.Context, params job.Parameters) error {
return err
}

gc.logger.Infof("start to run gc in job.")
jobID := ctx.Tracker().Job().Info.JobID
gc.logger.Infof("start to run gc in job. jobID: %s", jobID)

// mark
if err := gc.mark(ctx); err != nil {
Expand Down
2 changes: 2 additions & 0 deletions src/jobservice/job/impl/gc/garbage_collection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ func (suite *gcTestSuite) TestRun() {
logger := &mockjobservice.MockJobLogger{}
ctx.On("GetLogger").Return(logger)
ctx.On("OPCommand").Return(job.NilCommand, true)
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

mock.OnAnything(ctx, "Get").Return("core url", true)
mock.OnAnything(ctx, "Checkin").Return(nil)

Expand Down
4 changes: 2 additions & 2 deletions src/jobservice/job/impl/notification/slack_job.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ func (sj *SlackJob) Run(ctx job.Context, params job.Parameters) error {
if err := sj.init(ctx, params); err != nil {
return err
}

sj.logger.Info("start to run slack job")
jobID := ctx.Tracker().Job().Info.JobID
sj.logger.Info("Slack job starting, jobID: ", jobID)

err := sj.execute(params)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion src/jobservice/job/impl/notification/slack_job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func TestSlackJobRun(t *testing.T) {
logger := &mockjobservice.MockJobLogger{}

ctx.On("GetLogger").Return(logger)

ctx.On("Tracker").Return(mockjobservice.NewMockTracker())
rep := &SlackJob{}

// test slack request
Expand Down
3 changes: 2 additions & 1 deletion src/jobservice/job/impl/notification/webhook_job.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ func (wj *WebhookJob) Run(ctx job.Context, params job.Parameters) error {
return err
}

wj.logger.Info("start to run webhook job")
jobID := ctx.Tracker().Job().Info.JobID
wj.logger.Info("Webhook job starting, jobID: ", jobID)

if err := wj.execute(ctx, params); err != nil {
wj.logger.Errorf("exit webhook job, error: %s", err)
Expand Down
1 change: 1 addition & 0 deletions src/jobservice/job/impl/notification/webhook_job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func TestRun(t *testing.T) {
logger := &mockjobservice.MockJobLogger{}

ctx.On("GetLogger").Return(logger)
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

rep := &WebhookJob{}

Expand Down
3 changes: 2 additions & 1 deletion src/jobservice/job/impl/purge/purge.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ func (j *Job) parseParams(params job.Parameters) {
// Run the purge logic here.
func (j *Job) Run(ctx job.Context, params job.Parameters) error {
logger := ctx.GetLogger()
logger.Info("Purge audit job start")
jobID := ctx.Tracker().Job().Info.JobID
logger.Info("Purge audit job start, jobID:", jobID)
logger.Infof("job parameters %+v", params)
if j.shouldStop(ctx) {
logger.Info("received the stop signal, stop the purge job")
Expand Down
1 change: 1 addition & 0 deletions src/jobservice/job/impl/purge/purge_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ func (suite *PurgeJobTestSuite) TestRun() {
logger := &mockjobservice.MockJobLogger{}
ctx.On("GetLogger").Return(logger)
ctx.On("OPCommand").Return(job.NilCommand, true)
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())
auditManager := &mockAudit.Manager{}
auditManager.On("Purge", mock.Anything, 128, []string{}, true).Return(int64(100), nil)
j := &Job{auditMgr: auditManager}
Expand Down
2 changes: 2 additions & 0 deletions src/jobservice/job/impl/replication/replication.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ func (r *Replication) Validate(params job.Parameters) error {
// and calls its function to do the real work
func (r *Replication) Run(ctx job.Context, params job.Parameters) error {
logger := ctx.GetLogger()
jobID := ctx.Tracker().Job().Info.JobID
logger.Info("Replication job starting, jobID: ", jobID)

src, dst, opts, err := parseParams(params)
if err != nil {
Expand Down
7 changes: 5 additions & 2 deletions src/jobservice/job/impl/replication/replication_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import (
"github.com/stretchr/testify/require"

"github.com/goharbor/harbor/src/controller/replication/transfer"
"github.com/goharbor/harbor/src/jobservice/job/impl"
"github.com/goharbor/harbor/src/pkg/reg/model"
mockjobservice "github.com/goharbor/harbor/src/testing/jobservice"
)

func TestParseParam(t *testing.T) {
Expand Down Expand Up @@ -85,6 +85,9 @@ func TestRun(t *testing.T) {
"dst_resource": `{}`,
}
rep := &Replication{}
require.Nil(t, rep.Run(&impl.Context{}, params))

ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())
require.Nil(t, rep.Run(ctx, params))
assert.True(t, transferred)
}
4 changes: 2 additions & 2 deletions src/jobservice/job/impl/sample/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ func (j *Job) Validate(params job.Parameters) error {
// Run the replication logic here.
func (j *Job) Run(ctx job.Context, params job.Parameters) error {
logger := ctx.GetLogger()

logger.Info("Sample job starting")
jobID := ctx.Tracker().Job().Info.JobID
logger.Info("Sample job starting, jobID: ", jobID)

Check warning on line 66 in src/jobservice/job/impl/sample/job.go

View check run for this annotation

Codecov / codecov/patch

src/jobservice/job/impl/sample/job.go#L65-L66

Added lines #L65 - L66 were not covered by tests
defer func() {
logger.Info("Sample job exit")
}()
Expand Down
2 changes: 2 additions & 0 deletions src/jobservice/job/impl/scandataexport/scan_data_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ func (sde *ScanDataExport) Run(ctx job.Context, params job.Parameters) error {

mode := params[export.JobModeKey].(string)
logger := ctx.GetLogger()
jobID := ctx.Tracker().Job().Info.JobID
logger.Info("Scan data export job starting, jobID: ", jobID)
logger.Infof("Scan data export job started in mode : %v", mode)
sde.init()
fileName := fmt.Sprintf("%s/scandata_export_%s.csv", sde.scanDataExportDirPath, params[export.JobID])
Expand Down
10 changes: 10 additions & 0 deletions src/jobservice/job/impl/scandataexport/scan_data_export_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ func (suite *ScanDataExportJobTestSuite) TestRun() {
"projects": []int64{1},
}
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand Down Expand Up @@ -128,6 +129,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithEmptyData() {
params[export.JobModeKey] = export.JobModeExport
params["JobId"] = JobId
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand Down Expand Up @@ -159,6 +161,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunAttributeUpdateError() {
"projects": []int{1},
}
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.Error(err)
Expand Down Expand Up @@ -235,6 +238,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteria() {

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Once()
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand Down Expand Up @@ -297,6 +301,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteria() {

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Times(3)
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand Down Expand Up @@ -359,6 +364,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteriaForRepositoryIdFilte

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Once()
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.Error(err)
Expand Down Expand Up @@ -409,6 +415,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteriaForRepositoryIdFilte

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Once()
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand Down Expand Up @@ -461,6 +468,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteriaForRepositoryIdWithT

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Once()
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.Error(err)
Expand Down Expand Up @@ -511,6 +519,7 @@ func (suite *ScanDataExportJobTestSuite) TestRunWithCriteriaForRepositoryIdWithT

ctx := &mockjobservice.MockJobContext{}
ctx.On("SystemContext").Return(context.TODO()).Once()
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand All @@ -537,6 +546,7 @@ func (suite *ScanDataExportJobTestSuite) TestExportDigestCalculationErrorsOut()
params[export.JobModeKey] = export.JobModeExport
params["JobId"] = JobId
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.Error(err)
Expand Down
3 changes: 2 additions & 1 deletion src/jobservice/job/impl/systemartifact/cleanup.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ func (c *Cleanup) Validate(params job.Parameters) error {

func (c *Cleanup) Run(ctx job.Context, params job.Parameters) error {
logger := ctx.GetLogger()
logger.Infof("Running system data artifact cleanup job...")
jobID := ctx.Tracker().Job().Info.JobID
logger.Infof("Running system data artifact cleanup job, jobID: %d", jobID)
c.init()
numRecordsDeleted, totalSizeReclaimed, err := c.sysArtifactManager.Cleanup(ctx.SystemContext())
if err != nil {
Expand Down
2 changes: 2 additions & 0 deletions src/jobservice/job/impl/systemartifact/cleanup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ func (suite *SystemArtifactCleanupSuite) TestRun() {
mock.OnAnything(suite.sysArtifactMgr, "Cleanup").Return(int64(100), int64(100), nil)
params := job.Parameters{}
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.NoError(err)
Expand All @@ -38,6 +39,7 @@ func (suite *SystemArtifactCleanupSuite) TestRunFailure() {
mock.OnAnything(suite.sysArtifactMgr, "Cleanup").Return(int64(0), int64(0), errors.New("test error"))
params := job.Parameters{}
ctx := &mockjobservice.MockJobContext{}
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())

err := suite.job.Run(ctx, params)
suite.Error(err)
Expand Down
2 changes: 2 additions & 0 deletions src/pkg/p2p/preheat/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ func (j *Job) Validate(params job.Parameters) error {
func (j *Job) Run(ctx job.Context, params job.Parameters) error {
// Get logger
myLogger := ctx.GetLogger()
jobID := ctx.Tracker().Job().Info.JobID
myLogger.Info("Preheat job starting, jobID: ", jobID)

// preheatJobRunningError is an internal error format
preheatJobRunningError := func(err error) error {
Expand Down
2 changes: 2 additions & 0 deletions src/pkg/p2p/preheat/job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"github.com/goharbor/harbor/src/pkg/p2p/preheat/provider"
"github.com/goharbor/harbor/src/pkg/p2p/preheat/provider/auth"
"github.com/goharbor/harbor/src/testing/jobservice"
mockjobservice "github.com/goharbor/harbor/src/testing/jobservice"
)

// JobTestSuite is test suite of preheating job.
Expand Down Expand Up @@ -67,6 +68,7 @@ func (suite *JobTestSuite) SetupSuite() {
logger := &jobservice.MockJobLogger{}
ctx.On("GetLogger").Return(logger)
ctx.On("OPCommand").Return(job.StopCommand, false)
ctx.On("Tracker").Return(mockjobservice.NewMockTracker())
suite.context = ctx
}

Expand Down
2 changes: 2 additions & 0 deletions src/pkg/scan/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ func (j *Job) Validate(params job.Parameters) error {
func (j *Job) Run(ctx job.Context, params job.Parameters) error {
// Get logger
myLogger := ctx.GetLogger()
jobID := ctx.Tracker().Job().Info.JobID
myLogger.Info("Scan job starting, jobID: ", jobID)

// shouldStop checks if the job should be stopped
shouldStop := func() bool {
Expand Down
2 changes: 1 addition & 1 deletion src/pkg/scan/job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func (suite *JobTestSuite) TestJob() {

ctx.On("GetLogger").Return(lg)
ctx.On("OPCommand").Return(job.NilCommand, false)

ctx.On("Tracker").Return(mockjobservice.NewMockTracker())
r := &scanner.Registration{
ID: 0,
UUID: "uuid",
Expand Down
3 changes: 2 additions & 1 deletion src/pkg/task/sweep_job.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,8 @@ func (sj *SweepJob) Run(ctx job.Context, params job.Parameters) error {
return err
}

sj.logger.Info("start to run sweep job")
jobID := ctx.Tracker().Job().Info.JobID
sj.logger.Info("Sweep job starting, jobID: ", jobID)

if err := sj.mgr.FixDanglingStateExecution(ctx.SystemContext()); err != nil {
sj.logger.Errorf("failed to fix dangling state executions, error: %v", err)
Expand Down
1 change: 1 addition & 0 deletions src/pkg/task/sweep_job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ func (suite *sweepJobTestSuite) TestRun() {
// test stop case
j := &SweepJob{mgr: suite.sweepMgr}
suite.jobCtx.On("OPCommand").Return(job.StopCommand, true).Once()
suite.jobCtx.On("Tracker").Return(mockjobservice.NewMockTracker())
suite.sweepMgr.On("FixDanglingStateExecution", context.TODO()).Return(nil)
err := j.Run(suite.jobCtx, params)
suite.NoError(err, "stop job should not return error")
Expand Down
26 changes: 26 additions & 0 deletions src/testing/jobservice/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (

"github.com/stretchr/testify/mock"

"github.com/goharbor/harbor/src/jobservice/common/utils"
"github.com/goharbor/harbor/src/jobservice/job"
"github.com/goharbor/harbor/src/jobservice/logger"
)
Expand Down Expand Up @@ -119,3 +120,28 @@ func (mjl *MockJobLogger) Fatal(v ...interface{}) {
func (mjl *MockJobLogger) Fatalf(format string, v ...interface{}) {
logger.Fatalf(format, v...)
}

// NewMockTracker returns a mock tracker.
func NewMockTracker() job.Tracker {
jobID := utils.MakeIdentifier()
mockJobStats := &job.Stats{
Info: &job.StatsInfo{
JobID: jobID,
Status: job.SuccessStatus.String(),
JobKind: job.KindGeneric,
JobName: job.SampleJob,
IsUnique: false,
},
}
tracker := job.NewBasicTrackerWithStats(
context.TODO(),
mockJobStats,
"jobserver",
nil,
func(hookURL string, change *job.StatusChange) error {
return nil
},
nil,
)
return tracker
}

0 comments on commit c1ed836

Please sign in to comment.