From 971236f2852e85809fd2db1ad0dd3ebc302d6731 Mon Sep 17 00:00:00 2001 From: Gaius Date: Wed, 26 Aug 2026 12:48:12 +0800 Subject: [PATCH] feat(common/v2): add need_scheduling field to Download message Add a boolean `need_scheduling` field to the `Download` message across proto definition, generated Go/Python/Rust bindings, and bump version to 2.3.4. Signed-off-by: Gaius --- Cargo.lock | 2 +- Cargo.toml | 2 +- pkg/apis/common/v2/common.pb.go | 341 ++++++++++++----------- pkg/apis/common/v2/common.pb.validate.go | 2 + pkg/apis/common/v2/common.proto | 5 + proto/common.proto | 5 + python/dragonfly_api/common_pb2.py | 48 ++-- python/dragonfly_api/common_pb2.pyi | 6 +- src/common.v2.rs | 6 + src/descriptor.bin | Bin 213540 -> 213915 bytes 10 files changed, 226 insertions(+), 191 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a382cdd3..10333365 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,7 +119,7 @@ dependencies = [ [[package]] name = "dragonfly-api" -version = "2.3.3" +version = "2.3.4" dependencies = [ "prost", "prost-types", diff --git a/Cargo.toml b/Cargo.toml index e02dd4ae..63131658 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dragonfly-api" -version = "2.3.3" +version = "2.3.4" authors = ["Gaius "] edition = "2021" license = "Apache-2.0" diff --git a/pkg/apis/common/v2/common.pb.go b/pkg/apis/common/v2/common.pb.go index b6f9d0cd..3798d53f 100644 --- a/pkg/apis/common/v2/common.pb.go +++ b/pkg/apis/common/v2/common.pb.go @@ -2721,6 +2721,11 @@ type Download struct { MetadataOnly bool `protobuf:"varint,33,opt,name=metadata_only,json=metadataOnly,proto3" json:"metadata_only,omitempty"` // OpenCSG protocol information. OpenCsg *OpenCSG `protobuf:"bytes,34,opt,name=open_csg,json=openCsg,proto3,oneof" json:"open_csg,omitempty"` + // Need scheduling is the flag to indicate whether the download needs to be scheduled + // by the scheduler even if the content length is smaller than the minimum piece length, + // so that the peer announces the task to the scheduler and other peers can discover + // it as a parent. + NeedScheduling bool `protobuf:"varint,35,opt,name=need_scheduling,json=needScheduling,proto3" json:"need_scheduling,omitempty"` } func (x *Download) Reset() { @@ -2986,6 +2991,13 @@ func (x *Download) GetOpenCsg() *OpenCSG { return nil } +func (x *Download) GetNeedScheduling() bool { + if x != nil { + return x.NeedScheduling + } + return false +} + // Object Storage related information. type ObjectStorage struct { state protoimpl.MessageState @@ -4093,7 +4105,7 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{ 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x91, 0x11, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xba, 0x11, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, @@ -4205,170 +4217,173 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{ 0x6e, 0x6c, 0x79, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x73, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x53, 0x47, 0x48, 0x11, 0x52, 0x07, 0x6f, 0x70, 0x65, - 0x6e, 0x43, 0x73, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, - 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, - 0x70, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, - 0x63, 0x73, 0x67, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x52, 0x0d, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x22, 0x8d, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, - 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, - 0x01, 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x48, 0x02, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x38, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x03, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, + 0x6e, 0x43, 0x73, 0x67, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x65, 0x64, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, + 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, + 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, + 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x73, 0x67, 0x4a, 0x04, 0x08, 0x15, + 0x10, 0x16, 0x52, 0x0d, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x22, 0x8d, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, - 0x04, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, - 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, + 0x00, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0d, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x11, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, + 0x03, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, - 0x48, 0x06, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, - 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, - 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x12, 0x69, 0x6e, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, - 0x12, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, - 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x22, 0x57, 0x0a, 0x04, 0x48, 0x44, 0x46, 0x53, - 0x12, 0x3a, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, - 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x0b, 0x48, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, - 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, - 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, - 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, - 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, - 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, - 0x22, 0x99, 0x01, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x53, 0x47, 0x12, 0x25, 0x0a, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, - 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, - 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x35, 0x0a, 0x05, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xbe, 0x04, 0x0a, 0x05, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, - 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0xab, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, - 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, - 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, - 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, - 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, - 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x62, 0x6c, 0x61, 0x6b, 0x65, - 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, - 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, - 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x7a, 0x04, 0x10, 0x01, 0x70, 0x01, 0x48, 0x01, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x0b, 0x74, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, - 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x04, - 0x63, 0x6f, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x2a, 0x43, 0x0a, 0x09, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x63, 0x6f, 0x70, - 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x49, 0x4e, 0x59, - 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, - 0x06, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x10, 0x04, 0x2a, 0x49, 0x0a, 0x08, 0x54, 0x61, 0x73, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, - 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, - 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, - 0x54, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x41, 0x43, - 0x48, 0x45, 0x10, 0x03, 0x2a, 0x42, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x54, - 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x43, 0x41, - 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x30, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, - 0x4c, 0x33, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x34, 0x10, 0x04, - 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x35, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x36, 0x10, 0x06, 0x42, 0x29, 0x5a, 0x27, 0x64, 0x37, 0x79, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, - 0x69, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x48, 0x05, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, + 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x06, 0x52, 0x0d, 0x70, 0x72, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, + 0x01, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, + 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, + 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x22, 0x57, 0x0a, 0x04, 0x48, 0x44, 0x46, 0x53, 0x12, 0x3a, 0x0a, 0x10, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, + 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x0b, 0x48, + 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, + 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, + 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, + 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x99, 0x01, 0x0a, 0x07, 0x4f, 0x70, + 0x65, 0x6e, 0x43, 0x53, 0x47, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, + 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, + 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x35, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbe, 0x04, 0x0a, + 0x05, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, + 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0xab, 0x01, 0x0a, + 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, + 0xfa, 0x42, 0x8e, 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, + 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, + 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, + 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, + 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, + 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, + 0x32, 0x38, 0x7d, 0x7c, 0x62, 0x6c, 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, + 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, + 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, + 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x09, 0xfa, 0x42, 0x06, + 0x7a, 0x04, 0x10, 0x01, 0x70, 0x01, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x02, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x43, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x43, 0x0a, + 0x09, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, + 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x49, 0x4e, 0x59, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, + 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x10, 0x04, 0x2a, 0x49, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, + 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, + 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x03, 0x2a, 0x42, 0x0a, + 0x0b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, + 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x00, + 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, + 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, + 0x02, 0x2a, 0x5e, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, + 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x30, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x32, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x33, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x34, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x35, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x36, 0x10, + 0x06, 0x42, 0x29, 0x5a, 0x27, 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/apis/common/v2/common.pb.validate.go b/pkg/apis/common/v2/common.pb.validate.go index c7775d23..e2168040 100644 --- a/pkg/apis/common/v2/common.pb.validate.go +++ b/pkg/apis/common/v2/common.pb.validate.go @@ -3786,6 +3786,8 @@ func (m *Download) validate(all bool) error { // no validation rules for MetadataOnly + // no validation rules for NeedScheduling + if m.Digest != nil { if m.GetDigest() != "" { diff --git a/pkg/apis/common/v2/common.proto b/pkg/apis/common/v2/common.proto index c28265e8..23ab1002 100644 --- a/pkg/apis/common/v2/common.proto +++ b/pkg/apis/common/v2/common.proto @@ -727,6 +727,11 @@ message Download { bool metadata_only = 33; // OpenCSG protocol information. optional OpenCSG open_csg = 34; + // Need scheduling is the flag to indicate whether the download needs to be scheduled + // by the scheduler even if the content length is smaller than the minimum piece length, + // so that the peer announces the task to the scheduler and other peers can discover + // it as a parent. + bool need_scheduling = 35; reserved 21; reserved "load_to_cache"; diff --git a/proto/common.proto b/proto/common.proto index 7e7a4e4a..db1f0cf3 100644 --- a/proto/common.proto +++ b/proto/common.proto @@ -669,6 +669,11 @@ message Download { bool metadata_only = 33; // OpenCSG protocol information. optional OpenCSG open_csg = 34; + // Need scheduling is the flag to indicate whether the download needs to be scheduled + // by the scheduler even if the content length is smaller than the minimum piece length, + // so that the peer announces the task to the scheduler and other peers can discover + // it as a parent. + bool need_scheduling = 35; reserved 21; reserved "load_to_cache"; diff --git a/python/dragonfly_api/common_pb2.py b/python/dragonfly_api/common_pb2.py index 4637ab92..c1d3a0ca 100644 --- a/python/dragonfly_api/common_pb2.py +++ b/python/dragonfly_api/common_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\tcommon.v2\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbe\x03\n\x04Peer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\x1d\n\x04task\x18\x07 \x01(\x0b\x32\x0f.common.v2.Task\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xc8\x03\n\tCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\"\n\x04task\x18\x07 \x01(\x0b\x32\x14.common.v2.CacheTask\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xb0\x02\n\x0ePersistentPeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12\'\n\x04task\x18\x05 \x01(\x0b\x32\x19.common.v2.PersistentTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xba\x02\n\x13PersistentCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12,\n\x04task\x18\x05 \x01(\x0b\x32\x1e.common.v2.PersistentCacheTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xcf\x04\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12:\n\x0erequest_header\x18\x08 \x03(\x0b\x32\".common.v2.Task.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xd9\x04\n\tCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12?\n\x0erequest_header\x18\x08 \x03(\x0b\x32\'.common.v2.CacheTask.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xcb\x02\n\x0ePersistentTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x05 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\t\x12&\n\x03ttl\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x03\n\x13PersistentCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12\r\n\x05state\x18\n \x01(\t\x12&\n\x03ttl\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04_tagB\x0e\n\x0c_application\"\x94\x04\n\x04Host\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\x05\x12\x15\n\rdownload_port\x18\x06 \x01(\x05\x12\n\n\x02os\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\x12\x17\n\x0fplatform_family\x18\t \x01(\t\x12\x18\n\x10platform_version\x18\n \x01(\t\x12\x16\n\x0ekernel_version\x18\x0b \x01(\t\x12 \n\x03\x63pu\x18\x0c \x01(\x0b\x32\x0e.common.v2.CPUH\x00\x88\x01\x01\x12&\n\x06memory\x18\r \x01(\x0b\x32\x11.common.v2.MemoryH\x01\x88\x01\x01\x12(\n\x07network\x18\x0e \x01(\x0b\x32\x12.common.v2.NetworkH\x02\x88\x01\x01\x12\"\n\x04\x64isk\x18\x0f \x01(\x0b\x32\x0f.common.v2.DiskH\x03\x88\x01\x01\x12$\n\x05\x62uild\x18\x10 \x01(\x0b\x32\x10.common.v2.BuildH\x04\x88\x01\x01\x12\x1c\n\x14scheduler_cluster_id\x18\x11 \x01(\x04\x12\x16\n\x0e\x64isable_shared\x18\x12 \x01(\x08\x12\x12\n\nproxy_port\x18\x13 \x01(\x05\x12\x0c\n\x04name\x18\x14 \x01(\tB\x06\n\x04_cpuB\t\n\x07_memoryB\n\n\x08_networkB\x07\n\x05_diskB\x08\n\x06_build\"\xc7\x01\n\x03\x43PU\x12\x15\n\rlogical_count\x18\x01 \x01(\r\x12\x16\n\x0ephysical_count\x18\x02 \x01(\r\x12\x0f\n\x07percent\x18\x03 \x01(\x01\x12\x17\n\x0fprocess_percent\x18\x04 \x01(\x01\x12\'\n\x05times\x18\x05 \x01(\x0b\x32\x13.common.v2.CPUTimesH\x00\x88\x01\x01\x12)\n\x06\x63group\x18\x06 \x01(\x0b\x32\x14.common.v2.CgroupCPUH\x01\x88\x01\x01\x42\x08\n\x06_timesB\t\n\x07_cgroup\"@\n\tCgroupCPU\x12\x0e\n\x06period\x18\x01 \x01(\x04\x12\r\n\x05quota\x18\x02 \x01(\x03\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xa4\x01\n\x08\x43PUTimes\x12\x0c\n\x04user\x18\x01 \x01(\x01\x12\x0e\n\x06system\x18\x02 \x01(\x01\x12\x0c\n\x04idle\x18\x03 \x01(\x01\x12\x0c\n\x04nice\x18\x04 \x01(\x01\x12\x0e\n\x06iowait\x18\x05 \x01(\x01\x12\x0b\n\x03irq\x18\x06 \x01(\x01\x12\x0f\n\x07softirq\x18\x07 \x01(\x01\x12\r\n\x05steal\x18\x08 \x01(\x01\x12\r\n\x05guest\x18\t \x01(\x01\x12\x12\n\nguest_nice\x18\n \x01(\x01\"\xb3\x01\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tavailable\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x1c\n\x14process_used_percent\x18\x05 \x01(\x01\x12\x0c\n\x04\x66ree\x18\x06 \x01(\x04\x12,\n\x06\x63group\x18\x07 \x01(\x0b\x32\x17.common.v2.CgroupMemoryH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"B\n\x0c\x43groupMemory\x12\r\n\x05limit\x18\x01 \x01(\x03\x12\r\n\x05usage\x18\x02 \x01(\x04\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xf2\x02\n\x07Network\x12\x1c\n\x14tcp_connection_count\x18\x01 \x01(\r\x12#\n\x1bupload_tcp_connection_count\x18\x02 \x01(\r\x12\x15\n\x08location\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03idc\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x10max_rx_bandwidth\x18\t \x01(\x04\x12\x19\n\x0crx_bandwidth\x18\n \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x10max_tx_bandwidth\x18\x0b \x01(\x04\x12\x19\n\x0ctx_bandwidth\x18\x0c \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_locationB\x06\n\x04_idcB\x0f\n\r_rx_bandwidthB\x0f\n\r_tx_bandwidthJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\rdownload_rateR\x13\x64ownload_rate_limitR\x0bupload_rateR\x11upload_rate_limit\"\x8c\x02\n\x04\x44isk\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0c\n\x04\x66ree\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x14\n\x0cinodes_total\x18\x05 \x01(\x04\x12\x13\n\x0binodes_used\x18\x06 \x01(\x04\x12\x13\n\x0binodes_free\x18\x07 \x01(\x04\x12\x1b\n\x13inodes_used_percent\x18\x08 \x01(\x01\x12\x16\n\x0eread_bandwidth\x18\t \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\n \x01(\x04\x12*\n\x06\x63group\x18\x0b \x01(\x0b\x32\x15.common.v2.CgroupDiskH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"=\n\nCgroupDisk\x12\x16\n\x0eread_bandwidth\x18\x01 \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\x02 \x01(\x04\"\xbc\x01\n\x05\x42uild\x12\x13\n\x0bgit_version\x18\x01 \x01(\t\x12\x17\n\ngit_commit\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngo_version\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0crust_version\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08platform\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_git_commitB\r\n\x0b_go_versionB\x0f\n\r_rust_versionB\x0b\n\t_platform\"\xd6\x0b\n\x08\x44ownload\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12>\n\x0erequest_header\x18\t \x03(\x0b\x32&.common.v2.Download.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x16 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x17 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x18 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x19 \x01(\rH\x0b\x88\x01\x01\x12\x11\n\toverwrite\x18\x1a \x01(\x08\x12 \n\x13\x61\x63tual_piece_length\x18\x1b \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x1c \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1d \x01(\x04H\x0e\x88\x01\x01\x12(\n enable_task_id_based_blob_digest\x18\x1e \x01(\x08\x12\x31\n\x0chugging_face\x18\x1f \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x0f\x88\x01\x01\x12/\n\x0bmodel_scope\x18 \x01(\x0b\x32\x15.common.v2.ModelScopeH\x10\x88\x01\x01\x12\x15\n\rmetadata_only\x18! \x01(\x08\x12)\n\x08open_csg\x18\" \x01(\x0b\x32\x12.common.v2.OpenCSGH\x11\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_countB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scopeB\x0b\n\t_open_csgJ\x04\x08\x15\x10\x16R\rload_to_cache\"\xb3\x03\n\rObjectStorage\x12\x13\n\x06region\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08\x65ndpoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\raccess_key_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11\x61\x63\x63\x65ss_key_secret\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rsession_token\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0f\x63redential_path\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0epredefined_acl\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\x0esecurity_token\x18\x08 \x01(\tH\x07\x88\x01\x01\x12!\n\x14insecure_skip_verify\x18\t \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_regionB\x0b\n\t_endpointB\x10\n\x0e_access_key_idB\x14\n\x12_access_key_secretB\x10\n\x0e_session_tokenB\x12\n\x10_credential_pathB\x11\n\x0f_predefined_aclB\x11\n\x0f_security_tokenB\x17\n\x15_insecure_skip_verify\":\n\x04HDFS\x12\x1d\n\x10\x64\x65legation_token\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_delegation_token\"a\n\x0bHuggingFace\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"`\n\nModelScope\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"]\n\x07OpenCSG\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"&\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0e\n\x06length\x18\x02 \x01(\x04\"\xac\x02\n\x05Piece\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x16\n\tparent_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0e\n\x06length\x18\x04 \x01(\x04\x12\x0e\n\x06\x64igest\x18\x05 \x01(\t\x12\x14\n\x07\x63ontent\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x31\n\x0ctraffic_type\x18\x07 \x01(\x0e\x32\x16.common.v2.TrafficTypeH\x02\x88\x01\x01\x12\'\n\x04\x63ost\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0c\n\n_parent_idB\n\n\x08_contentB\x0f\n\r_traffic_type*7\n\tSizeScope\x12\n\n\x06NORMAL\x10\x00\x12\t\n\x05SMALL\x10\x01\x12\x08\n\x04TINY\x10\x02\x12\t\n\x05\x45MPTY\x10\x03*I\n\x08TaskType\x12\x0c\n\x08STANDARD\x10\x00\x12\x0e\n\nPERSISTENT\x10\x01\x12\x14\n\x10PERSISTENT_CACHE\x10\x02\x12\t\n\x05\x43\x41\x43HE\x10\x03*B\n\x0bTrafficType\x12\x12\n\x0e\x42\x41\x43K_TO_SOURCE\x10\x00\x12\x0f\n\x0bREMOTE_PEER\x10\x01\x12\x0e\n\nLOCAL_PEER\x10\x02*^\n\x08Priority\x12\n\n\x06LEVEL0\x10\x00\x12\n\n\x06LEVEL1\x10\x01\x12\n\n\x06LEVEL2\x10\x02\x12\n\n\x06LEVEL3\x10\x03\x12\n\n\x06LEVEL4\x10\x04\x12\n\n\x06LEVEL5\x10\x05\x12\n\n\x06LEVEL6\x10\x06\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\tcommon.v2\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbe\x03\n\x04Peer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\x1d\n\x04task\x18\x07 \x01(\x0b\x32\x0f.common.v2.Task\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xc8\x03\n\tCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\"\n\x04task\x18\x07 \x01(\x0b\x32\x14.common.v2.CacheTask\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xb0\x02\n\x0ePersistentPeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12\'\n\x04task\x18\x05 \x01(\x0b\x32\x19.common.v2.PersistentTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xba\x02\n\x13PersistentCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12,\n\x04task\x18\x05 \x01(\x0b\x32\x1e.common.v2.PersistentCacheTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xcf\x04\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12:\n\x0erequest_header\x18\x08 \x03(\x0b\x32\".common.v2.Task.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xd9\x04\n\tCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12?\n\x0erequest_header\x18\x08 \x03(\x0b\x32\'.common.v2.CacheTask.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xcb\x02\n\x0ePersistentTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x05 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\t\x12&\n\x03ttl\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x03\n\x13PersistentCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12\r\n\x05state\x18\n \x01(\t\x12&\n\x03ttl\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04_tagB\x0e\n\x0c_application\"\x94\x04\n\x04Host\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\x05\x12\x15\n\rdownload_port\x18\x06 \x01(\x05\x12\n\n\x02os\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\x12\x17\n\x0fplatform_family\x18\t \x01(\t\x12\x18\n\x10platform_version\x18\n \x01(\t\x12\x16\n\x0ekernel_version\x18\x0b \x01(\t\x12 \n\x03\x63pu\x18\x0c \x01(\x0b\x32\x0e.common.v2.CPUH\x00\x88\x01\x01\x12&\n\x06memory\x18\r \x01(\x0b\x32\x11.common.v2.MemoryH\x01\x88\x01\x01\x12(\n\x07network\x18\x0e \x01(\x0b\x32\x12.common.v2.NetworkH\x02\x88\x01\x01\x12\"\n\x04\x64isk\x18\x0f \x01(\x0b\x32\x0f.common.v2.DiskH\x03\x88\x01\x01\x12$\n\x05\x62uild\x18\x10 \x01(\x0b\x32\x10.common.v2.BuildH\x04\x88\x01\x01\x12\x1c\n\x14scheduler_cluster_id\x18\x11 \x01(\x04\x12\x16\n\x0e\x64isable_shared\x18\x12 \x01(\x08\x12\x12\n\nproxy_port\x18\x13 \x01(\x05\x12\x0c\n\x04name\x18\x14 \x01(\tB\x06\n\x04_cpuB\t\n\x07_memoryB\n\n\x08_networkB\x07\n\x05_diskB\x08\n\x06_build\"\xc7\x01\n\x03\x43PU\x12\x15\n\rlogical_count\x18\x01 \x01(\r\x12\x16\n\x0ephysical_count\x18\x02 \x01(\r\x12\x0f\n\x07percent\x18\x03 \x01(\x01\x12\x17\n\x0fprocess_percent\x18\x04 \x01(\x01\x12\'\n\x05times\x18\x05 \x01(\x0b\x32\x13.common.v2.CPUTimesH\x00\x88\x01\x01\x12)\n\x06\x63group\x18\x06 \x01(\x0b\x32\x14.common.v2.CgroupCPUH\x01\x88\x01\x01\x42\x08\n\x06_timesB\t\n\x07_cgroup\"@\n\tCgroupCPU\x12\x0e\n\x06period\x18\x01 \x01(\x04\x12\r\n\x05quota\x18\x02 \x01(\x03\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xa4\x01\n\x08\x43PUTimes\x12\x0c\n\x04user\x18\x01 \x01(\x01\x12\x0e\n\x06system\x18\x02 \x01(\x01\x12\x0c\n\x04idle\x18\x03 \x01(\x01\x12\x0c\n\x04nice\x18\x04 \x01(\x01\x12\x0e\n\x06iowait\x18\x05 \x01(\x01\x12\x0b\n\x03irq\x18\x06 \x01(\x01\x12\x0f\n\x07softirq\x18\x07 \x01(\x01\x12\r\n\x05steal\x18\x08 \x01(\x01\x12\r\n\x05guest\x18\t \x01(\x01\x12\x12\n\nguest_nice\x18\n \x01(\x01\"\xb3\x01\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tavailable\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x1c\n\x14process_used_percent\x18\x05 \x01(\x01\x12\x0c\n\x04\x66ree\x18\x06 \x01(\x04\x12,\n\x06\x63group\x18\x07 \x01(\x0b\x32\x17.common.v2.CgroupMemoryH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"B\n\x0c\x43groupMemory\x12\r\n\x05limit\x18\x01 \x01(\x03\x12\r\n\x05usage\x18\x02 \x01(\x04\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xf2\x02\n\x07Network\x12\x1c\n\x14tcp_connection_count\x18\x01 \x01(\r\x12#\n\x1bupload_tcp_connection_count\x18\x02 \x01(\r\x12\x15\n\x08location\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03idc\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x10max_rx_bandwidth\x18\t \x01(\x04\x12\x19\n\x0crx_bandwidth\x18\n \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x10max_tx_bandwidth\x18\x0b \x01(\x04\x12\x19\n\x0ctx_bandwidth\x18\x0c \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_locationB\x06\n\x04_idcB\x0f\n\r_rx_bandwidthB\x0f\n\r_tx_bandwidthJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\rdownload_rateR\x13\x64ownload_rate_limitR\x0bupload_rateR\x11upload_rate_limit\"\x8c\x02\n\x04\x44isk\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0c\n\x04\x66ree\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x14\n\x0cinodes_total\x18\x05 \x01(\x04\x12\x13\n\x0binodes_used\x18\x06 \x01(\x04\x12\x13\n\x0binodes_free\x18\x07 \x01(\x04\x12\x1b\n\x13inodes_used_percent\x18\x08 \x01(\x01\x12\x16\n\x0eread_bandwidth\x18\t \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\n \x01(\x04\x12*\n\x06\x63group\x18\x0b \x01(\x0b\x32\x15.common.v2.CgroupDiskH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"=\n\nCgroupDisk\x12\x16\n\x0eread_bandwidth\x18\x01 \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\x02 \x01(\x04\"\xbc\x01\n\x05\x42uild\x12\x13\n\x0bgit_version\x18\x01 \x01(\t\x12\x17\n\ngit_commit\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngo_version\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0crust_version\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08platform\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_git_commitB\r\n\x0b_go_versionB\x0f\n\r_rust_versionB\x0b\n\t_platform\"\xef\x0b\n\x08\x44ownload\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12>\n\x0erequest_header\x18\t \x03(\x0b\x32&.common.v2.Download.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x16 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x17 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x18 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x19 \x01(\rH\x0b\x88\x01\x01\x12\x11\n\toverwrite\x18\x1a \x01(\x08\x12 \n\x13\x61\x63tual_piece_length\x18\x1b \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x1c \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1d \x01(\x04H\x0e\x88\x01\x01\x12(\n enable_task_id_based_blob_digest\x18\x1e \x01(\x08\x12\x31\n\x0chugging_face\x18\x1f \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x0f\x88\x01\x01\x12/\n\x0bmodel_scope\x18 \x01(\x0b\x32\x15.common.v2.ModelScopeH\x10\x88\x01\x01\x12\x15\n\rmetadata_only\x18! \x01(\x08\x12)\n\x08open_csg\x18\" \x01(\x0b\x32\x12.common.v2.OpenCSGH\x11\x88\x01\x01\x12\x17\n\x0fneed_scheduling\x18# \x01(\x08\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_countB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scopeB\x0b\n\t_open_csgJ\x04\x08\x15\x10\x16R\rload_to_cache\"\xb3\x03\n\rObjectStorage\x12\x13\n\x06region\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08\x65ndpoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\raccess_key_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11\x61\x63\x63\x65ss_key_secret\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rsession_token\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0f\x63redential_path\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0epredefined_acl\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\x0esecurity_token\x18\x08 \x01(\tH\x07\x88\x01\x01\x12!\n\x14insecure_skip_verify\x18\t \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_regionB\x0b\n\t_endpointB\x10\n\x0e_access_key_idB\x14\n\x12_access_key_secretB\x10\n\x0e_session_tokenB\x12\n\x10_credential_pathB\x11\n\x0f_predefined_aclB\x11\n\x0f_security_tokenB\x17\n\x15_insecure_skip_verify\":\n\x04HDFS\x12\x1d\n\x10\x64\x65legation_token\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_delegation_token\"a\n\x0bHuggingFace\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"`\n\nModelScope\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"]\n\x07OpenCSG\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"&\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0e\n\x06length\x18\x02 \x01(\x04\"\xac\x02\n\x05Piece\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x16\n\tparent_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0e\n\x06length\x18\x04 \x01(\x04\x12\x0e\n\x06\x64igest\x18\x05 \x01(\t\x12\x14\n\x07\x63ontent\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x31\n\x0ctraffic_type\x18\x07 \x01(\x0e\x32\x16.common.v2.TrafficTypeH\x02\x88\x01\x01\x12\'\n\x04\x63ost\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0c\n\n_parent_idB\n\n\x08_contentB\x0f\n\r_traffic_type*7\n\tSizeScope\x12\n\n\x06NORMAL\x10\x00\x12\t\n\x05SMALL\x10\x01\x12\x08\n\x04TINY\x10\x02\x12\t\n\x05\x45MPTY\x10\x03*I\n\x08TaskType\x12\x0c\n\x08STANDARD\x10\x00\x12\x0e\n\nPERSISTENT\x10\x01\x12\x14\n\x10PERSISTENT_CACHE\x10\x02\x12\t\n\x05\x43\x41\x43HE\x10\x03*B\n\x0bTrafficType\x12\x12\n\x0e\x42\x41\x43K_TO_SOURCE\x10\x00\x12\x0f\n\x0bREMOTE_PEER\x10\x01\x12\x0e\n\nLOCAL_PEER\x10\x02*^\n\x08Priority\x12\n\n\x06LEVEL0\x10\x00\x12\n\n\x06LEVEL1\x10\x01\x12\n\n\x06LEVEL2\x10\x02\x12\n\n\x06LEVEL3\x10\x03\x12\n\n\x06LEVEL4\x10\x04\x12\n\n\x06LEVEL5\x10\x05\x12\n\n\x06LEVEL6\x10\x06\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,14 +39,14 @@ _globals['_CACHETASK_REQUESTHEADERENTRY']._serialized_options = b'8\001' _globals['_DOWNLOAD_REQUESTHEADERENTRY']._loaded_options = None _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_options = b'8\001' - _globals['_SIZESCOPE']._serialized_start=8333 - _globals['_SIZESCOPE']._serialized_end=8388 - _globals['_TASKTYPE']._serialized_start=8390 - _globals['_TASKTYPE']._serialized_end=8463 - _globals['_TRAFFICTYPE']._serialized_start=8465 - _globals['_TRAFFICTYPE']._serialized_end=8531 - _globals['_PRIORITY']._serialized_start=8533 - _globals['_PRIORITY']._serialized_end=8627 + _globals['_SIZESCOPE']._serialized_start=8358 + _globals['_SIZESCOPE']._serialized_end=8413 + _globals['_TASKTYPE']._serialized_start=8415 + _globals['_TASKTYPE']._serialized_end=8488 + _globals['_TRAFFICTYPE']._serialized_start=8490 + _globals['_TRAFFICTYPE']._serialized_end=8556 + _globals['_PRIORITY']._serialized_start=8558 + _globals['_PRIORITY']._serialized_end=8652 _globals['_PEER']._serialized_start=93 _globals['_PEER']._serialized_end=539 _globals['_CACHEPEER']._serialized_start=542 @@ -88,21 +88,21 @@ _globals['_BUILD']._serialized_start=5513 _globals['_BUILD']._serialized_end=5701 _globals['_DOWNLOAD']._serialized_start=5704 - _globals['_DOWNLOAD']._serialized_end=7198 + _globals['_DOWNLOAD']._serialized_end=7223 _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_start=2129 _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_end=2181 - _globals['_OBJECTSTORAGE']._serialized_start=7201 - _globals['_OBJECTSTORAGE']._serialized_end=7636 - _globals['_HDFS']._serialized_start=7638 - _globals['_HDFS']._serialized_end=7696 - _globals['_HUGGINGFACE']._serialized_start=7698 - _globals['_HUGGINGFACE']._serialized_end=7795 - _globals['_MODELSCOPE']._serialized_start=7797 - _globals['_MODELSCOPE']._serialized_end=7893 - _globals['_OPENCSG']._serialized_start=7895 - _globals['_OPENCSG']._serialized_end=7988 - _globals['_RANGE']._serialized_start=7990 - _globals['_RANGE']._serialized_end=8028 - _globals['_PIECE']._serialized_start=8031 - _globals['_PIECE']._serialized_end=8331 + _globals['_OBJECTSTORAGE']._serialized_start=7226 + _globals['_OBJECTSTORAGE']._serialized_end=7661 + _globals['_HDFS']._serialized_start=7663 + _globals['_HDFS']._serialized_end=7721 + _globals['_HUGGINGFACE']._serialized_start=7723 + _globals['_HUGGINGFACE']._serialized_end=7820 + _globals['_MODELSCOPE']._serialized_start=7822 + _globals['_MODELSCOPE']._serialized_end=7918 + _globals['_OPENCSG']._serialized_start=7920 + _globals['_OPENCSG']._serialized_end=8013 + _globals['_RANGE']._serialized_start=8015 + _globals['_RANGE']._serialized_end=8053 + _globals['_PIECE']._serialized_start=8056 + _globals['_PIECE']._serialized_end=8356 # @@protoc_insertion_point(module_scope) diff --git a/python/dragonfly_api/common_pb2.pyi b/python/dragonfly_api/common_pb2.pyi index 5e0e34da..95f2aeb5 100644 --- a/python/dragonfly_api/common_pb2.pyi +++ b/python/dragonfly_api/common_pb2.pyi @@ -494,7 +494,7 @@ class Build(_message.Message): def __init__(self, git_version: _Optional[str] = ..., git_commit: _Optional[str] = ..., go_version: _Optional[str] = ..., rust_version: _Optional[str] = ..., platform: _Optional[str] = ...) -> None: ... class Download(_message.Message): - __slots__ = ("url", "digest", "range", "type", "tag", "application", "priority", "filtered_query_params", "request_header", "piece_length", "output_path", "timeout", "disable_back_to_source", "need_back_to_source", "certificate_chain", "prefetch", "object_storage", "hdfs", "is_prefetch", "need_piece_content", "force_hard_link", "content_for_calculating_task_id", "remote_ip", "concurrent_piece_count", "overwrite", "actual_piece_length", "actual_content_length", "actual_piece_count", "enable_task_id_based_blob_digest", "hugging_face", "model_scope", "metadata_only", "open_csg") + __slots__ = ("url", "digest", "range", "type", "tag", "application", "priority", "filtered_query_params", "request_header", "piece_length", "output_path", "timeout", "disable_back_to_source", "need_back_to_source", "certificate_chain", "prefetch", "object_storage", "hdfs", "is_prefetch", "need_piece_content", "force_hard_link", "content_for_calculating_task_id", "remote_ip", "concurrent_piece_count", "overwrite", "actual_piece_length", "actual_content_length", "actual_piece_count", "enable_task_id_based_blob_digest", "hugging_face", "model_scope", "metadata_only", "open_csg", "need_scheduling") class RequestHeaderEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -535,6 +535,7 @@ class Download(_message.Message): MODEL_SCOPE_FIELD_NUMBER: _ClassVar[int] METADATA_ONLY_FIELD_NUMBER: _ClassVar[int] OPEN_CSG_FIELD_NUMBER: _ClassVar[int] + NEED_SCHEDULING_FIELD_NUMBER: _ClassVar[int] url: str digest: str range: Range @@ -568,7 +569,8 @@ class Download(_message.Message): model_scope: ModelScope metadata_only: bool open_csg: OpenCSG - def __init__(self, url: _Optional[str] = ..., digest: _Optional[str] = ..., range: _Optional[_Union[Range, _Mapping]] = ..., type: _Optional[_Union[TaskType, str]] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., priority: _Optional[_Union[Priority, str]] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., request_header: _Optional[_Mapping[str, str]] = ..., piece_length: _Optional[int] = ..., output_path: _Optional[str] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., disable_back_to_source: bool = ..., need_back_to_source: bool = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., prefetch: bool = ..., object_storage: _Optional[_Union[ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[HDFS, _Mapping]] = ..., is_prefetch: bool = ..., need_piece_content: bool = ..., force_hard_link: bool = ..., content_for_calculating_task_id: _Optional[str] = ..., remote_ip: _Optional[str] = ..., concurrent_piece_count: _Optional[int] = ..., overwrite: bool = ..., actual_piece_length: _Optional[int] = ..., actual_content_length: _Optional[int] = ..., actual_piece_count: _Optional[int] = ..., enable_task_id_based_blob_digest: bool = ..., hugging_face: _Optional[_Union[HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[ModelScope, _Mapping]] = ..., metadata_only: bool = ..., open_csg: _Optional[_Union[OpenCSG, _Mapping]] = ...) -> None: ... + need_scheduling: bool + def __init__(self, url: _Optional[str] = ..., digest: _Optional[str] = ..., range: _Optional[_Union[Range, _Mapping]] = ..., type: _Optional[_Union[TaskType, str]] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., priority: _Optional[_Union[Priority, str]] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., request_header: _Optional[_Mapping[str, str]] = ..., piece_length: _Optional[int] = ..., output_path: _Optional[str] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., disable_back_to_source: bool = ..., need_back_to_source: bool = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., prefetch: bool = ..., object_storage: _Optional[_Union[ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[HDFS, _Mapping]] = ..., is_prefetch: bool = ..., need_piece_content: bool = ..., force_hard_link: bool = ..., content_for_calculating_task_id: _Optional[str] = ..., remote_ip: _Optional[str] = ..., concurrent_piece_count: _Optional[int] = ..., overwrite: bool = ..., actual_piece_length: _Optional[int] = ..., actual_content_length: _Optional[int] = ..., actual_piece_count: _Optional[int] = ..., enable_task_id_based_blob_digest: bool = ..., hugging_face: _Optional[_Union[HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[ModelScope, _Mapping]] = ..., metadata_only: bool = ..., open_csg: _Optional[_Union[OpenCSG, _Mapping]] = ..., need_scheduling: bool = ...) -> None: ... class ObjectStorage(_message.Message): __slots__ = ("region", "endpoint", "access_key_id", "access_key_secret", "session_token", "credential_path", "predefined_acl", "security_token", "insecure_skip_verify") diff --git a/src/common.v2.rs b/src/common.v2.rs index 50e8dbe9..a1cdbd95 100644 --- a/src/common.v2.rs +++ b/src/common.v2.rs @@ -784,6 +784,12 @@ pub struct Download { /// OpenCSG protocol information. #[prost(message, optional, tag = "34")] pub open_csg: ::core::option::Option, + /// Need scheduling is the flag to indicate whether the download needs to be scheduled + /// by the scheduler even if the content length is smaller than the minimum piece length, + /// so that the peer announces the task to the scheduler and other peers can discover + /// it as a parent. + #[prost(bool, tag = "35")] + pub need_scheduling: bool, } /// Object Storage related information. #[derive(serde::Serialize, serde::Deserialize)] diff --git a/src/descriptor.bin b/src/descriptor.bin index 6236f8223f19573a22965496e2acf859c594ce38..bd99bc08b05c83fb1f8998cccf6a7db3feb6d8a4 100644 GIT binary patch delta 2479 zcmY+GQA|@;7{}Yo{VwgPP&`m*smcKqHKQEKZ$f>d-eIbQSKP6N=JmviM-w zOicE&hx0%(v-z;iC5A8p1Q}tA!^M#>Oti|XG7!4NAWM`GLI@%3`)+%8w#WZ>&-eR( z|HJ7ye0wGD+SR;KWuhB?VCANVeI7FnKx#dji=)c&1U0;mT0WWUn!hB zT*vdNeB$3~=d|v8(K%J6HTKol`*S_(of^yKP~iB~xV1j(JgN2FJ9+7p^ZUNTKYr;i z|5{_Z&b4x`e*@a4(l0b|6lp@4bcU{J+vJho+?UBFE)s3xjA?&28<{xsiAXf7O1m&G znlTam$f`E9#S&&LAzI8>Q=(Z!<09S~X=yRr@oOYzEoqI$qOBKN#kr{2U}hIqGZAm2 zB?)WEITIT$M`E$I3$X?hXF$J1Bz~5L`M-B0)+pMr)GnweE*j9JF&b}ZyJ)sE5lx6l zTtvjVNIMQy!&n{z3J+F#!Ox)kn-eZmbx9- z`CqAJrPau|egm{%rjcRe4e*q*JxtRJxp5O5KgoR$c6)Dv%g6R1yHLX=UGmC<{oyXq zGNWP*N9_X7M#~T-8g>Eq+Y(3Zg5V~0&;sDcZVAal;cf+RBA{CVoU{gbX%^r_KsRjO z!VX&ioWDnYo_s&tqW~HLdK5rIKo9V;EI>m*4^&jLBNhNvujCJpg?kks2LZhbkb{6; z;FVcG4z)nlcDCOF=v?oYUp+h+?pFXE0sRV~BcNYRpd+B4CNM1kt{sr#QB!z80f34M z00GAqB`qz>osuB49`XauF~@fMyHe;`*@sed6N-!wTR+z%Y2cSxXlJhM{1qEfFvb z+jp>?c)E(XaT^?Wz*!m;@4b8AggpNwSXhJ&x52f6y@eJreY1Lqc#;K zQb&Q8SX7iq9fi^$`^9My@aveom%0-g1I?9PLq~QD+?k(%PopC{21P#W@9op@$d1dO zA2-#FD^EJI%3)bmnU@NijF>gX6J0^Q6XmA6y*c>3T6GNy_U_cGo3s zD%Oyiw5ceOnzWOkL~4?f+@>VO?ByDqMZaKwoFix2CD;;q~zLDvo57P zDM?Cs5;bKfDYlZNC`mOYDdEN>IR28?CtveUg3HT7NG+ixQ}Xd-ZQYbj#TrtlY${5m zPT5IN;#gCZWQ>xOkmrot|L1sU#!iAYD%wdGH;P@L4aD_M?i8Yy>ukJd1QlBpHJ_lDGD?<}M1)GzV)8(N#dn~LW zbq?J5*2zJMW6i-v&V<#0ALr%y>5AHU)j>h#!JYYC`K=)Hzzf-%I7fgRF9BasIWql* z_a!-RMoxg77bH9@3oY0jtRZK?=AcC91>(@G0Sdb)>z|c}7wrwf8g9sE$Kxoc9)mW9_8z@Q>{GOuz#qdRvEN;1y|N(8LYvq7gkpy8dnE-%g2 z)~th;dE2mt9qSOxyi_Q$W1ZfK3abMz*$zXdW-CR9fsZu(V-V2jTJ114RoN0-I*iYP P>8ruC^HwmexljKCy@9d6 delta 2102 zcmY+FT}+#06vx}Q?|CUt#|jTnD2(yVW~8gz{K&M8F@!8LDtNmXcVQOP8#Q|8;*FZc zD-)g=61{Q8g%Cmz8>~93A_>7bNl3?79d>*)Xb2L51PNmFf1dWq6EFYgeb4Wl|J&1Z zKDt`*={psl#k-w9|45zg9&hr0o?5xk=BbW9}}O1JM7d@-IA<7_|Tg zfKdx@02n3NTmm=%j8a>>cv=IX#?*TYeTgv(2mml<0RaHUNVb;%0ZyT=6QWlGTNGVpiYdP);OUI&{bf2fLr$>t4o~R}l^3VJ z*5N6gp_*F#6W2PJ(pmM;-GSt+t;th5Yish9&YCet1^}}>=5aWQNbe^3ZmHbeQ{kHw zl(6Tz5q2`CB1>nIbB2l-sB?x23F@420txCIJNcfSM7ZX>dUxrE*t~Iq7zd3LNTkfO zlNWRboMhD-zg|veZB2HPwKbWVHBKVhNtT^-!%3a=7Rh%{Me_HD7bzGPF;MH+Nlx|W z8+CQH}%|dJiJQ53egN|Jv%9=50_hG1=9y&z!a$b zs2&wa^iiNHDOz*}9w8=W26o+m>YNwk^qXyv-$xO+xLc*O0MeGkCr3*bH8;JDky{o5XtERhiXi zW4ktk_vx<9;C;Hw8OL=79PFvb)>;yK))w#6JqlHpeDFTqqpIRjiaNYc_xLCko5Vid zS3_&fiG2(3I7p#L3BdbwpX!PyA?olx-RG0Q;~aIcPY=}2TKv=jImNq$7%~p1v3P|b xk#WE`piO6BfgY0TE3~&9@&V>s9d&qR9@4QcBaw1QZx0r(4i^0B!GcqM=|8klMMwYu