From 6b93ef8e5e0ef579af1460003133a02838bc6400 Mon Sep 17 00:00:00 2001 From: Gaius Date: Mon, 25 Dec 2023 17:37:12 +0800 Subject: [PATCH] feat: trigger download by task id (#2970) Signed-off-by: Gaius --- pkg/rpc/dfdaemon/client/client_v2.go | 10 ++--- .../dfdaemon/client/mocks/client_v2_mock.go | 10 ++--- scheduler/resource/seed_peer.go | 8 ++-- scheduler/resource/seed_peer_client_mock.go | 10 ++--- scheduler/resource/seed_peer_mock.go | 8 ++-- scheduler/resource/seed_peer_test.go | 6 +-- scheduler/service/service_v2.go | 25 ++++++------ scheduler/service/service_v2_test.go | 38 +++++++++---------- 8 files changed, 59 insertions(+), 56 deletions(-) diff --git a/pkg/rpc/dfdaemon/client/client_v2.go b/pkg/rpc/dfdaemon/client/client_v2.go index e7f0946e3c9..4224cd419e0 100644 --- a/pkg/rpc/dfdaemon/client/client_v2.go +++ b/pkg/rpc/dfdaemon/client/client_v2.go @@ -87,7 +87,7 @@ type V2 interface { DownloadPiece(context.Context, *dfdaemonv2.DownloadPieceRequest, ...grpc.CallOption) (*dfdaemonv2.DownloadPieceResponse, error) // TriggerDownloadTask triggers download task from the other peer. - TriggerDownloadTask(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest, ...grpc.CallOption) error + TriggerDownloadTask(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest, ...grpc.CallOption) error // Close tears down the ClientConn and all underlying connections. Close() error @@ -106,7 +106,7 @@ func (v *v2) SyncPieces(ctx context.Context, req *dfdaemonv2.SyncPiecesRequest, defer cancel() return v.DfdaemonUploadClient.SyncPieces( - ctx, + context.WithValue(ctx, pkgbalancer.ContextKey, req.TaskId), req, opts..., ) @@ -118,19 +118,19 @@ func (v *v2) DownloadPiece(ctx context.Context, req *dfdaemonv2.DownloadPieceReq defer cancel() return v.DfdaemonUploadClient.DownloadPiece( - ctx, + context.WithValue(ctx, pkgbalancer.ContextKey, req.TaskId), req, opts..., ) } // TriggerDownloadTask triggers download task from the other peer. -func (v *v2) TriggerDownloadTask(ctx context.Context, req *dfdaemonv2.TriggerDownloadTaskRequest, opts ...grpc.CallOption) error { +func (v *v2) TriggerDownloadTask(ctx context.Context, taskID string, req *dfdaemonv2.TriggerDownloadTaskRequest, opts ...grpc.CallOption) error { ctx, cancel := context.WithTimeout(ctx, contextTimeout) defer cancel() _, err := v.DfdaemonUploadClient.TriggerDownloadTask( - ctx, + context.WithValue(ctx, pkgbalancer.ContextKey, taskID), req, opts..., ) diff --git a/pkg/rpc/dfdaemon/client/mocks/client_v2_mock.go b/pkg/rpc/dfdaemon/client/mocks/client_v2_mock.go index fc175201de2..dc7e6cc3d03 100644 --- a/pkg/rpc/dfdaemon/client/mocks/client_v2_mock.go +++ b/pkg/rpc/dfdaemon/client/mocks/client_v2_mock.go @@ -95,10 +95,10 @@ func (mr *MockV2MockRecorder) SyncPieces(arg0, arg1 any, arg2 ...any) *gomock.Ca } // TriggerDownloadTask mocks base method. -func (m *MockV2) TriggerDownloadTask(arg0 context.Context, arg1 *dfdaemon.TriggerDownloadTaskRequest, arg2 ...grpc.CallOption) error { +func (m *MockV2) TriggerDownloadTask(arg0 context.Context, arg1 string, arg2 *dfdaemon.TriggerDownloadTaskRequest, arg3 ...grpc.CallOption) error { m.ctrl.T.Helper() - varargs := []any{arg0, arg1} - for _, a := range arg2 { + varargs := []any{arg0, arg1, arg2} + for _, a := range arg3 { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "TriggerDownloadTask", varargs...) @@ -107,8 +107,8 @@ func (m *MockV2) TriggerDownloadTask(arg0 context.Context, arg1 *dfdaemon.Trigge } // TriggerDownloadTask indicates an expected call of TriggerDownloadTask. -func (mr *MockV2MockRecorder) TriggerDownloadTask(arg0, arg1 any, arg2 ...any) *gomock.Call { +func (mr *MockV2MockRecorder) TriggerDownloadTask(arg0, arg1, arg2 any, arg3 ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{arg0, arg1}, arg2...) + varargs := append([]any{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TriggerDownloadTask", reflect.TypeOf((*MockV2)(nil).TriggerDownloadTask), varargs...) } diff --git a/scheduler/resource/seed_peer.go b/scheduler/resource/seed_peer.go index af698be8530..d33a25eb804 100644 --- a/scheduler/resource/seed_peer.go +++ b/scheduler/resource/seed_peer.go @@ -49,7 +49,7 @@ const ( type SeedPeer interface { // TriggerDownloadTask triggers the seed peer to download task. // Used only in v2 version of the grpc. - TriggerDownloadTask(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) error + TriggerDownloadTask(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) error // TriggerTask triggers the seed peer to download task. // Used only in v1 version of the grpc. @@ -89,11 +89,11 @@ func newSeedPeer(cfg *config.Config, client SeedPeerClient, peerManager PeerMana // TriggerDownloadTask triggers the seed peer to download task. // Used only in v2 version of the grpc. -func (s *seedPeer) TriggerDownloadTask(ctx context.Context, req *dfdaemonv2.TriggerDownloadTaskRequest) error { - ctx, cancel := context.WithCancel(trace.ContextWithSpan(context.Background(), trace.SpanFromContext(ctx))) +func (s *seedPeer) TriggerDownloadTask(ctx context.Context, taskID string, req *dfdaemonv2.TriggerDownloadTaskRequest) error { + ctx, cancel := context.WithCancel(trace.ContextWithSpan(ctx, trace.SpanFromContext(ctx))) defer cancel() - return s.client.TriggerDownloadTask(ctx, req) + return s.client.TriggerDownloadTask(ctx, taskID, req) } // TriggerTask triggers the seed peer to download task. diff --git a/scheduler/resource/seed_peer_client_mock.go b/scheduler/resource/seed_peer_client_mock.go index 51a0b8a2ebf..3128654703e 100644 --- a/scheduler/resource/seed_peer_client_mock.go +++ b/scheduler/resource/seed_peer_client_mock.go @@ -184,10 +184,10 @@ func (mr *MockSeedPeerClientMockRecorder) SyncPieces(arg0, arg1 any, arg2 ...any } // TriggerDownloadTask mocks base method. -func (m *MockSeedPeerClient) TriggerDownloadTask(arg0 context.Context, arg1 *dfdaemon.TriggerDownloadTaskRequest, arg2 ...grpc.CallOption) error { +func (m *MockSeedPeerClient) TriggerDownloadTask(arg0 context.Context, arg1 string, arg2 *dfdaemon.TriggerDownloadTaskRequest, arg3 ...grpc.CallOption) error { m.ctrl.T.Helper() - varargs := []any{arg0, arg1} - for _, a := range arg2 { + varargs := []any{arg0, arg1, arg2} + for _, a := range arg3 { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "TriggerDownloadTask", varargs...) @@ -196,8 +196,8 @@ func (m *MockSeedPeerClient) TriggerDownloadTask(arg0 context.Context, arg1 *dfd } // TriggerDownloadTask indicates an expected call of TriggerDownloadTask. -func (mr *MockSeedPeerClientMockRecorder) TriggerDownloadTask(arg0, arg1 any, arg2 ...any) *gomock.Call { +func (mr *MockSeedPeerClientMockRecorder) TriggerDownloadTask(arg0, arg1, arg2 any, arg3 ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{arg0, arg1}, arg2...) + varargs := append([]any{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TriggerDownloadTask", reflect.TypeOf((*MockSeedPeerClient)(nil).TriggerDownloadTask), varargs...) } diff --git a/scheduler/resource/seed_peer_mock.go b/scheduler/resource/seed_peer_mock.go index a0cf381e43e..0b936023334 100644 --- a/scheduler/resource/seed_peer_mock.go +++ b/scheduler/resource/seed_peer_mock.go @@ -70,17 +70,17 @@ func (mr *MockSeedPeerMockRecorder) Stop() *gomock.Call { } // TriggerDownloadTask mocks base method. -func (m *MockSeedPeer) TriggerDownloadTask(arg0 context.Context, arg1 *dfdaemon.TriggerDownloadTaskRequest) error { +func (m *MockSeedPeer) TriggerDownloadTask(arg0 context.Context, arg1 string, arg2 *dfdaemon.TriggerDownloadTaskRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "TriggerDownloadTask", arg0, arg1) + ret := m.ctrl.Call(m, "TriggerDownloadTask", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // TriggerDownloadTask indicates an expected call of TriggerDownloadTask. -func (mr *MockSeedPeerMockRecorder) TriggerDownloadTask(arg0, arg1 any) *gomock.Call { +func (mr *MockSeedPeerMockRecorder) TriggerDownloadTask(arg0, arg1, arg2 any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TriggerDownloadTask", reflect.TypeOf((*MockSeedPeer)(nil).TriggerDownloadTask), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TriggerDownloadTask", reflect.TypeOf((*MockSeedPeer)(nil).TriggerDownloadTask), arg0, arg1, arg2) } // TriggerTask mocks base method. diff --git a/scheduler/resource/seed_peer_test.go b/scheduler/resource/seed_peer_test.go index f97cffc869c..2980c2a1c2e 100644 --- a/scheduler/resource/seed_peer_test.go +++ b/scheduler/resource/seed_peer_test.go @@ -66,7 +66,7 @@ func TestSeedPeer_TriggerDownloadTask(t *testing.T) { { name: "trigger download task failed", mock: func(mc *MockSeedPeerClientMockRecorder) { - mc.TriggerDownloadTask(gomock.Any(), gomock.Any()).Return(errors.New("foo")).Times(1) + mc.TriggerDownloadTask(gomock.Any(), gomock.Any(), gomock.Any()).Return(errors.New("foo")).Times(1) }, expect: func(t *testing.T, err error) { assert := assert.New(t) @@ -76,7 +76,7 @@ func TestSeedPeer_TriggerDownloadTask(t *testing.T) { { name: "trigger download task scuccess", mock: func(mc *MockSeedPeerClientMockRecorder) { - mc.TriggerDownloadTask(gomock.Any(), gomock.Any()).Return(nil).Times(1) + mc.TriggerDownloadTask(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1) }, expect: func(t *testing.T, err error) { assert := assert.New(t) @@ -95,7 +95,7 @@ func TestSeedPeer_TriggerDownloadTask(t *testing.T) { tc.mock(client.EXPECT()) seedPeer := newSeedPeer(mockConfig, client, peerManager, hostManager) - tc.expect(t, seedPeer.TriggerDownloadTask(context.Background(), &dfdaemonv2.TriggerDownloadTaskRequest{})) + tc.expect(t, seedPeer.TriggerDownloadTask(context.Background(), mockTaskID, &dfdaemonv2.TriggerDownloadTaskRequest{})) }) } } diff --git a/scheduler/service/service_v2.go b/scheduler/service/service_v2.go index b3fe27d2348..d28e9a10dc6 100644 --- a/scheduler/service/service_v2.go +++ b/scheduler/service/service_v2.go @@ -843,7 +843,7 @@ func (v *V2) handleRegisterPeerRequest(ctx context.Context, stream schedulerv2.S blocklist := set.NewSafeSet[string]() blocklist.Add(peer.ID) if task.FSM.Is(resource.TaskStateFailed) || !task.HasAvailablePeer(blocklist) { - if err := v.downloadTaskBySeedPeer(ctx, req.GetDownload(), peer); err != nil { + if err := v.downloadTaskBySeedPeer(ctx, taskID, req.GetDownload(), peer); err != nil { // Collect RegisterPeerFailureCount metrics. metrics.RegisterPeerFailureCount.WithLabelValues(priority.String(), peer.Task.Type.String(), peer.Task.Tag, peer.Task.Application, peer.Host.Type.Name()).Inc() @@ -1305,7 +1305,7 @@ func (v *V2) handleResource(ctx context.Context, stream schedulerv2.Scheduler_An } // downloadTaskBySeedPeer downloads task by seed peer. -func (v *V2) downloadTaskBySeedPeer(ctx context.Context, download *commonv2.Download, peer *resource.Peer) error { +func (v *V2) downloadTaskBySeedPeer(ctx context.Context, taskID string, download *commonv2.Download, peer *resource.Peer) error { // Trigger the first download task based on different priority levels, // refer to https://github.com/dragonflyoss/api/blob/main/pkg/apis/common/v2/common.proto#L74. priority := peer.CalculatePriority(v.dynconfig) @@ -1314,14 +1314,15 @@ func (v *V2) downloadTaskBySeedPeer(ctx context.Context, download *commonv2.Down case commonv2.Priority_LEVEL6, commonv2.Priority_LEVEL0: // Super peer is first triggered to download back-to-source. if v.config.SeedPeer.Enable && !peer.Task.IsSeedPeerFailed() { - go func(ctx context.Context, download *commonv2.Download, hostType types.HostType) { - if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { + go func(ctx context.Context, taskID string, download *commonv2.Download, hostType types.HostType) { + peer.Log.Infof("%s seed peer triggers download task", hostType.Name()) + if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), taskID, &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { peer.Log.Errorf("%s seed peer triggers download task failed %s", hostType.Name(), err.Error()) return } peer.Log.Infof("%s seed peer triggers download task success", hostType.Name()) - }(ctx, download, types.HostTypeSuperSeed) + }(ctx, taskID, download, types.HostTypeSuperSeed) break } @@ -1330,14 +1331,15 @@ func (v *V2) downloadTaskBySeedPeer(ctx context.Context, download *commonv2.Down case commonv2.Priority_LEVEL5: // Strong peer is first triggered to download back-to-source. if v.config.SeedPeer.Enable && !peer.Task.IsSeedPeerFailed() { - go func(ctx context.Context, download *commonv2.Download, hostType types.HostType) { - if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { + go func(ctx context.Context, taskID string, download *commonv2.Download, hostType types.HostType) { + peer.Log.Infof("%s seed peer triggers download task", hostType.Name()) + if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), taskID, &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { peer.Log.Errorf("%s seed peer triggers download task failed %s", hostType.Name(), err.Error()) return } peer.Log.Infof("%s seed peer triggers download task success", hostType.Name()) - }(ctx, download, types.HostTypeSuperSeed) + }(ctx, taskID, download, types.HostTypeSuperSeed) break } @@ -1346,14 +1348,15 @@ func (v *V2) downloadTaskBySeedPeer(ctx context.Context, download *commonv2.Down case commonv2.Priority_LEVEL4: // Weak peer is first triggered to download back-to-source. if v.config.SeedPeer.Enable && !peer.Task.IsSeedPeerFailed() { - go func(ctx context.Context, download *commonv2.Download, hostType types.HostType) { - if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { + go func(ctx context.Context, taskID string, download *commonv2.Download, hostType types.HostType) { + peer.Log.Infof("%s seed peer triggers download task", hostType.Name()) + if err := v.resource.SeedPeer().TriggerDownloadTask(context.Background(), taskID, &dfdaemonv2.TriggerDownloadTaskRequest{Download: download}); err != nil { peer.Log.Errorf("%s seed peer triggers download task failed %s", hostType.Name(), err.Error()) return } peer.Log.Infof("%s seed peer triggers download task success", hostType.Name()) - }(ctx, download, types.HostTypeSuperSeed) + }(ctx, taskID, download, types.HostTypeSuperSeed) break } diff --git a/scheduler/service/service_v2_test.go b/scheduler/service/service_v2_test.go index 805aa13dedc..c13ff76e2f4 100644 --- a/scheduler/service/service_v2_test.go +++ b/scheduler/service/service_v2_test.go @@ -3364,13 +3364,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), ) peer.Priority = commonv2.Priority_LEVEL6 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3388,13 +3388,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), ) peer.Priority = commonv2.Priority_LEVEL6 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3409,7 +3409,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL6 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.True(peer.NeedBackToSource.Load()) }, }, @@ -3427,13 +3427,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), ) peer.Priority = commonv2.Priority_LEVEL5 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3451,13 +3451,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), ) peer.Priority = commonv2.Priority_LEVEL5 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3472,7 +3472,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL5 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.True(peer.NeedBackToSource.Load()) }, }, @@ -3490,13 +3490,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(nil).Times(1), ) peer.Priority = commonv2.Priority_LEVEL4 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3514,13 +3514,13 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { gomock.InOrder( mr.SeedPeer().Return(seedPeerClient).Times(1), - ms.TriggerDownloadTask(gomock.All(), gomock.Any()).Do(func(context.Context, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), + ms.TriggerDownloadTask(gomock.All(), gomock.Any(), gomock.Any()).Do(func(context.Context, string, *dfdaemonv2.TriggerDownloadTaskRequest) { wg.Done() }).Return(errors.New("foo")).Times(1), ) peer.Priority = commonv2.Priority_LEVEL4 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.False(peer.NeedBackToSource.Load()) }, }, @@ -3535,7 +3535,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL4 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.True(peer.NeedBackToSource.Load()) }, }, @@ -3550,7 +3550,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL3 assert := assert.New(t) - assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer)) + assert.NoError(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer)) assert.True(peer.NeedBackToSource.Load()) }, }, @@ -3565,7 +3565,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL2 assert := assert.New(t) - assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer), status.Errorf(codes.NotFound, "%s peer not found candidate peers", commonv2.Priority_LEVEL2.String())) + assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer), status.Errorf(codes.NotFound, "%s peer not found candidate peers", commonv2.Priority_LEVEL2.String())) }, }, { @@ -3579,7 +3579,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority_LEVEL1 assert := assert.New(t) - assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer), status.Errorf(codes.FailedPrecondition, "%s peer is forbidden", commonv2.Priority_LEVEL1.String())) + assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer), status.Errorf(codes.FailedPrecondition, "%s peer is forbidden", commonv2.Priority_LEVEL1.String())) }, }, { @@ -3593,7 +3593,7 @@ func TestServiceV2_downloadTaskBySeedPeer(t *testing.T) { peer.Priority = commonv2.Priority(100) assert := assert.New(t) - assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), &commonv2.Download{}, peer), status.Errorf(codes.InvalidArgument, "invalid priority %#v", peer.Priority)) + assert.ErrorIs(svc.downloadTaskBySeedPeer(context.Background(), mockTaskID, &commonv2.Download{}, peer), status.Errorf(codes.InvalidArgument, "invalid priority %#v", peer.Priority)) }, }, }