diff --git a/go.mod b/go.mod index 0456a101f05..49bcd117d36 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module d7y.io/dragonfly/v2 go 1.20 require ( - d7y.io/api/v2 v2.0.13 + d7y.io/api/v2 v2.0.16 github.com/MysteriousPotato/go-lockable v1.0.0 github.com/RichardKnop/machinery v1.10.6 github.com/Showmax/go-fqdn v1.0.0 diff --git a/go.sum b/go.sum index 0aa45a1acfb..da1d34f3b78 100644 --- a/go.sum +++ b/go.sum @@ -50,8 +50,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -d7y.io/api/v2 v2.0.13 h1:J0YKbLxRBXrlFAwhGWSkfa56e4+8L2upDl5TYW6ZqFk= -d7y.io/api/v2 v2.0.13/go.mod h1:lwCvFjtRVsyTKsiXfh2W0Jdv+5tQGR/vFj+TknwnusY= +d7y.io/api/v2 v2.0.16 h1:68PPLq452PvlIFfAk4Rc/XyNkcJG8pdOnXSDj4sJG3w= +d7y.io/api/v2 v2.0.16/go.mod h1:lwCvFjtRVsyTKsiXfh2W0Jdv+5tQGR/vFj+TknwnusY= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= diff --git a/manager/rpcserver/manager_server_v2.go b/manager/rpcserver/manager_server_v2.go index eff5eae7e9c..488b74058a2 100644 --- a/manager/rpcserver/manager_server_v2.go +++ b/manager/rpcserver/manager_server_v2.go @@ -265,6 +265,23 @@ func (s *managerServerV2) createSeedPeer(ctx context.Context, req *managerv2.Upd }, nil } +// Delete SeedPeer configuration. +func (s *managerServerV2) DeleteSeedPeer(ctx context.Context, req *managerv2.DeleteSeedPeerRequest) (*emptypb.Empty, error) { + if err := s.db.WithContext(ctx).Unscoped().Delete(&models.SeedPeer{}, models.SeedPeer{ + Hostname: req.Hostname, + IP: req.Ip, + SeedPeerClusterID: uint(req.SeedPeerClusterId), + }).Error; err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, status.Error(codes.NotFound, err.Error()) + } + + return nil, status.Error(codes.Internal, err.Error()) + } + + return new(emptypb.Empty), nil +} + // Get Scheduler and Scheduler cluster configuration. func (s *managerServerV2) GetScheduler(ctx context.Context, req *managerv2.GetSchedulerRequest) (*managerv2.Scheduler, error) { log := logger.WithHostnameAndIP(req.Hostname, req.Ip) diff --git a/pkg/rpc/manager/client/client_v2.go b/pkg/rpc/manager/client/client_v2.go index 066c0813c34..355963c0326 100644 --- a/pkg/rpc/manager/client/client_v2.go +++ b/pkg/rpc/manager/client/client_v2.go @@ -91,6 +91,9 @@ type V2 interface { // Update Seed peer configuration. UpdateSeedPeer(context.Context, *managerv2.UpdateSeedPeerRequest, ...grpc.CallOption) (*managerv2.SeedPeer, error) + // Delete Seed peer configuration. + DeleteSeedPeer(context.Context, *managerv2.DeleteSeedPeerRequest, ...grpc.CallOption) error + // Get Scheduler and Scheduler cluster configuration. GetScheduler(context.Context, *managerv2.GetSchedulerRequest, ...grpc.CallOption) (*managerv2.Scheduler, error) @@ -134,6 +137,15 @@ func (v *v2) UpdateSeedPeer(ctx context.Context, req *managerv2.UpdateSeedPeerRe return v.ManagerClient.UpdateSeedPeer(ctx, req, opts...) } +// Delete SeedPeer configuration. +func (v *v2) DeleteSeedPeer(ctx context.Context, req *managerv2.DeleteSeedPeerRequest, opts ...grpc.CallOption) error { + ctx, cancel := context.WithTimeout(ctx, contextTimeout) + defer cancel() + + _, err := v.ManagerClient.DeleteSeedPeer(ctx, req, opts...) + return err +} + // Get Scheduler and Scheduler cluster configuration. func (v *v2) GetScheduler(ctx context.Context, req *managerv2.GetSchedulerRequest, opts ...grpc.CallOption) (*managerv2.Scheduler, error) { ctx, cancel := context.WithTimeout(ctx, contextTimeout) diff --git a/pkg/rpc/manager/client/mocks/client_v2_mock.go b/pkg/rpc/manager/client/mocks/client_v2_mock.go index 5154fca2303..f56deb17a07 100644 --- a/pkg/rpc/manager/client/mocks/client_v2_mock.go +++ b/pkg/rpc/manager/client/mocks/client_v2_mock.go @@ -70,6 +70,25 @@ func (mr *MockV2MockRecorder) CreateModel(arg0, arg1 interface{}, arg2 ...interf return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateModel", reflect.TypeOf((*MockV2)(nil).CreateModel), varargs...) } +// DeleteSeedPeer mocks base method. +func (m *MockV2) DeleteSeedPeer(arg0 context.Context, arg1 *manager.DeleteSeedPeerRequest, arg2 ...grpc.CallOption) error { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeleteSeedPeer", varargs...) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteSeedPeer indicates an expected call of DeleteSeedPeer. +func (mr *MockV2MockRecorder) DeleteSeedPeer(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSeedPeer", reflect.TypeOf((*MockV2)(nil).DeleteSeedPeer), varargs...) +} + // GetObjectStorage mocks base method. func (m *MockV2) GetObjectStorage(arg0 context.Context, arg1 *manager.GetObjectStorageRequest, arg2 ...grpc.CallOption) (*manager.ObjectStorage, error) { m.ctrl.T.Helper()