This is an automated email from the ASF dual-hosted git repository.
manirajv06 pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/yunikorn-scheduler-interface.git
The following commit(s) were added to refs/heads/master by this push:
new bd4e35e [YUNIKORN-3433] Send the plugin errors back to core for
preemption ask (#174)
bd4e35e is described below
commit bd4e35e972a40ef0f4da23ea53d352f51c8f473d
Author: Manikandan R <[email protected]>
AuthorDate: Thu Sep 17 12:10:53 2026 +0530
[YUNIKORN-3433] Send the plugin errors back to core for preemption ask
(#174)
Closes: #174
Signed-off-by: Manikandan R <[email protected]>
---
lib/go/si/si.pb.go | 77 +++++++++++++++++++++++++++------------------
scheduler-interface-spec.md | 2 ++
si.proto | 2 ++
3 files changed, 50 insertions(+), 31 deletions(-)
diff --git a/lib/go/si/si.pb.go b/lib/go/si/si.pb.go
index e294b8d..2c4f528 100644
--- a/lib/go/si/si.pb.go
+++ b/lib/go/si/si.pb.go
@@ -2236,7 +2236,9 @@ type PreemptionPredicatesResponse struct {
// whether or not container will schedule on the node
Success bool `protobuf:"varint,1,opt,name=success,proto3"
json:"success,omitempty"`
// index of last allocation which was removed before success (ignored
during failure)
- Index int32 `protobuf:"varint,2,opt,name=index,proto3"
json:"index,omitempty"`
+ Index int32 `protobuf:"varint,2,opt,name=index,proto3"
json:"index,omitempty"`
+ // errors, if any
+ ErrorMessage map[string]int32
`protobuf:"bytes,3,rep,name=errorMessage,proto3" json:"errorMessage,omitempty"
protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -2285,6 +2287,13 @@ func (x *PreemptionPredicatesResponse) GetIndex() int32 {
return 0
}
+func (x *PreemptionPredicatesResponse) GetErrorMessage() map[string]int32 {
+ if x != nil {
+ return x.ErrorMessage
+ }
+ return nil
+}
+
type Empty struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
@@ -2805,10 +2814,14 @@ const
file_yunikorn_scheduler_interface_si_proto_rawDesc = "" +
"\x15preemptAllocationKeys\x18\x03
\x03(\tR\x15preemptAllocationKeys\x12\x1e\n" +
"\n" +
"startIndex\x18\x04 \x01(\x05R\n" +
- "startIndex\"N\n" +
+ "startIndex\"\xea\x01\n" +
"\x1cPreemptionPredicatesResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x14\n" +
- "\x05index\x18\x02 \x01(\x05R\x05index\"\a\n" +
+ "\x05index\x18\x02 \x01(\x05R\x05index\x12Y\n" +
+ "\ferrorMessage\x18\x03
\x03(\v25.si.v1.PreemptionPredicatesResponse.ErrorMessageEntryR\ferrorMessage\x1a?\n"
+
+ "\x11ErrorMessageEntry\x12\x10\n" +
+ "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+ "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\a\n" +
"\x05Empty\"\x88\x02\n" +
"\x1bPreFilterPredicatesResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12[\n" +
@@ -2939,7 +2952,7 @@ func
file_yunikorn_scheduler_interface_si_proto_rawDescGZIP() []byte {
}
var file_yunikorn_scheduler_interface_si_proto_enumTypes =
make([]protoimpl.EnumInfo, 6)
-var file_yunikorn_scheduler_interface_si_proto_msgTypes =
make([]protoimpl.MessageInfo, 41)
+var file_yunikorn_scheduler_interface_si_proto_msgTypes =
make([]protoimpl.MessageInfo, 42)
var file_yunikorn_scheduler_interface_si_proto_goTypes = []any{
(TerminationType)(0), // 0: si.v1.TerminationType
(NodeInfo_ActionFromRM)(0), // 1: si.v1.NodeInfo.ActionFromRM
@@ -2986,9 +2999,10 @@ var file_yunikorn_scheduler_interface_si_proto_goTypes =
[]any{
nil, // 42:
si.v1.AddApplicationRequest.TagsEntry
nil, // 43:
si.v1.Allocation.AllocationTagsEntry
nil, // 44:
si.v1.NodeInfo.AttributesEntry
- nil, // 45:
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry
- nil, // 46:
si.v1.UpdateConfigurationRequest.ExtraConfigEntry
- (*descriptorpb.FieldOptions)(nil), // 47:
google.protobuf.FieldOptions
+ nil, // 45:
si.v1.PreemptionPredicatesResponse.ErrorMessageEntry
+ nil, // 46:
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry
+ nil, // 47:
si.v1.UpdateConfigurationRequest.ExtraConfigEntry
+ (*descriptorpb.FieldOptions)(nil), // 48:
google.protobuf.FieldOptions
}
var file_yunikorn_scheduler_interface_si_proto_depIdxs = []int32{
39, // 0: si.v1.RegisterResourceManagerRequest.buildInfo:type_name ->
si.v1.RegisterResourceManagerRequest.BuildInfoEntry
@@ -3018,29 +3032,30 @@ var file_yunikorn_scheduler_interface_si_proto_depIdxs
= []int32{
1, // 24: si.v1.NodeInfo.action:type_name ->
si.v1.NodeInfo.ActionFromRM
44, // 25: si.v1.NodeInfo.attributes:type_name ->
si.v1.NodeInfo.AttributesEntry
19, // 26: si.v1.NodeInfo.schedulableResource:type_name ->
si.v1.Resource
- 45, // 27: si.v1.PreFilterPredicatesResponse.FeasibleNodes:type_name ->
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry
- 2, // 28: si.v1.UpdateContainerSchedulingStateRequest.state:type_name
-> si.v1.UpdateContainerSchedulingStateRequest.SchedulingState
- 46, // 29: si.v1.UpdateConfigurationRequest.extraConfig:type_name ->
si.v1.UpdateConfigurationRequest.ExtraConfigEntry
- 3, // 30: si.v1.EventRecord.type:type_name -> si.v1.EventRecord.Type
- 4, // 31: si.v1.EventRecord.eventChangeType:type_name ->
si.v1.EventRecord.ChangeType
- 5, // 32: si.v1.EventRecord.eventChangeDetail:type_name ->
si.v1.EventRecord.ChangeDetail
- 19, // 33: si.v1.EventRecord.resource:type_name -> si.v1.Resource
- 20, // 34: si.v1.Resource.ResourcesEntry.value:type_name ->
si.v1.Quantity
- 34, // 35:
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry.value:type_name ->
si.v1.Empty
- 47, // 36: si.v1.si_secret:extendee -> google.protobuf.FieldOptions
- 6, // 37: si.v1.Scheduler.RegisterResourceManager:input_type ->
si.v1.RegisterResourceManagerRequest
- 8, // 38: si.v1.Scheduler.UpdateAllocation:input_type ->
si.v1.AllocationRequest
- 9, // 39: si.v1.Scheduler.UpdateApplication:input_type ->
si.v1.ApplicationRequest
- 10, // 40: si.v1.Scheduler.UpdateNode:input_type -> si.v1.NodeRequest
- 7, // 41: si.v1.Scheduler.RegisterResourceManager:output_type ->
si.v1.RegisterResourceManagerResponse
- 11, // 42: si.v1.Scheduler.UpdateAllocation:output_type ->
si.v1.AllocationResponse
- 12, // 43: si.v1.Scheduler.UpdateApplication:output_type ->
si.v1.ApplicationResponse
- 13, // 44: si.v1.Scheduler.UpdateNode:output_type -> si.v1.NodeResponse
- 41, // [41:45] is the sub-list for method output_type
- 37, // [37:41] is the sub-list for method input_type
- 37, // [37:37] is the sub-list for extension type_name
- 36, // [36:37] is the sub-list for extension extendee
- 0, // [0:36] is the sub-list for field type_name
+ 45, // 27: si.v1.PreemptionPredicatesResponse.errorMessage:type_name ->
si.v1.PreemptionPredicatesResponse.ErrorMessageEntry
+ 46, // 28: si.v1.PreFilterPredicatesResponse.FeasibleNodes:type_name ->
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry
+ 2, // 29: si.v1.UpdateContainerSchedulingStateRequest.state:type_name
-> si.v1.UpdateContainerSchedulingStateRequest.SchedulingState
+ 47, // 30: si.v1.UpdateConfigurationRequest.extraConfig:type_name ->
si.v1.UpdateConfigurationRequest.ExtraConfigEntry
+ 3, // 31: si.v1.EventRecord.type:type_name -> si.v1.EventRecord.Type
+ 4, // 32: si.v1.EventRecord.eventChangeType:type_name ->
si.v1.EventRecord.ChangeType
+ 5, // 33: si.v1.EventRecord.eventChangeDetail:type_name ->
si.v1.EventRecord.ChangeDetail
+ 19, // 34: si.v1.EventRecord.resource:type_name -> si.v1.Resource
+ 20, // 35: si.v1.Resource.ResourcesEntry.value:type_name ->
si.v1.Quantity
+ 34, // 36:
si.v1.PreFilterPredicatesResponse.FeasibleNodesEntry.value:type_name ->
si.v1.Empty
+ 48, // 37: si.v1.si_secret:extendee -> google.protobuf.FieldOptions
+ 6, // 38: si.v1.Scheduler.RegisterResourceManager:input_type ->
si.v1.RegisterResourceManagerRequest
+ 8, // 39: si.v1.Scheduler.UpdateAllocation:input_type ->
si.v1.AllocationRequest
+ 9, // 40: si.v1.Scheduler.UpdateApplication:input_type ->
si.v1.ApplicationRequest
+ 10, // 41: si.v1.Scheduler.UpdateNode:input_type -> si.v1.NodeRequest
+ 7, // 42: si.v1.Scheduler.RegisterResourceManager:output_type ->
si.v1.RegisterResourceManagerResponse
+ 11, // 43: si.v1.Scheduler.UpdateAllocation:output_type ->
si.v1.AllocationResponse
+ 12, // 44: si.v1.Scheduler.UpdateApplication:output_type ->
si.v1.ApplicationResponse
+ 13, // 45: si.v1.Scheduler.UpdateNode:output_type -> si.v1.NodeResponse
+ 42, // [42:46] is the sub-list for method output_type
+ 38, // [38:42] is the sub-list for method input_type
+ 38, // [38:38] is the sub-list for extension type_name
+ 37, // [37:38] is the sub-list for extension extendee
+ 0, // [0:37] is the sub-list for field type_name
}
func init() { file_yunikorn_scheduler_interface_si_proto_init() }
@@ -3054,7 +3069,7 @@ func file_yunikorn_scheduler_interface_si_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor:
unsafe.Slice(unsafe.StringData(file_yunikorn_scheduler_interface_si_proto_rawDesc),
len(file_yunikorn_scheduler_interface_si_proto_rawDesc)),
NumEnums: 6,
- NumMessages: 41,
+ NumMessages: 42,
NumExtensions: 1,
NumServices: 1,
},
diff --git a/scheduler-interface-spec.md b/scheduler-interface-spec.md
index 519e48b..2d895b6 100644
--- a/scheduler-interface-spec.md
+++ b/scheduler-interface-spec.md
@@ -748,6 +748,8 @@ message PreemptionPredicatesResponse {
bool success = 1;
// index of last allocation which was removed before success (ignored
during failure)
int32 index = 2;
+ // errors, if any
+ map<string, int32> errorMessage = 3;
}
message Empty {}
diff --git a/si.proto b/si.proto
index f7e6ca1..57eb0a3 100644
--- a/si.proto
+++ b/si.proto
@@ -390,6 +390,8 @@ message PreemptionPredicatesResponse {
bool success = 1;
// index of last allocation which was removed before success (ignored
during failure)
int32 index = 2;
+ // errors, if any
+ map<string, int32> errorMessage = 3;
}
message Empty {}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]