From 5ccb896ce69de074c94a678a69ea9f88bc9e5ea4 Mon Sep 17 00:00:00 2001 From: Gaius Date: Fri, 28 Jun 2024 18:51:52 +0800 Subject: [PATCH] fix: build error in descriptor.bin (#331) Signed-off-by: Gaius --- Cargo.lock | 2 +- Cargo.toml | 2 +- pkg/apis/scheduler/v2/scheduler.pb.go | 4 +- pkg/apis/scheduler/v2/scheduler_grpc.pb.go | 126 ++++++--------------- src/descriptor.bin | Bin 92666 -> 92028 bytes 5 files changed, 41 insertions(+), 93 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6d41cba..10f6c95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "dragonfly-api" -version = "2.0.125" +version = "2.0.126" dependencies = [ "prost 0.11.9", "prost-types 0.12.6", diff --git a/Cargo.toml b/Cargo.toml index 873fc92..e34c172 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dragonfly-api" -version = "2.0.125" +version = "2.0.126" authors = ["Gaius "] edition = "2021" license = "Apache-2.0" diff --git a/pkg/apis/scheduler/v2/scheduler.pb.go b/pkg/apis/scheduler/v2/scheduler.pb.go index 9fb8c4e..b48856e 100644 --- a/pkg/apis/scheduler/v2/scheduler.pb.go +++ b/pkg/apis/scheduler/v2/scheduler.pb.go @@ -15,8 +15,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v5.27.0 +// protoc-gen-go v1.28.1 +// protoc v3.21.6 // source: pkg/apis/scheduler/v2/scheduler.proto package scheduler diff --git a/pkg/apis/scheduler/v2/scheduler_grpc.pb.go b/pkg/apis/scheduler/v2/scheduler_grpc.pb.go index e77e43d..70a8df0 100644 --- a/pkg/apis/scheduler/v2/scheduler_grpc.pb.go +++ b/pkg/apis/scheduler/v2/scheduler_grpc.pb.go @@ -1,22 +1,7 @@ -// -// Copyright 2022 The Dragonfly Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.4.0 -// - protoc v5.27.0 +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.21.6 // source: pkg/apis/scheduler/v2/scheduler.proto package scheduler @@ -32,31 +17,12 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.62.0 or later. -const _ = grpc.SupportPackageIsVersion8 - -const ( - Scheduler_AnnouncePeer_FullMethodName = "/scheduler.v2.Scheduler/AnnouncePeer" - Scheduler_StatPeer_FullMethodName = "/scheduler.v2.Scheduler/StatPeer" - Scheduler_DeletePeer_FullMethodName = "/scheduler.v2.Scheduler/DeletePeer" - Scheduler_StatTask_FullMethodName = "/scheduler.v2.Scheduler/StatTask" - Scheduler_DeleteTask_FullMethodName = "/scheduler.v2.Scheduler/DeleteTask" - Scheduler_AnnounceHost_FullMethodName = "/scheduler.v2.Scheduler/AnnounceHost" - Scheduler_DeleteHost_FullMethodName = "/scheduler.v2.Scheduler/DeleteHost" - Scheduler_SyncProbes_FullMethodName = "/scheduler.v2.Scheduler/SyncProbes" - Scheduler_AnnounceCachePeer_FullMethodName = "/scheduler.v2.Scheduler/AnnounceCachePeer" - Scheduler_StatCachePeer_FullMethodName = "/scheduler.v2.Scheduler/StatCachePeer" - Scheduler_DeleteCachePeer_FullMethodName = "/scheduler.v2.Scheduler/DeleteCachePeer" - Scheduler_UploadCacheTask_FullMethodName = "/scheduler.v2.Scheduler/UploadCacheTask" - Scheduler_StatCacheTask_FullMethodName = "/scheduler.v2.Scheduler/StatCacheTask" - Scheduler_DeleteCacheTask_FullMethodName = "/scheduler.v2.Scheduler/DeleteCacheTask" -) +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 // SchedulerClient is the client API for Scheduler service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -// -// Scheduler RPC Service. type SchedulerClient interface { // AnnouncePeer announces peer to scheduler. AnnouncePeer(ctx context.Context, opts ...grpc.CallOption) (Scheduler_AnnouncePeerClient, error) @@ -97,12 +63,11 @@ func NewSchedulerClient(cc grpc.ClientConnInterface) SchedulerClient { } func (c *schedulerClient) AnnouncePeer(ctx context.Context, opts ...grpc.CallOption) (Scheduler_AnnouncePeerClient, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[0], Scheduler_AnnouncePeer_FullMethodName, cOpts...) + stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[0], "/scheduler.v2.Scheduler/AnnouncePeer", opts...) if err != nil { return nil, err } - x := &schedulerAnnouncePeerClient{ClientStream: stream} + x := &schedulerAnnouncePeerClient{stream} return x, nil } @@ -129,9 +94,8 @@ func (x *schedulerAnnouncePeerClient) Recv() (*AnnouncePeerResponse, error) { } func (c *schedulerClient) StatPeer(ctx context.Context, in *StatPeerRequest, opts ...grpc.CallOption) (*v2.Peer, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(v2.Peer) - err := c.cc.Invoke(ctx, Scheduler_StatPeer_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/StatPeer", in, out, opts...) if err != nil { return nil, err } @@ -139,9 +103,8 @@ func (c *schedulerClient) StatPeer(ctx context.Context, in *StatPeerRequest, opt } func (c *schedulerClient) DeletePeer(ctx context.Context, in *DeletePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_DeletePeer_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/DeletePeer", in, out, opts...) if err != nil { return nil, err } @@ -149,9 +112,8 @@ func (c *schedulerClient) DeletePeer(ctx context.Context, in *DeletePeerRequest, } func (c *schedulerClient) StatTask(ctx context.Context, in *StatTaskRequest, opts ...grpc.CallOption) (*v2.Task, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(v2.Task) - err := c.cc.Invoke(ctx, Scheduler_StatTask_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/StatTask", in, out, opts...) if err != nil { return nil, err } @@ -159,9 +121,8 @@ func (c *schedulerClient) StatTask(ctx context.Context, in *StatTaskRequest, opt } func (c *schedulerClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_DeleteTask_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/DeleteTask", in, out, opts...) if err != nil { return nil, err } @@ -169,9 +130,8 @@ func (c *schedulerClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, } func (c *schedulerClient) AnnounceHost(ctx context.Context, in *AnnounceHostRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_AnnounceHost_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/AnnounceHost", in, out, opts...) if err != nil { return nil, err } @@ -179,9 +139,8 @@ func (c *schedulerClient) AnnounceHost(ctx context.Context, in *AnnounceHostRequ } func (c *schedulerClient) DeleteHost(ctx context.Context, in *DeleteHostRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_DeleteHost_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/DeleteHost", in, out, opts...) if err != nil { return nil, err } @@ -189,12 +148,11 @@ func (c *schedulerClient) DeleteHost(ctx context.Context, in *DeleteHostRequest, } func (c *schedulerClient) SyncProbes(ctx context.Context, opts ...grpc.CallOption) (Scheduler_SyncProbesClient, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[1], Scheduler_SyncProbes_FullMethodName, cOpts...) + stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[1], "/scheduler.v2.Scheduler/SyncProbes", opts...) if err != nil { return nil, err } - x := &schedulerSyncProbesClient{ClientStream: stream} + x := &schedulerSyncProbesClient{stream} return x, nil } @@ -221,12 +179,11 @@ func (x *schedulerSyncProbesClient) Recv() (*SyncProbesResponse, error) { } func (c *schedulerClient) AnnounceCachePeer(ctx context.Context, opts ...grpc.CallOption) (Scheduler_AnnounceCachePeerClient, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[2], Scheduler_AnnounceCachePeer_FullMethodName, cOpts...) + stream, err := c.cc.NewStream(ctx, &Scheduler_ServiceDesc.Streams[2], "/scheduler.v2.Scheduler/AnnounceCachePeer", opts...) if err != nil { return nil, err } - x := &schedulerAnnounceCachePeerClient{ClientStream: stream} + x := &schedulerAnnounceCachePeerClient{stream} return x, nil } @@ -253,9 +210,8 @@ func (x *schedulerAnnounceCachePeerClient) Recv() (*AnnounceCachePeerResponse, e } func (c *schedulerClient) StatCachePeer(ctx context.Context, in *StatCachePeerRequest, opts ...grpc.CallOption) (*v2.CachePeer, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(v2.CachePeer) - err := c.cc.Invoke(ctx, Scheduler_StatCachePeer_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/StatCachePeer", in, out, opts...) if err != nil { return nil, err } @@ -263,9 +219,8 @@ func (c *schedulerClient) StatCachePeer(ctx context.Context, in *StatCachePeerRe } func (c *schedulerClient) DeleteCachePeer(ctx context.Context, in *DeleteCachePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_DeleteCachePeer_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/DeleteCachePeer", in, out, opts...) if err != nil { return nil, err } @@ -273,9 +228,8 @@ func (c *schedulerClient) DeleteCachePeer(ctx context.Context, in *DeleteCachePe } func (c *schedulerClient) UploadCacheTask(ctx context.Context, in *UploadCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(v2.CacheTask) - err := c.cc.Invoke(ctx, Scheduler_UploadCacheTask_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/UploadCacheTask", in, out, opts...) if err != nil { return nil, err } @@ -283,9 +237,8 @@ func (c *schedulerClient) UploadCacheTask(ctx context.Context, in *UploadCacheTa } func (c *schedulerClient) StatCacheTask(ctx context.Context, in *StatCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(v2.CacheTask) - err := c.cc.Invoke(ctx, Scheduler_StatCacheTask_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/StatCacheTask", in, out, opts...) if err != nil { return nil, err } @@ -293,9 +246,8 @@ func (c *schedulerClient) StatCacheTask(ctx context.Context, in *StatCacheTaskRe } func (c *schedulerClient) DeleteCacheTask(ctx context.Context, in *DeleteCacheTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, Scheduler_DeleteCacheTask_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, "/scheduler.v2.Scheduler/DeleteCacheTask", in, out, opts...) if err != nil { return nil, err } @@ -303,10 +255,8 @@ func (c *schedulerClient) DeleteCacheTask(ctx context.Context, in *DeleteCacheTa } // SchedulerServer is the server API for Scheduler service. -// All implementations must embed UnimplementedSchedulerServer +// All implementations should embed UnimplementedSchedulerServer // for forward compatibility -// -// Scheduler RPC Service. type SchedulerServer interface { // AnnouncePeer announces peer to scheduler. AnnouncePeer(Scheduler_AnnouncePeerServer) error @@ -336,10 +286,9 @@ type SchedulerServer interface { StatCacheTask(context.Context, *StatCacheTaskRequest) (*v2.CacheTask, error) // DeleteCacheTask releases cache task in scheduler. DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error) - mustEmbedUnimplementedSchedulerServer() } -// UnimplementedSchedulerServer must be embedded to have forward compatible implementations. +// UnimplementedSchedulerServer should be embedded to have forward compatible implementations. type UnimplementedSchedulerServer struct { } @@ -385,7 +334,6 @@ func (UnimplementedSchedulerServer) StatCacheTask(context.Context, *StatCacheTas func (UnimplementedSchedulerServer) DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteCacheTask not implemented") } -func (UnimplementedSchedulerServer) mustEmbedUnimplementedSchedulerServer() {} // UnsafeSchedulerServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to SchedulerServer will @@ -399,7 +347,7 @@ func RegisterSchedulerServer(s grpc.ServiceRegistrar, srv SchedulerServer) { } func _Scheduler_AnnouncePeer_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(SchedulerServer).AnnouncePeer(&schedulerAnnouncePeerServer{ServerStream: stream}) + return srv.(SchedulerServer).AnnouncePeer(&schedulerAnnouncePeerServer{stream}) } type Scheduler_AnnouncePeerServer interface { @@ -434,7 +382,7 @@ func _Scheduler_StatPeer_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_StatPeer_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/StatPeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).StatPeer(ctx, req.(*StatPeerRequest)) @@ -452,7 +400,7 @@ func _Scheduler_DeletePeer_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_DeletePeer_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/DeletePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).DeletePeer(ctx, req.(*DeletePeerRequest)) @@ -470,7 +418,7 @@ func _Scheduler_StatTask_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_StatTask_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/StatTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).StatTask(ctx, req.(*StatTaskRequest)) @@ -488,7 +436,7 @@ func _Scheduler_DeleteTask_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_DeleteTask_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/DeleteTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).DeleteTask(ctx, req.(*DeleteTaskRequest)) @@ -506,7 +454,7 @@ func _Scheduler_AnnounceHost_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_AnnounceHost_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/AnnounceHost", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).AnnounceHost(ctx, req.(*AnnounceHostRequest)) @@ -524,7 +472,7 @@ func _Scheduler_DeleteHost_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_DeleteHost_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/DeleteHost", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).DeleteHost(ctx, req.(*DeleteHostRequest)) @@ -533,7 +481,7 @@ func _Scheduler_DeleteHost_Handler(srv interface{}, ctx context.Context, dec fun } func _Scheduler_SyncProbes_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(SchedulerServer).SyncProbes(&schedulerSyncProbesServer{ServerStream: stream}) + return srv.(SchedulerServer).SyncProbes(&schedulerSyncProbesServer{stream}) } type Scheduler_SyncProbesServer interface { @@ -559,7 +507,7 @@ func (x *schedulerSyncProbesServer) Recv() (*SyncProbesRequest, error) { } func _Scheduler_AnnounceCachePeer_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(SchedulerServer).AnnounceCachePeer(&schedulerAnnounceCachePeerServer{ServerStream: stream}) + return srv.(SchedulerServer).AnnounceCachePeer(&schedulerAnnounceCachePeerServer{stream}) } type Scheduler_AnnounceCachePeerServer interface { @@ -594,7 +542,7 @@ func _Scheduler_StatCachePeer_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_StatCachePeer_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/StatCachePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).StatCachePeer(ctx, req.(*StatCachePeerRequest)) @@ -612,7 +560,7 @@ func _Scheduler_DeleteCachePeer_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_DeleteCachePeer_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/DeleteCachePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).DeleteCachePeer(ctx, req.(*DeleteCachePeerRequest)) @@ -630,7 +578,7 @@ func _Scheduler_UploadCacheTask_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_UploadCacheTask_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/UploadCacheTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).UploadCacheTask(ctx, req.(*UploadCacheTaskRequest)) @@ -648,7 +596,7 @@ func _Scheduler_StatCacheTask_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_StatCacheTask_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/StatCacheTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).StatCacheTask(ctx, req.(*StatCacheTaskRequest)) @@ -666,7 +614,7 @@ func _Scheduler_DeleteCacheTask_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Scheduler_DeleteCacheTask_FullMethodName, + FullMethod: "/scheduler.v2.Scheduler/DeleteCacheTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SchedulerServer).DeleteCacheTask(ctx, req.(*DeleteCacheTaskRequest)) diff --git a/src/descriptor.bin b/src/descriptor.bin index 1084a34d757462c3d2efc090954777704bef3da5..a18bbd1770dc9e1130232e5d9862414bc31ba68e 100644 GIT binary patch delta 18393 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 delta 19387 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 JR?K51{}1mg{yP8w