diff --git a/src/control/common/proto/ctl/check.pb.go b/src/control/common/proto/ctl/check.pb.go new file mode 100644 index 00000000000..113910285f5 --- /dev/null +++ b/src/control/common/proto/ctl/check.pb.go @@ -0,0 +1,243 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// This file defines check engine-related messages. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.1 +// protoc v3.14.0 +// source: ctl/check.proto + +package ctl + +import ( + mgmt "github.com/daos-stack/daos/src/control/common/proto/mgmt" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Send an action request to a specific check engine. +type CheckEngineActReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rank uint32 `protobuf:"varint,1,opt,name=rank,proto3" json:"rank,omitempty"` + Req *mgmt.CheckActReq `protobuf:"bytes,2,opt,name=req,proto3" json:"req,omitempty"` +} + +func (x *CheckEngineActReq) Reset() { + *x = CheckEngineActReq{} + if protoimpl.UnsafeEnabled { + mi := &file_ctl_check_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckEngineActReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckEngineActReq) ProtoMessage() {} + +func (x *CheckEngineActReq) ProtoReflect() protoreflect.Message { + mi := &file_ctl_check_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckEngineActReq.ProtoReflect.Descriptor instead. +func (*CheckEngineActReq) Descriptor() ([]byte, []int) { + return file_ctl_check_proto_rawDescGZIP(), []int{0} +} + +func (x *CheckEngineActReq) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *CheckEngineActReq) GetReq() *mgmt.CheckActReq { + if x != nil { + return x.Req + } + return nil +} + +type CheckEngineActResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rank uint32 `protobuf:"varint,1,opt,name=rank,proto3" json:"rank,omitempty"` + Resp *mgmt.CheckActResp `protobuf:"bytes,2,opt,name=resp,proto3" json:"resp,omitempty"` +} + +func (x *CheckEngineActResp) Reset() { + *x = CheckEngineActResp{} + if protoimpl.UnsafeEnabled { + mi := &file_ctl_check_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckEngineActResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckEngineActResp) ProtoMessage() {} + +func (x *CheckEngineActResp) ProtoReflect() protoreflect.Message { + mi := &file_ctl_check_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckEngineActResp.ProtoReflect.Descriptor instead. +func (*CheckEngineActResp) Descriptor() ([]byte, []int) { + return file_ctl_check_proto_rawDescGZIP(), []int{1} +} + +func (x *CheckEngineActResp) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *CheckEngineActResp) GetResp() *mgmt.CheckActResp { + if x != nil { + return x.Resp + } + return nil +} + +var File_ctl_check_proto protoreflect.FileDescriptor + +var file_ctl_check_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x63, 0x74, 0x6c, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x03, 0x63, 0x74, 0x6c, 0x1a, 0x10, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4c, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, + 0x6b, 0x12, 0x23, 0x0a, 0x03, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x52, 0x03, 0x72, 0x65, 0x71, 0x22, 0x50, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, + 0x12, 0x26, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x04, 0x72, 0x65, 0x73, 0x70, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x63, 0x74, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ctl_check_proto_rawDescOnce sync.Once + file_ctl_check_proto_rawDescData = file_ctl_check_proto_rawDesc +) + +func file_ctl_check_proto_rawDescGZIP() []byte { + file_ctl_check_proto_rawDescOnce.Do(func() { + file_ctl_check_proto_rawDescData = protoimpl.X.CompressGZIP(file_ctl_check_proto_rawDescData) + }) + return file_ctl_check_proto_rawDescData +} + +var file_ctl_check_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_ctl_check_proto_goTypes = []interface{}{ + (*CheckEngineActReq)(nil), // 0: ctl.CheckEngineActReq + (*CheckEngineActResp)(nil), // 1: ctl.CheckEngineActResp + (*mgmt.CheckActReq)(nil), // 2: mgmt.CheckActReq + (*mgmt.CheckActResp)(nil), // 3: mgmt.CheckActResp +} +var file_ctl_check_proto_depIdxs = []int32{ + 2, // 0: ctl.CheckEngineActReq.req:type_name -> mgmt.CheckActReq + 3, // 1: ctl.CheckEngineActResp.resp:type_name -> mgmt.CheckActResp + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_ctl_check_proto_init() } +func file_ctl_check_proto_init() { + if File_ctl_check_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_ctl_check_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckEngineActReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ctl_check_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckEngineActResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_ctl_check_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_ctl_check_proto_goTypes, + DependencyIndexes: file_ctl_check_proto_depIdxs, + MessageInfos: file_ctl_check_proto_msgTypes, + }.Build() + File_ctl_check_proto = out.File + file_ctl_check_proto_rawDesc = nil + file_ctl_check_proto_goTypes = nil + file_ctl_check_proto_depIdxs = nil +} diff --git a/src/control/common/proto/ctl/ctl.pb.go b/src/control/common/proto/ctl/ctl.pb.go index 86533efcfff..f0949f66e40 100644 --- a/src/control/common/proto/ctl/ctl.pb.go +++ b/src/control/common/proto/ctl/ctl.pb.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2023 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -7,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 -// protoc v3.5.0 +// protoc v3.14.0 // source: ctl/ctl.proto package ctl @@ -37,67 +38,72 @@ var file_ctl_ctl_proto_rawDesc = []byte{ 0x74, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x63, 0x74, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x74, 0x6c, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x32, 0xfe, 0x06, 0x0a, 0x06, 0x43, 0x74, 0x6c, 0x53, 0x76, 0x63, 0x12, 0x3a, - 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x13, 0x2e, - 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x15, 0x2e, 0x63, 0x74, - 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x11, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x62, 0x69, 0x6e, - 0x64, 0x12, 0x12, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x62, 0x69, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, - 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x14, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x41, - 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x74, - 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x63, 0x61, 0x6e, 0x12, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x74, 0x6c, 0x2e, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x74, 0x6c, 0x2e, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x08, 0x53, 0x6d, 0x64, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x6d, 0x64, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x6d, 0x64, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x53, - 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, - 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x74, - 0x6c, 0x2e, 0x53, 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x40, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x6f, - 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x74, - 0x4c, 0x6f, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x74, - 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x53, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, - 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, 0x6e, 0x6b, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, + 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x63, 0x74, 0x6c, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xc6, 0x07, 0x0a, 0x06, 0x43, 0x74, 0x6c, 0x53, 0x76, 0x63, 0x12, + 0x3a, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x13, + 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x61, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x15, 0x2e, 0x63, + 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, + 0x11, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x62, 0x69, + 0x6e, 0x64, 0x12, 0x12, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x62, + 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, + 0x65, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, + 0x14, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, + 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, + 0x74, 0x6c, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x74, 0x6c, + 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x74, 0x6c, + 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, + 0x6d, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x08, 0x53, 0x6d, 0x64, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x10, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x6d, 0x64, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x6d, + 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, + 0x53, 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x74, 0x6c, 0x2e, + 0x53, 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, + 0x74, 0x6c, 0x2e, 0x53, 0x6d, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, + 0x6f, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x13, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, + 0x74, 0x4c, 0x6f, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, + 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, + 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x09, 0x53, 0x74, + 0x6f, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, + 0x74, 0x6c, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, + 0x6c, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2d, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x0a, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x63, 0x74, 0x6c, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x74, 0x6c, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x2e, 0x63, 0x74, 0x6c, 0x2e, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, - 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x74, 0x6c, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x2e, 0x63, 0x74, 0x6c, + 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x16, 0x2e, 0x63, 0x74, 0x6c, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x39, 0x5a, + 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, + 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x74, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_ctl_ctl_proto_goTypes = []interface{}{ @@ -113,18 +119,20 @@ var file_ctl_ctl_proto_goTypes = []interface{}{ (*SetLogMasksReq)(nil), // 9: ctl.SetLogMasksReq (*RanksReq)(nil), // 10: ctl.RanksReq (*CollectLogReq)(nil), // 11: ctl.CollectLogReq - (*StorageScanResp)(nil), // 12: ctl.StorageScanResp - (*StorageFormatResp)(nil), // 13: ctl.StorageFormatResp - (*NvmeRebindResp)(nil), // 14: ctl.NvmeRebindResp - (*NvmeAddDeviceResp)(nil), // 15: ctl.NvmeAddDeviceResp - (*NetworkScanResp)(nil), // 16: ctl.NetworkScanResp - (*FirmwareQueryResp)(nil), // 17: ctl.FirmwareQueryResp - (*FirmwareUpdateResp)(nil), // 18: ctl.FirmwareUpdateResp - (*SmdQueryResp)(nil), // 19: ctl.SmdQueryResp - (*SmdManageResp)(nil), // 20: ctl.SmdManageResp - (*SetLogMasksResp)(nil), // 21: ctl.SetLogMasksResp - (*RanksResp)(nil), // 22: ctl.RanksResp - (*CollectLogResp)(nil), // 23: ctl.CollectLogResp + (*CheckEngineActReq)(nil), // 12: ctl.CheckEngineActReq + (*StorageScanResp)(nil), // 13: ctl.StorageScanResp + (*StorageFormatResp)(nil), // 14: ctl.StorageFormatResp + (*NvmeRebindResp)(nil), // 15: ctl.NvmeRebindResp + (*NvmeAddDeviceResp)(nil), // 16: ctl.NvmeAddDeviceResp + (*NetworkScanResp)(nil), // 17: ctl.NetworkScanResp + (*FirmwareQueryResp)(nil), // 18: ctl.FirmwareQueryResp + (*FirmwareUpdateResp)(nil), // 19: ctl.FirmwareUpdateResp + (*SmdQueryResp)(nil), // 20: ctl.SmdQueryResp + (*SmdManageResp)(nil), // 21: ctl.SmdManageResp + (*SetLogMasksResp)(nil), // 22: ctl.SetLogMasksResp + (*RanksResp)(nil), // 23: ctl.RanksResp + (*CollectLogResp)(nil), // 24: ctl.CollectLogResp + (*CheckEngineActResp)(nil), // 25: ctl.CheckEngineActResp } var file_ctl_ctl_proto_depIdxs = []int32{ 0, // 0: ctl.CtlSvc.StorageScan:input_type -> ctl.StorageScanReq @@ -142,23 +150,25 @@ var file_ctl_ctl_proto_depIdxs = []int32{ 10, // 12: ctl.CtlSvc.ResetFormatRanks:input_type -> ctl.RanksReq 10, // 13: ctl.CtlSvc.StartRanks:input_type -> ctl.RanksReq 11, // 14: ctl.CtlSvc.CollectLog:input_type -> ctl.CollectLogReq - 12, // 15: ctl.CtlSvc.StorageScan:output_type -> ctl.StorageScanResp - 13, // 16: ctl.CtlSvc.StorageFormat:output_type -> ctl.StorageFormatResp - 14, // 17: ctl.CtlSvc.StorageNvmeRebind:output_type -> ctl.NvmeRebindResp - 15, // 18: ctl.CtlSvc.StorageNvmeAddDevice:output_type -> ctl.NvmeAddDeviceResp - 16, // 19: ctl.CtlSvc.NetworkScan:output_type -> ctl.NetworkScanResp - 17, // 20: ctl.CtlSvc.FirmwareQuery:output_type -> ctl.FirmwareQueryResp - 18, // 21: ctl.CtlSvc.FirmwareUpdate:output_type -> ctl.FirmwareUpdateResp - 19, // 22: ctl.CtlSvc.SmdQuery:output_type -> ctl.SmdQueryResp - 20, // 23: ctl.CtlSvc.SmdManage:output_type -> ctl.SmdManageResp - 21, // 24: ctl.CtlSvc.SetEngineLogMasks:output_type -> ctl.SetLogMasksResp - 22, // 25: ctl.CtlSvc.PrepShutdownRanks:output_type -> ctl.RanksResp - 22, // 26: ctl.CtlSvc.StopRanks:output_type -> ctl.RanksResp - 22, // 27: ctl.CtlSvc.ResetFormatRanks:output_type -> ctl.RanksResp - 22, // 28: ctl.CtlSvc.StartRanks:output_type -> ctl.RanksResp - 23, // 29: ctl.CtlSvc.CollectLog:output_type -> ctl.CollectLogResp - 15, // [15:30] is the sub-list for method output_type - 0, // [0:15] is the sub-list for method input_type + 12, // 15: ctl.CtlSvc.CheckEngineRepair:input_type -> ctl.CheckEngineActReq + 13, // 16: ctl.CtlSvc.StorageScan:output_type -> ctl.StorageScanResp + 14, // 17: ctl.CtlSvc.StorageFormat:output_type -> ctl.StorageFormatResp + 15, // 18: ctl.CtlSvc.StorageNvmeRebind:output_type -> ctl.NvmeRebindResp + 16, // 19: ctl.CtlSvc.StorageNvmeAddDevice:output_type -> ctl.NvmeAddDeviceResp + 17, // 20: ctl.CtlSvc.NetworkScan:output_type -> ctl.NetworkScanResp + 18, // 21: ctl.CtlSvc.FirmwareQuery:output_type -> ctl.FirmwareQueryResp + 19, // 22: ctl.CtlSvc.FirmwareUpdate:output_type -> ctl.FirmwareUpdateResp + 20, // 23: ctl.CtlSvc.SmdQuery:output_type -> ctl.SmdQueryResp + 21, // 24: ctl.CtlSvc.SmdManage:output_type -> ctl.SmdManageResp + 22, // 25: ctl.CtlSvc.SetEngineLogMasks:output_type -> ctl.SetLogMasksResp + 23, // 26: ctl.CtlSvc.PrepShutdownRanks:output_type -> ctl.RanksResp + 23, // 27: ctl.CtlSvc.StopRanks:output_type -> ctl.RanksResp + 23, // 28: ctl.CtlSvc.ResetFormatRanks:output_type -> ctl.RanksResp + 23, // 29: ctl.CtlSvc.StartRanks:output_type -> ctl.RanksResp + 24, // 30: ctl.CtlSvc.CollectLog:output_type -> ctl.CollectLogResp + 25, // 31: ctl.CtlSvc.CheckEngineRepair:output_type -> ctl.CheckEngineActResp + 16, // [16:32] is the sub-list for method output_type + 0, // [0:16] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -176,6 +186,7 @@ func file_ctl_ctl_proto_init() { file_ctl_ranks_proto_init() file_ctl_server_proto_init() file_ctl_support_proto_init() + file_ctl_check_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/src/control/common/proto/ctl/ctl_grpc.pb.go b/src/control/common/proto/ctl/ctl_grpc.pb.go index 7badc2e46af..ce6471a1619 100644 --- a/src/control/common/proto/ctl/ctl_grpc.pb.go +++ b/src/control/common/proto/ctl/ctl_grpc.pb.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2023 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -7,7 +8,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v3.5.0 +// - protoc v3.14.0 // source: ctl/ctl.proto package ctl @@ -40,6 +41,7 @@ const ( CtlSvc_ResetFormatRanks_FullMethodName = "/ctl.CtlSvc/ResetFormatRanks" CtlSvc_StartRanks_FullMethodName = "/ctl.CtlSvc/StartRanks" CtlSvc_CollectLog_FullMethodName = "/ctl.CtlSvc/CollectLog" + CtlSvc_CheckEngineRepair_FullMethodName = "/ctl.CtlSvc/CheckEngineRepair" ) // CtlSvcClient is the client API for CtlSvc service. @@ -82,6 +84,8 @@ type CtlSvcClient interface { StartRanks(ctx context.Context, in *RanksReq, opts ...grpc.CallOption) (*RanksResp, error) // Perform a Log collection on Servers for support/debug purpose CollectLog(ctx context.Context, in *CollectLogReq, opts ...grpc.CallOption) (*CollectLogResp, error) + // Send the desired action to repair an inconsistency on a given engine. + CheckEngineRepair(ctx context.Context, in *CheckEngineActReq, opts ...grpc.CallOption) (*CheckEngineActResp, error) } type ctlSvcClient struct { @@ -242,6 +246,16 @@ func (c *ctlSvcClient) CollectLog(ctx context.Context, in *CollectLogReq, opts . return out, nil } +func (c *ctlSvcClient) CheckEngineRepair(ctx context.Context, in *CheckEngineActReq, opts ...grpc.CallOption) (*CheckEngineActResp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CheckEngineActResp) + err := c.cc.Invoke(ctx, CtlSvc_CheckEngineRepair_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // CtlSvcServer is the server API for CtlSvc service. // All implementations must embed UnimplementedCtlSvcServer // for forward compatibility. @@ -282,6 +296,8 @@ type CtlSvcServer interface { StartRanks(context.Context, *RanksReq) (*RanksResp, error) // Perform a Log collection on Servers for support/debug purpose CollectLog(context.Context, *CollectLogReq) (*CollectLogResp, error) + // Send the desired action to repair an inconsistency on a given engine. + CheckEngineRepair(context.Context, *CheckEngineActReq) (*CheckEngineActResp, error) mustEmbedUnimplementedCtlSvcServer() } @@ -337,6 +353,9 @@ func (UnimplementedCtlSvcServer) StartRanks(context.Context, *RanksReq) (*RanksR func (UnimplementedCtlSvcServer) CollectLog(context.Context, *CollectLogReq) (*CollectLogResp, error) { return nil, status.Errorf(codes.Unimplemented, "method CollectLog not implemented") } +func (UnimplementedCtlSvcServer) CheckEngineRepair(context.Context, *CheckEngineActReq) (*CheckEngineActResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckEngineRepair not implemented") +} func (UnimplementedCtlSvcServer) mustEmbedUnimplementedCtlSvcServer() {} func (UnimplementedCtlSvcServer) testEmbeddedByValue() {} @@ -628,6 +647,24 @@ func _CtlSvc_CollectLog_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _CtlSvc_CheckEngineRepair_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckEngineActReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CtlSvcServer).CheckEngineRepair(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CtlSvc_CheckEngineRepair_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CtlSvcServer).CheckEngineRepair(ctx, req.(*CheckEngineActReq)) + } + return interceptor(ctx, in, info, handler) +} + // CtlSvc_ServiceDesc is the grpc.ServiceDesc for CtlSvc service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -695,6 +732,10 @@ var CtlSvc_ServiceDesc = grpc.ServiceDesc{ MethodName: "CollectLog", Handler: _CtlSvc_CollectLog_Handler, }, + { + MethodName: "CheckEngineRepair", + Handler: _CtlSvc_CheckEngineRepair_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "ctl/ctl.proto", diff --git a/src/control/common/proto/mgmt/check.pb.go b/src/control/common/proto/mgmt/check.pb.go index 34495cc36ed..1e2438af734 100644 --- a/src/control/common/proto/mgmt/check.pb.go +++ b/src/control/common/proto/mgmt/check.pb.go @@ -7,8 +7,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v3.19.6 +// protoc-gen-go v1.34.1 +// protoc v3.14.0 // source: mgmt/check.proto package mgmt @@ -832,6 +832,8 @@ type CheckQueryResp struct { Pools []*CheckQueryPool `protobuf:"bytes,6,rep,name=pools,proto3" json:"pools,omitempty"` // Inconsistency reports to be displayed Reports []*chk.CheckReport `protobuf:"bytes,7,rep,name=reports,proto3" json:"reports,omitempty"` + // Check leader rank + Leader uint32 `protobuf:"varint,8,opt,name=leader,proto3" json:"leader,omitempty"` } func (x *CheckQueryResp) Reset() { @@ -915,6 +917,13 @@ func (x *CheckQueryResp) GetReports() []*chk.CheckReport { return nil } +func (x *CheckQueryResp) GetLeader() uint32 { + if x != nil { + return x.Leader + } + return 0 +} + // For 'dmg check set-policy' type CheckSetPolicyReq struct { state protoimpl.MessageState @@ -1422,7 +1431,7 @@ var file_mgmt_check_proto_rawDesc = []byte{ 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xd9, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x65, + 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, @@ -1444,52 +1453,53 @@ var file_mgmt_check_proto_rawDesc = []byte{ 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x22, 0x75, 0x0a, 0x0d, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x22, 0x76, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x6b, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x22, 0x7a, 0x0a, 0x12, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x36, - 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x63, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x03, 0x61, 0x63, 0x74, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x3a, - 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, - 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, - 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6f, 0x72, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x11, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x79, 0x73, 0x22, 0x75, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x76, 0x0a, 0x11, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x07, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x64, 0x22, 0x7a, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x5e, + 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, + 0x71, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x61, 0x63, 0x74, 0x22, 0x26, + 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, + 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, + 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/src/control/common/proto/mgmt/mgmt.pb.go b/src/control/common/proto/mgmt/mgmt.pb.go index 6cefbdd573f..5c5d3c0c005 100644 --- a/src/control/common/proto/mgmt/mgmt.pb.go +++ b/src/control/common/proto/mgmt/mgmt.pb.go @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -33,214 +33,220 @@ var File_mgmt_mgmt_proto protoreflect.FileDescriptor var file_mgmt_mgmt_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x67, 0x6d, 0x74, 0x1a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6d, 0x67, 0x6d, - 0x74, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x6d, 0x67, - 0x6d, 0x74, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, - 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x73, 0x76, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x61, 0x63, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x10, 0x63, 0x68, 0x6b, 0x2f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x32, 0x97, 0x18, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, - 0x27, 0x0a, 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, - 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, 0x6f, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x18, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, - 0x0b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x50, - 0x6f, 0x6f, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, - 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, - 0x74, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, - 0x6c, 0x45, 0x76, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, - 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, - 0x6f, 0x6c, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, - 0x6f, 0x6f, 0x6c, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, - 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, - 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, - 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, - 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, - 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, - 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, - 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, - 0x6c, 0x47, 0x65, 0x74, 0x41, 0x43, 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, - 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, - 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, - 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x35, - 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, - 0x66, 0x48, 0x65, 0x61, 0x6c, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, 0x6c, 0x45, 0x76, 0x61, - 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, - 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x15, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, - 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x16, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, - 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, - 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x54, 0x0a, 0x13, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, - 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, 0x6c, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x1b, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, - 0x6c, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, - 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x11, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, - 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x12, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, - 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x13, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0f, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x14, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x11, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x70, 0x6f, 0x6f, + 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, + 0x2f, 0x73, 0x76, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, + 0x2f, 0x61, 0x63, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x6d, 0x67, 0x6d, 0x74, + 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x63, + 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x63, 0x68, + 0x6b, 0x2f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xe5, + 0x18, 0x0a, 0x07, 0x4d, 0x67, 0x6d, 0x74, 0x53, 0x76, 0x63, 0x12, 0x27, 0x0a, 0x04, 0x4a, 0x6f, + 0x69, 0x6e, 0x12, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x74, + 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, 0x74, 0x12, 0x12, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x76, 0x69, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x72, 0x61, + 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x72, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, + 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x69, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, + 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, + 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, + 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, + 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0a, 0x50, 0x6f, 0x6f, 0x6c, 0x47, 0x65, 0x74, 0x41, + 0x43, 0x4c, 0x12, 0x0f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x43, 0x4c, + 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x76, 0x65, 0x72, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, + 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x43, 0x4c, 0x52, + 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0d, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x43, 0x4c, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, + 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x3f, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0e, + 0x00, 0x12, 0x3d, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x11, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, 0x2e, 0x63, 0x68, 0x6b, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, - 0x14, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6f, 0x6c, - 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, 0x61, 0x75, 0x6c, - 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x18, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, - 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x3a, 0x5a, - 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, - 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x12, 0x3f, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, 0x6c, + 0x45, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, 0x6c, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, + 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, + 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, + 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, + 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x39, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, + 0x72, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, + 0x61, 0x6c, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x1b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x6c, 0x66, 0x48, 0x65, 0x61, 0x6c, 0x45, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, + 0x72, 0x61, 0x73, 0x65, 0x12, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, + 0x61, 0x6e, 0x75, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x11, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x4c, 0x0a, 0x17, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x39, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, + 0x16, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, + 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x16, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, + 0x11, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x10, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x14, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, + 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x18, + 0x46, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0a, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x46, + 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x44, 0x61, 0x6f, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, + 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x67, + 0x6d, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_mgmt_mgmt_proto_goTypes = []interface{}{ @@ -286,46 +292,48 @@ var file_mgmt_mgmt_proto_goTypes = []interface{}{ (*CheckSetPolicyReq)(nil), // 39: mgmt.CheckSetPolicyReq (*CheckGetPolicyReq)(nil), // 40: mgmt.CheckGetPolicyReq (*CheckActReq)(nil), // 41: mgmt.CheckActReq - (*SystemSetAttrReq)(nil), // 42: mgmt.SystemSetAttrReq - (*SystemGetAttrReq)(nil), // 43: mgmt.SystemGetAttrReq - (*SystemSetPropReq)(nil), // 44: mgmt.SystemSetPropReq - (*SystemGetPropReq)(nil), // 45: mgmt.SystemGetPropReq - (*chk.CheckReport)(nil), // 46: chk.CheckReport - (*chk.Fault)(nil), // 47: chk.Fault - (*JoinResp)(nil), // 48: mgmt.JoinResp - (*shared.ClusterEventResp)(nil), // 49: shared.ClusterEventResp - (*LeaderQueryResp)(nil), // 50: mgmt.LeaderQueryResp - (*PoolCreateResp)(nil), // 51: mgmt.PoolCreateResp - (*PoolDestroyResp)(nil), // 52: mgmt.PoolDestroyResp - (*PoolEvictResp)(nil), // 53: mgmt.PoolEvictResp - (*PoolExcludeResp)(nil), // 54: mgmt.PoolExcludeResp - (*PoolDrainResp)(nil), // 55: mgmt.PoolDrainResp - (*PoolExtendResp)(nil), // 56: mgmt.PoolExtendResp - (*PoolReintResp)(nil), // 57: mgmt.PoolReintResp - (*PoolQueryResp)(nil), // 58: mgmt.PoolQueryResp - (*PoolQueryTargetResp)(nil), // 59: mgmt.PoolQueryTargetResp - (*PoolSetPropResp)(nil), // 60: mgmt.PoolSetPropResp - (*PoolGetPropResp)(nil), // 61: mgmt.PoolGetPropResp - (*ACLResp)(nil), // 62: mgmt.ACLResp - (*DaosResp)(nil), // 63: mgmt.DaosResp - (*GetAttachInfoResp)(nil), // 64: mgmt.GetAttachInfoResp - (*ListPoolsResp)(nil), // 65: mgmt.ListPoolsResp - (*ListContResp)(nil), // 66: mgmt.ListContResp - (*SystemQueryResp)(nil), // 67: mgmt.SystemQueryResp - (*SystemStopResp)(nil), // 68: mgmt.SystemStopResp - (*SystemStartResp)(nil), // 69: mgmt.SystemStartResp - (*SystemExcludeResp)(nil), // 70: mgmt.SystemExcludeResp - (*SystemDrainResp)(nil), // 71: mgmt.SystemDrainResp - (*SystemRebuildManageResp)(nil), // 72: mgmt.SystemRebuildManageResp - (*SystemEraseResp)(nil), // 73: mgmt.SystemEraseResp - (*SystemCleanupResp)(nil), // 74: mgmt.SystemCleanupResp - (*CheckStartResp)(nil), // 75: mgmt.CheckStartResp - (*CheckStopResp)(nil), // 76: mgmt.CheckStopResp - (*CheckQueryResp)(nil), // 77: mgmt.CheckQueryResp - (*CheckGetPolicyResp)(nil), // 78: mgmt.CheckGetPolicyResp - (*CheckActResp)(nil), // 79: mgmt.CheckActResp - (*SystemGetAttrResp)(nil), // 80: mgmt.SystemGetAttrResp - (*SystemGetPropResp)(nil), // 81: mgmt.SystemGetPropResp + (*shared.CheckReportReq)(nil), // 42: shared.CheckReportReq + (*SystemSetAttrReq)(nil), // 43: mgmt.SystemSetAttrReq + (*SystemGetAttrReq)(nil), // 44: mgmt.SystemGetAttrReq + (*SystemSetPropReq)(nil), // 45: mgmt.SystemSetPropReq + (*SystemGetPropReq)(nil), // 46: mgmt.SystemGetPropReq + (*chk.CheckReport)(nil), // 47: chk.CheckReport + (*chk.Fault)(nil), // 48: chk.Fault + (*JoinResp)(nil), // 49: mgmt.JoinResp + (*shared.ClusterEventResp)(nil), // 50: shared.ClusterEventResp + (*LeaderQueryResp)(nil), // 51: mgmt.LeaderQueryResp + (*PoolCreateResp)(nil), // 52: mgmt.PoolCreateResp + (*PoolDestroyResp)(nil), // 53: mgmt.PoolDestroyResp + (*PoolEvictResp)(nil), // 54: mgmt.PoolEvictResp + (*PoolExcludeResp)(nil), // 55: mgmt.PoolExcludeResp + (*PoolDrainResp)(nil), // 56: mgmt.PoolDrainResp + (*PoolExtendResp)(nil), // 57: mgmt.PoolExtendResp + (*PoolReintResp)(nil), // 58: mgmt.PoolReintResp + (*PoolQueryResp)(nil), // 59: mgmt.PoolQueryResp + (*PoolQueryTargetResp)(nil), // 60: mgmt.PoolQueryTargetResp + (*PoolSetPropResp)(nil), // 61: mgmt.PoolSetPropResp + (*PoolGetPropResp)(nil), // 62: mgmt.PoolGetPropResp + (*ACLResp)(nil), // 63: mgmt.ACLResp + (*DaosResp)(nil), // 64: mgmt.DaosResp + (*GetAttachInfoResp)(nil), // 65: mgmt.GetAttachInfoResp + (*ListPoolsResp)(nil), // 66: mgmt.ListPoolsResp + (*ListContResp)(nil), // 67: mgmt.ListContResp + (*SystemQueryResp)(nil), // 68: mgmt.SystemQueryResp + (*SystemStopResp)(nil), // 69: mgmt.SystemStopResp + (*SystemStartResp)(nil), // 70: mgmt.SystemStartResp + (*SystemExcludeResp)(nil), // 71: mgmt.SystemExcludeResp + (*SystemDrainResp)(nil), // 72: mgmt.SystemDrainResp + (*SystemRebuildManageResp)(nil), // 73: mgmt.SystemRebuildManageResp + (*SystemEraseResp)(nil), // 74: mgmt.SystemEraseResp + (*SystemCleanupResp)(nil), // 75: mgmt.SystemCleanupResp + (*CheckStartResp)(nil), // 76: mgmt.CheckStartResp + (*CheckStopResp)(nil), // 77: mgmt.CheckStopResp + (*CheckQueryResp)(nil), // 78: mgmt.CheckQueryResp + (*CheckGetPolicyResp)(nil), // 79: mgmt.CheckGetPolicyResp + (*CheckActResp)(nil), // 80: mgmt.CheckActResp + (*shared.CheckReportResp)(nil), // 81: shared.CheckReportResp + (*SystemGetAttrResp)(nil), // 82: mgmt.SystemGetAttrResp + (*SystemGetPropResp)(nil), // 83: mgmt.SystemGetPropResp } var file_mgmt_mgmt_proto_depIdxs = []int32{ 0, // 0: mgmt.MgmtSvc.Join:input_type -> mgmt.JoinReq @@ -371,65 +379,67 @@ var file_mgmt_mgmt_proto_depIdxs = []int32{ 39, // 40: mgmt.MgmtSvc.SystemCheckSetPolicy:input_type -> mgmt.CheckSetPolicyReq 40, // 41: mgmt.MgmtSvc.SystemCheckGetPolicy:input_type -> mgmt.CheckGetPolicyReq 41, // 42: mgmt.MgmtSvc.SystemCheckRepair:input_type -> mgmt.CheckActReq - 42, // 43: mgmt.MgmtSvc.SystemSetAttr:input_type -> mgmt.SystemSetAttrReq - 43, // 44: mgmt.MgmtSvc.SystemGetAttr:input_type -> mgmt.SystemGetAttrReq - 44, // 45: mgmt.MgmtSvc.SystemSetProp:input_type -> mgmt.SystemSetPropReq - 45, // 46: mgmt.MgmtSvc.SystemGetProp:input_type -> mgmt.SystemGetPropReq - 46, // 47: mgmt.MgmtSvc.FaultInjectReport:input_type -> chk.CheckReport - 47, // 48: mgmt.MgmtSvc.FaultInjectPoolFault:input_type -> chk.Fault - 47, // 49: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:input_type -> chk.Fault - 48, // 50: mgmt.MgmtSvc.Join:output_type -> mgmt.JoinResp - 49, // 51: mgmt.MgmtSvc.ClusterEvent:output_type -> shared.ClusterEventResp - 50, // 52: mgmt.MgmtSvc.LeaderQuery:output_type -> mgmt.LeaderQueryResp - 51, // 53: mgmt.MgmtSvc.PoolCreate:output_type -> mgmt.PoolCreateResp - 52, // 54: mgmt.MgmtSvc.PoolDestroy:output_type -> mgmt.PoolDestroyResp - 53, // 55: mgmt.MgmtSvc.PoolEvict:output_type -> mgmt.PoolEvictResp - 54, // 56: mgmt.MgmtSvc.PoolExclude:output_type -> mgmt.PoolExcludeResp - 55, // 57: mgmt.MgmtSvc.PoolDrain:output_type -> mgmt.PoolDrainResp - 56, // 58: mgmt.MgmtSvc.PoolExtend:output_type -> mgmt.PoolExtendResp - 57, // 59: mgmt.MgmtSvc.PoolReintegrate:output_type -> mgmt.PoolReintResp - 58, // 60: mgmt.MgmtSvc.PoolQuery:output_type -> mgmt.PoolQueryResp - 59, // 61: mgmt.MgmtSvc.PoolQueryTarget:output_type -> mgmt.PoolQueryTargetResp - 60, // 62: mgmt.MgmtSvc.PoolSetProp:output_type -> mgmt.PoolSetPropResp - 61, // 63: mgmt.MgmtSvc.PoolGetProp:output_type -> mgmt.PoolGetPropResp - 62, // 64: mgmt.MgmtSvc.PoolGetACL:output_type -> mgmt.ACLResp - 62, // 65: mgmt.MgmtSvc.PoolOverwriteACL:output_type -> mgmt.ACLResp - 62, // 66: mgmt.MgmtSvc.PoolUpdateACL:output_type -> mgmt.ACLResp - 62, // 67: mgmt.MgmtSvc.PoolDeleteACL:output_type -> mgmt.ACLResp - 63, // 68: mgmt.MgmtSvc.PoolUpgrade:output_type -> mgmt.DaosResp - 63, // 69: mgmt.MgmtSvc.PoolRebuildStart:output_type -> mgmt.DaosResp - 63, // 70: mgmt.MgmtSvc.PoolRebuildStop:output_type -> mgmt.DaosResp - 63, // 71: mgmt.MgmtSvc.PoolSelfHealEval:output_type -> mgmt.DaosResp - 64, // 72: mgmt.MgmtSvc.GetAttachInfo:output_type -> mgmt.GetAttachInfoResp - 65, // 73: mgmt.MgmtSvc.ListPools:output_type -> mgmt.ListPoolsResp - 66, // 74: mgmt.MgmtSvc.ListContainers:output_type -> mgmt.ListContResp - 63, // 75: mgmt.MgmtSvc.ContSetOwner:output_type -> mgmt.DaosResp - 67, // 76: mgmt.MgmtSvc.SystemQuery:output_type -> mgmt.SystemQueryResp - 68, // 77: mgmt.MgmtSvc.SystemStop:output_type -> mgmt.SystemStopResp - 69, // 78: mgmt.MgmtSvc.SystemStart:output_type -> mgmt.SystemStartResp - 70, // 79: mgmt.MgmtSvc.SystemExclude:output_type -> mgmt.SystemExcludeResp - 71, // 80: mgmt.MgmtSvc.SystemDrain:output_type -> mgmt.SystemDrainResp - 72, // 81: mgmt.MgmtSvc.SystemRebuildManage:output_type -> mgmt.SystemRebuildManageResp - 63, // 82: mgmt.MgmtSvc.SystemSelfHealEval:output_type -> mgmt.DaosResp - 73, // 83: mgmt.MgmtSvc.SystemErase:output_type -> mgmt.SystemEraseResp - 74, // 84: mgmt.MgmtSvc.SystemCleanup:output_type -> mgmt.SystemCleanupResp - 63, // 85: mgmt.MgmtSvc.SystemCheckEnable:output_type -> mgmt.DaosResp - 63, // 86: mgmt.MgmtSvc.SystemCheckDisable:output_type -> mgmt.DaosResp - 75, // 87: mgmt.MgmtSvc.SystemCheckStart:output_type -> mgmt.CheckStartResp - 76, // 88: mgmt.MgmtSvc.SystemCheckStop:output_type -> mgmt.CheckStopResp - 77, // 89: mgmt.MgmtSvc.SystemCheckQuery:output_type -> mgmt.CheckQueryResp - 63, // 90: mgmt.MgmtSvc.SystemCheckSetPolicy:output_type -> mgmt.DaosResp - 78, // 91: mgmt.MgmtSvc.SystemCheckGetPolicy:output_type -> mgmt.CheckGetPolicyResp - 79, // 92: mgmt.MgmtSvc.SystemCheckRepair:output_type -> mgmt.CheckActResp - 63, // 93: mgmt.MgmtSvc.SystemSetAttr:output_type -> mgmt.DaosResp - 80, // 94: mgmt.MgmtSvc.SystemGetAttr:output_type -> mgmt.SystemGetAttrResp - 63, // 95: mgmt.MgmtSvc.SystemSetProp:output_type -> mgmt.DaosResp - 81, // 96: mgmt.MgmtSvc.SystemGetProp:output_type -> mgmt.SystemGetPropResp - 63, // 97: mgmt.MgmtSvc.FaultInjectReport:output_type -> mgmt.DaosResp - 63, // 98: mgmt.MgmtSvc.FaultInjectPoolFault:output_type -> mgmt.DaosResp - 63, // 99: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:output_type -> mgmt.DaosResp - 50, // [50:100] is the sub-list for method output_type - 0, // [0:50] is the sub-list for method input_type + 42, // 43: mgmt.MgmtSvc.SystemCheckEngineReport:input_type -> shared.CheckReportReq + 43, // 44: mgmt.MgmtSvc.SystemSetAttr:input_type -> mgmt.SystemSetAttrReq + 44, // 45: mgmt.MgmtSvc.SystemGetAttr:input_type -> mgmt.SystemGetAttrReq + 45, // 46: mgmt.MgmtSvc.SystemSetProp:input_type -> mgmt.SystemSetPropReq + 46, // 47: mgmt.MgmtSvc.SystemGetProp:input_type -> mgmt.SystemGetPropReq + 47, // 48: mgmt.MgmtSvc.FaultInjectReport:input_type -> chk.CheckReport + 48, // 49: mgmt.MgmtSvc.FaultInjectPoolFault:input_type -> chk.Fault + 48, // 50: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:input_type -> chk.Fault + 49, // 51: mgmt.MgmtSvc.Join:output_type -> mgmt.JoinResp + 50, // 52: mgmt.MgmtSvc.ClusterEvent:output_type -> shared.ClusterEventResp + 51, // 53: mgmt.MgmtSvc.LeaderQuery:output_type -> mgmt.LeaderQueryResp + 52, // 54: mgmt.MgmtSvc.PoolCreate:output_type -> mgmt.PoolCreateResp + 53, // 55: mgmt.MgmtSvc.PoolDestroy:output_type -> mgmt.PoolDestroyResp + 54, // 56: mgmt.MgmtSvc.PoolEvict:output_type -> mgmt.PoolEvictResp + 55, // 57: mgmt.MgmtSvc.PoolExclude:output_type -> mgmt.PoolExcludeResp + 56, // 58: mgmt.MgmtSvc.PoolDrain:output_type -> mgmt.PoolDrainResp + 57, // 59: mgmt.MgmtSvc.PoolExtend:output_type -> mgmt.PoolExtendResp + 58, // 60: mgmt.MgmtSvc.PoolReintegrate:output_type -> mgmt.PoolReintResp + 59, // 61: mgmt.MgmtSvc.PoolQuery:output_type -> mgmt.PoolQueryResp + 60, // 62: mgmt.MgmtSvc.PoolQueryTarget:output_type -> mgmt.PoolQueryTargetResp + 61, // 63: mgmt.MgmtSvc.PoolSetProp:output_type -> mgmt.PoolSetPropResp + 62, // 64: mgmt.MgmtSvc.PoolGetProp:output_type -> mgmt.PoolGetPropResp + 63, // 65: mgmt.MgmtSvc.PoolGetACL:output_type -> mgmt.ACLResp + 63, // 66: mgmt.MgmtSvc.PoolOverwriteACL:output_type -> mgmt.ACLResp + 63, // 67: mgmt.MgmtSvc.PoolUpdateACL:output_type -> mgmt.ACLResp + 63, // 68: mgmt.MgmtSvc.PoolDeleteACL:output_type -> mgmt.ACLResp + 64, // 69: mgmt.MgmtSvc.PoolUpgrade:output_type -> mgmt.DaosResp + 64, // 70: mgmt.MgmtSvc.PoolRebuildStart:output_type -> mgmt.DaosResp + 64, // 71: mgmt.MgmtSvc.PoolRebuildStop:output_type -> mgmt.DaosResp + 64, // 72: mgmt.MgmtSvc.PoolSelfHealEval:output_type -> mgmt.DaosResp + 65, // 73: mgmt.MgmtSvc.GetAttachInfo:output_type -> mgmt.GetAttachInfoResp + 66, // 74: mgmt.MgmtSvc.ListPools:output_type -> mgmt.ListPoolsResp + 67, // 75: mgmt.MgmtSvc.ListContainers:output_type -> mgmt.ListContResp + 64, // 76: mgmt.MgmtSvc.ContSetOwner:output_type -> mgmt.DaosResp + 68, // 77: mgmt.MgmtSvc.SystemQuery:output_type -> mgmt.SystemQueryResp + 69, // 78: mgmt.MgmtSvc.SystemStop:output_type -> mgmt.SystemStopResp + 70, // 79: mgmt.MgmtSvc.SystemStart:output_type -> mgmt.SystemStartResp + 71, // 80: mgmt.MgmtSvc.SystemExclude:output_type -> mgmt.SystemExcludeResp + 72, // 81: mgmt.MgmtSvc.SystemDrain:output_type -> mgmt.SystemDrainResp + 73, // 82: mgmt.MgmtSvc.SystemRebuildManage:output_type -> mgmt.SystemRebuildManageResp + 64, // 83: mgmt.MgmtSvc.SystemSelfHealEval:output_type -> mgmt.DaosResp + 74, // 84: mgmt.MgmtSvc.SystemErase:output_type -> mgmt.SystemEraseResp + 75, // 85: mgmt.MgmtSvc.SystemCleanup:output_type -> mgmt.SystemCleanupResp + 64, // 86: mgmt.MgmtSvc.SystemCheckEnable:output_type -> mgmt.DaosResp + 64, // 87: mgmt.MgmtSvc.SystemCheckDisable:output_type -> mgmt.DaosResp + 76, // 88: mgmt.MgmtSvc.SystemCheckStart:output_type -> mgmt.CheckStartResp + 77, // 89: mgmt.MgmtSvc.SystemCheckStop:output_type -> mgmt.CheckStopResp + 78, // 90: mgmt.MgmtSvc.SystemCheckQuery:output_type -> mgmt.CheckQueryResp + 64, // 91: mgmt.MgmtSvc.SystemCheckSetPolicy:output_type -> mgmt.DaosResp + 79, // 92: mgmt.MgmtSvc.SystemCheckGetPolicy:output_type -> mgmt.CheckGetPolicyResp + 80, // 93: mgmt.MgmtSvc.SystemCheckRepair:output_type -> mgmt.CheckActResp + 81, // 94: mgmt.MgmtSvc.SystemCheckEngineReport:output_type -> shared.CheckReportResp + 64, // 95: mgmt.MgmtSvc.SystemSetAttr:output_type -> mgmt.DaosResp + 82, // 96: mgmt.MgmtSvc.SystemGetAttr:output_type -> mgmt.SystemGetAttrResp + 64, // 97: mgmt.MgmtSvc.SystemSetProp:output_type -> mgmt.DaosResp + 83, // 98: mgmt.MgmtSvc.SystemGetProp:output_type -> mgmt.SystemGetPropResp + 64, // 99: mgmt.MgmtSvc.FaultInjectReport:output_type -> mgmt.DaosResp + 64, // 100: mgmt.MgmtSvc.FaultInjectPoolFault:output_type -> mgmt.DaosResp + 64, // 101: mgmt.MgmtSvc.FaultInjectMgmtPoolFault:output_type -> mgmt.DaosResp + 51, // [51:102] is the sub-list for method output_type + 0, // [0:51] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/src/control/common/proto/mgmt/mgmt_grpc.pb.go b/src/control/common/proto/mgmt/mgmt_grpc.pb.go index 512b50e3caa..66fd24bef0a 100644 --- a/src/control/common/proto/mgmt/mgmt_grpc.pb.go +++ b/src/control/common/proto/mgmt/mgmt_grpc.pb.go @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -71,6 +71,7 @@ const ( MgmtSvc_SystemCheckSetPolicy_FullMethodName = "/mgmt.MgmtSvc/SystemCheckSetPolicy" MgmtSvc_SystemCheckGetPolicy_FullMethodName = "/mgmt.MgmtSvc/SystemCheckGetPolicy" MgmtSvc_SystemCheckRepair_FullMethodName = "/mgmt.MgmtSvc/SystemCheckRepair" + MgmtSvc_SystemCheckEngineReport_FullMethodName = "/mgmt.MgmtSvc/SystemCheckEngineReport" MgmtSvc_SystemSetAttr_FullMethodName = "/mgmt.MgmtSvc/SystemSetAttr" MgmtSvc_SystemGetAttr_FullMethodName = "/mgmt.MgmtSvc/SystemGetAttr" MgmtSvc_SystemSetProp_FullMethodName = "/mgmt.MgmtSvc/SystemSetProp" @@ -178,6 +179,8 @@ type MgmtSvcClient interface { SystemCheckGetPolicy(ctx context.Context, in *CheckGetPolicyReq, opts ...grpc.CallOption) (*CheckGetPolicyResp, error) // Send the desired action to repair an inconsistency. SystemCheckRepair(ctx context.Context, in *CheckActReq, opts ...grpc.CallOption) (*CheckActResp, error) + // Report on checker results for an individual rank. + SystemCheckEngineReport(ctx context.Context, in *shared.CheckReportReq, opts ...grpc.CallOption) (*shared.CheckReportResp, error) // Set a system attribute or attributes. SystemSetAttr(ctx context.Context, in *SystemSetAttrReq, opts ...grpc.CallOption) (*DaosResp, error) // Get a system attribute or attributes. @@ -632,6 +635,16 @@ func (c *mgmtSvcClient) SystemCheckRepair(ctx context.Context, in *CheckActReq, return out, nil } +func (c *mgmtSvcClient) SystemCheckEngineReport(ctx context.Context, in *shared.CheckReportReq, opts ...grpc.CallOption) (*shared.CheckReportResp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(shared.CheckReportResp) + err := c.cc.Invoke(ctx, MgmtSvc_SystemCheckEngineReport_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *mgmtSvcClient) SystemSetAttr(ctx context.Context, in *SystemSetAttrReq, opts ...grpc.CallOption) (*DaosResp, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DaosResp) @@ -800,6 +813,8 @@ type MgmtSvcServer interface { SystemCheckGetPolicy(context.Context, *CheckGetPolicyReq) (*CheckGetPolicyResp, error) // Send the desired action to repair an inconsistency. SystemCheckRepair(context.Context, *CheckActReq) (*CheckActResp, error) + // Report on checker results for an individual rank. + SystemCheckEngineReport(context.Context, *shared.CheckReportReq) (*shared.CheckReportResp, error) // Set a system attribute or attributes. SystemSetAttr(context.Context, *SystemSetAttrReq) (*DaosResp, error) // Get a system attribute or attributes. @@ -953,6 +968,9 @@ func (UnimplementedMgmtSvcServer) SystemCheckGetPolicy(context.Context, *CheckGe func (UnimplementedMgmtSvcServer) SystemCheckRepair(context.Context, *CheckActReq) (*CheckActResp, error) { return nil, status.Errorf(codes.Unimplemented, "method SystemCheckRepair not implemented") } +func (UnimplementedMgmtSvcServer) SystemCheckEngineReport(context.Context, *shared.CheckReportReq) (*shared.CheckReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SystemCheckEngineReport not implemented") +} func (UnimplementedMgmtSvcServer) SystemSetAttr(context.Context, *SystemSetAttrReq) (*DaosResp, error) { return nil, status.Errorf(codes.Unimplemented, "method SystemSetAttr not implemented") } @@ -1769,6 +1787,24 @@ func _MgmtSvc_SystemCheckRepair_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _MgmtSvc_SystemCheckEngineReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(shared.CheckReportReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MgmtSvcServer).SystemCheckEngineReport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MgmtSvc_SystemCheckEngineReport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MgmtSvcServer).SystemCheckEngineReport(ctx, req.(*shared.CheckReportReq)) + } + return interceptor(ctx, in, info, handler) +} + func _MgmtSvc_SystemSetAttr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SystemSetAttrReq) if err := dec(in); err != nil { @@ -2074,6 +2110,10 @@ var MgmtSvc_ServiceDesc = grpc.ServiceDesc{ MethodName: "SystemCheckRepair", Handler: _MgmtSvc_SystemCheckRepair_Handler, }, + { + MethodName: "SystemCheckEngineReport", + Handler: _MgmtSvc_SystemCheckEngineReport_Handler, + }, { MethodName: "SystemSetAttr", Handler: _MgmtSvc_SystemSetAttr_Handler, diff --git a/src/control/common/proto/shared/check_engine.pb.go b/src/control/common/proto/shared/check_engine.pb.go new file mode 100644 index 00000000000..d15f4f4953c --- /dev/null +++ b/src/control/common/proto/shared/check_engine.pb.go @@ -0,0 +1,222 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// This file defines check engine related protobuf messages communicated over dRPC +// and gRPC. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.1 +// protoc v3.14.0 +// source: shared/check_engine.proto + +package shared + +import ( + chk "github.com/daos-stack/daos/src/control/common/proto/chk" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CheckReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Report *chk.CheckReport `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"` // Report payload +} + +func (x *CheckReportReq) Reset() { + *x = CheckReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_shared_check_engine_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckReportReq) ProtoMessage() {} + +func (x *CheckReportReq) ProtoReflect() protoreflect.Message { + mi := &file_shared_check_engine_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckReportReq.ProtoReflect.Descriptor instead. +func (*CheckReportReq) Descriptor() ([]byte, []int) { + return file_shared_check_engine_proto_rawDescGZIP(), []int{0} +} + +func (x *CheckReportReq) GetReport() *chk.CheckReport { + if x != nil { + return x.Report + } + return nil +} + +type CheckReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code. +} + +func (x *CheckReportResp) Reset() { + *x = CheckReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_shared_check_engine_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckReportResp) ProtoMessage() {} + +func (x *CheckReportResp) ProtoReflect() protoreflect.Message { + mi := &file_shared_check_engine_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckReportResp.ProtoReflect.Descriptor instead. +func (*CheckReportResp) Descriptor() ([]byte, []int) { + return file_shared_check_engine_proto_rawDescGZIP(), []int{1} +} + +func (x *CheckReportResp) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +var File_shared_check_engine_proto protoreflect.FileDescriptor + +var file_shared_check_engine_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x29, + 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_shared_check_engine_proto_rawDescOnce sync.Once + file_shared_check_engine_proto_rawDescData = file_shared_check_engine_proto_rawDesc +) + +func file_shared_check_engine_proto_rawDescGZIP() []byte { + file_shared_check_engine_proto_rawDescOnce.Do(func() { + file_shared_check_engine_proto_rawDescData = protoimpl.X.CompressGZIP(file_shared_check_engine_proto_rawDescData) + }) + return file_shared_check_engine_proto_rawDescData +} + +var file_shared_check_engine_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_shared_check_engine_proto_goTypes = []interface{}{ + (*CheckReportReq)(nil), // 0: shared.CheckReportReq + (*CheckReportResp)(nil), // 1: shared.CheckReportResp + (*chk.CheckReport)(nil), // 2: chk.CheckReport +} +var file_shared_check_engine_proto_depIdxs = []int32{ + 2, // 0: shared.CheckReportReq.report:type_name -> chk.CheckReport + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_shared_check_engine_proto_init() } +func file_shared_check_engine_proto_init() { + if File_shared_check_engine_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_shared_check_engine_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_shared_check_engine_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_shared_check_engine_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_shared_check_engine_proto_goTypes, + DependencyIndexes: file_shared_check_engine_proto_depIdxs, + MessageInfos: file_shared_check_engine_proto_msgTypes, + }.Build() + File_shared_check_engine_proto = out.File + file_shared_check_engine_proto_rawDesc = nil + file_shared_check_engine_proto_goTypes = nil + file_shared_check_engine_proto_depIdxs = nil +} diff --git a/src/control/common/proto/srv/srv.pb.go b/src/control/common/proto/srv/srv.pb.go index 7de4edeb960..8fca8245af2 100644 --- a/src/control/common/proto/srv/srv.pb.go +++ b/src/control/common/proto/srv/srv.pb.go @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -9,13 +10,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 -// protoc v3.5.0 +// protoc v3.14.0 // source: srv/srv.proto package srv import ( - chk "github.com/daos-stack/daos/src/control/common/proto/chk" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -668,100 +668,6 @@ func (x *CheckDeregPoolResp) GetStatus() int32 { return 0 } -type CheckReportReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Report *chk.CheckReport `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"` // Report payload -} - -func (x *CheckReportReq) Reset() { - *x = CheckReportReq{} - if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CheckReportReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckReportReq) ProtoMessage() {} - -func (x *CheckReportReq) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckReportReq.ProtoReflect.Descriptor instead. -func (*CheckReportReq) Descriptor() ([]byte, []int) { - return file_srv_srv_proto_rawDescGZIP(), []int{11} -} - -func (x *CheckReportReq) GetReport() *chk.CheckReport { - if x != nil { - return x.Report - } - return nil -} - -type CheckReportResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // DAOS error code. -} - -func (x *CheckReportResp) Reset() { - *x = CheckReportResp{} - if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CheckReportResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckReportResp) ProtoMessage() {} - -func (x *CheckReportResp) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckReportResp.ProtoReflect.Descriptor instead. -func (*CheckReportResp) Descriptor() ([]byte, []int) { - return file_srv_srv_proto_rawDescGZIP(), []int{12} -} - -func (x *CheckReportResp) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - type ListPoolsReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -773,7 +679,7 @@ type ListPoolsReq struct { func (x *ListPoolsReq) Reset() { *x = ListPoolsReq{} if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[13] + mi := &file_srv_srv_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -786,7 +692,7 @@ func (x *ListPoolsReq) String() string { func (*ListPoolsReq) ProtoMessage() {} func (x *ListPoolsReq) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[13] + mi := &file_srv_srv_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -799,7 +705,7 @@ func (x *ListPoolsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPoolsReq.ProtoReflect.Descriptor instead. func (*ListPoolsReq) Descriptor() ([]byte, []int) { - return file_srv_srv_proto_rawDescGZIP(), []int{13} + return file_srv_srv_proto_rawDescGZIP(), []int{11} } func (x *ListPoolsReq) GetIncludeAll() bool { @@ -820,7 +726,7 @@ type ListPoolsResp struct { func (x *ListPoolsResp) Reset() { *x = ListPoolsResp{} if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[14] + mi := &file_srv_srv_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -833,7 +739,7 @@ func (x *ListPoolsResp) String() string { func (*ListPoolsResp) ProtoMessage() {} func (x *ListPoolsResp) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[14] + mi := &file_srv_srv_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -846,7 +752,7 @@ func (x *ListPoolsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPoolsResp.ProtoReflect.Descriptor instead. func (*ListPoolsResp) Descriptor() ([]byte, []int) { - return file_srv_srv_proto_rawDescGZIP(), []int{14} + return file_srv_srv_proto_rawDescGZIP(), []int{12} } func (x *ListPoolsResp) GetPools() []*ListPoolsResp_Pool { @@ -869,7 +775,7 @@ type CheckListPoolResp_OnePool struct { func (x *CheckListPoolResp_OnePool) Reset() { *x = CheckListPoolResp_OnePool{} if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[15] + mi := &file_srv_srv_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +788,7 @@ func (x *CheckListPoolResp_OnePool) String() string { func (*CheckListPoolResp_OnePool) ProtoMessage() {} func (x *CheckListPoolResp_OnePool) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[15] + mi := &file_srv_srv_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -932,7 +838,7 @@ type ListPoolsResp_Pool struct { func (x *ListPoolsResp_Pool) Reset() { *x = ListPoolsResp_Pool{} if protoimpl.UnsafeEnabled { - mi := &file_srv_srv_proto_msgTypes[16] + mi := &file_srv_srv_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -945,7 +851,7 @@ func (x *ListPoolsResp_Pool) String() string { func (*ListPoolsResp_Pool) ProtoMessage() {} func (x *ListPoolsResp_Pool) ProtoReflect() protoreflect.Message { - mi := &file_srv_srv_proto_msgTypes[16] + mi := &file_srv_srv_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -958,7 +864,7 @@ func (x *ListPoolsResp_Pool) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPoolsResp_Pool.ProtoReflect.Descriptor instead. func (*ListPoolsResp_Pool) Descriptor() ([]byte, []int) { - return file_srv_srv_proto_rawDescGZIP(), []int{14, 0} + return file_srv_srv_proto_rawDescGZIP(), []int{12, 0} } func (x *ListPoolsResp_Pool) GetUuid() string { @@ -986,92 +892,85 @@ var File_srv_srv_proto protoreflect.FileDescriptor var file_srv_srv_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x73, 0x72, 0x76, 0x2f, 0x73, 0x72, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x03, 0x73, 0x72, 0x76, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, - 0x61, 0x64, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x63, 0x74, 0x78, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x63, 0x74, 0x78, 0x73, 0x12, 0x2a, - 0x0a, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, - 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, - 0x6e, 0x74, 0x67, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x74, 0x67, - 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, - 0x79, 0x55, 0x72, 0x69, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x63, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x63, 0x74, - 0x78, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x6f, 0x64, - 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x76, 0x63, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x76, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x03, 0x73, 0x72, 0x76, 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x63, 0x74, + 0x78, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x63, 0x74, 0x78, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, + 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, + 0x05, 0x6e, 0x74, 0x67, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x74, + 0x67, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x55, 0x72, 0x69, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x63, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x63, + 0x74, 0x78, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x6f, + 0x64, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x76, 0x63, + 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6f, 0x6c, 0x53, 0x76, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x12, 0x50, + 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, + 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x5b, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x46, + 0x69, 0x6e, 0x64, 0x42, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, + 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, + 0x72, 0x65, 0x70, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x22, 0xb0, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x72, 0x76, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4f, 0x6e, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x1a, 0x4d, 0x0a, 0x07, + 0x4f, 0x6e, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x22, 0x67, 0x0a, 0x0f, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, + 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, + 0x72, 0x65, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x12, 0x50, 0x6f, - 0x6f, 0x6c, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x5b, 0x0a, 0x13, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x69, - 0x6e, 0x64, 0x42, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, - 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, - 0x65, 0x70, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x22, 0xb0, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x72, 0x76, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4f, 0x6e, 0x65, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x1a, 0x4d, 0x0a, 0x07, 0x4f, - 0x6e, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x22, 0x67, 0x0a, 0x0f, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, - 0x72, 0x65, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, - 0x65, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x39, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x72, 0x65, 0x67, 0x50, 0x6f, 0x6f, - 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x44, 0x65, 0x72, 0x65, 0x67, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x6b, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x22, 0x29, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x2f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, - 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, - 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x72, 0x76, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, - 0x73, 0x1a, 0x4a, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x42, 0x39, 0x5a, - 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, - 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x72, 0x76, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x39, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x72, 0x65, 0x67, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x72, 0x65, 0x67, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x05, + 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x72, + 0x76, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x1a, 0x4a, 0x0a, 0x04, 0x50, + 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x76, 0x63, 0x72, 0x65, 0x70, 0x73, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x2f, 0x64, 0x61, 0x6f, 0x73, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, + 0x72, 0x76, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1086,7 +985,7 @@ func file_srv_srv_proto_rawDescGZIP() []byte { return file_srv_srv_proto_rawDescData } -var file_srv_srv_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_srv_srv_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_srv_srv_proto_goTypes = []interface{}{ (*NotifyReadyReq)(nil), // 0: srv.NotifyReadyReq (*GetPoolSvcReq)(nil), // 1: srv.GetPoolSvcReq @@ -1099,23 +998,19 @@ var file_srv_srv_proto_goTypes = []interface{}{ (*CheckRegPoolResp)(nil), // 8: srv.CheckRegPoolResp (*CheckDeregPoolReq)(nil), // 9: srv.CheckDeregPoolReq (*CheckDeregPoolResp)(nil), // 10: srv.CheckDeregPoolResp - (*CheckReportReq)(nil), // 11: srv.CheckReportReq - (*CheckReportResp)(nil), // 12: srv.CheckReportResp - (*ListPoolsReq)(nil), // 13: srv.ListPoolsReq - (*ListPoolsResp)(nil), // 14: srv.ListPoolsResp - (*CheckListPoolResp_OnePool)(nil), // 15: srv.CheckListPoolResp.OnePool - (*ListPoolsResp_Pool)(nil), // 16: srv.ListPoolsResp.Pool - (*chk.CheckReport)(nil), // 17: chk.CheckReport + (*ListPoolsReq)(nil), // 11: srv.ListPoolsReq + (*ListPoolsResp)(nil), // 12: srv.ListPoolsResp + (*CheckListPoolResp_OnePool)(nil), // 13: srv.CheckListPoolResp.OnePool + (*ListPoolsResp_Pool)(nil), // 14: srv.ListPoolsResp.Pool } var file_srv_srv_proto_depIdxs = []int32{ - 15, // 0: srv.CheckListPoolResp.pools:type_name -> srv.CheckListPoolResp.OnePool - 17, // 1: srv.CheckReportReq.report:type_name -> chk.CheckReport - 16, // 2: srv.ListPoolsResp.pools:type_name -> srv.ListPoolsResp.Pool - 3, // [3:3] is the sub-list for method output_type - 3, // [3:3] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 13, // 0: srv.CheckListPoolResp.pools:type_name -> srv.CheckListPoolResp.OnePool + 14, // 1: srv.ListPoolsResp.pools:type_name -> srv.ListPoolsResp.Pool + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_srv_srv_proto_init() } @@ -1257,30 +1152,6 @@ func file_srv_srv_proto_init() { } } file_srv_srv_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckReportReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_srv_srv_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckReportResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_srv_srv_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPoolsReq); i { case 0: return &v.state @@ -1292,7 +1163,7 @@ func file_srv_srv_proto_init() { return nil } } - file_srv_srv_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_srv_srv_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPoolsResp); i { case 0: return &v.state @@ -1304,7 +1175,7 @@ func file_srv_srv_proto_init() { return nil } } - file_srv_srv_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_srv_srv_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckListPoolResp_OnePool); i { case 0: return &v.state @@ -1316,7 +1187,7 @@ func file_srv_srv_proto_init() { return nil } } - file_srv_srv_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_srv_srv_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPoolsResp_Pool); i { case 0: return &v.state @@ -1335,7 +1206,7 @@ func file_srv_srv_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_srv_srv_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 15, NumExtensions: 0, NumServices: 0, }, diff --git a/src/control/lib/control/check.go b/src/control/lib/control/check.go index dec901099a4..a0a9690d715 100644 --- a/src/control/lib/control/check.go +++ b/src/control/lib/control/check.go @@ -22,7 +22,9 @@ import ( "github.com/daos-stack/daos/src/control/common" pbutil "github.com/daos-stack/daos/src/control/common/proto" chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" "github.com/daos-stack/daos/src/control/lib/ranklist" ) @@ -555,6 +557,7 @@ type SystemCheckQueryResp struct { Status SystemCheckStatus `json:"status"` ScanPhase SystemCheckScanPhase `json:"scan_phase"` StartTime time.Time `json:"start_time"` + Leader ranklist.Rank `json:"leader"` Pools map[string]*SystemCheckPoolInfo `json:"pools"` Reports []*SystemCheckReport `json:"reports"` @@ -597,6 +600,7 @@ func SystemCheckQuery(ctx context.Context, rpcClient UnaryInvoker, req *SystemCh ScanPhase: SystemCheckScanPhase(pbResp.GetInsPhase()), StartTime: time.Unix(int64(pbResp.GetTime().GetStartTime()), 0), Pools: getPoolCheckInfo(pbResp.GetPools()), + Leader: ranklist.Rank(pbResp.Leader), } for _, pbReport := range pbResp.GetReports() { rpt := new(SystemCheckReport) @@ -752,3 +756,109 @@ func SystemCheckRepair(ctx context.Context, rpcClient UnaryInvoker, req *SystemC return ur.getMSError() } + +// CheckEngineRepairReq contains a repair request for a specific engine. +type CheckEngineRepairReq struct { + unaryRequest + + ctlpb.CheckEngineActReq +} + +// CheckEngineRepairResp contains the engine response for a repair request. +type CheckEngineRepairResp struct { + ctlpb.CheckEngineActResp +} + +// CheckEngineRepair directs a repair request to a specific engine. +// +// NB: This is an inter-server RPC. +func CheckEngineRepair(ctx context.Context, rpcClient UnaryInvoker, req *CheckEngineRepairReq) (*CheckEngineRepairResp, error) { + if req == nil { + return nil, errors.Errorf("nil %T", req) + } + + if req.Req == nil { + return nil, errors.Errorf("no action request included in %T", req) + } + + if len(req.HostList) != 1 { + return nil, errors.Errorf("CheckEngineRepair requires exactly one host") + } + + req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { + return ctlpb.NewCtlSvcClient(conn).CheckEngineRepair(ctx, &req.CheckEngineActReq) + }) + + ur, err := rpcClient.InvokeUnaryRPC(ctx, req) + if err != nil { + return nil, errors.Wrap(err, "gRPC call") + } + + if len(ur.Responses) == 0 { + return nil, errors.New("no host responses") + } + + pbResp, ok := ur.Responses[0].Message.(*ctlpb.CheckEngineActResp) + if !ok { + return nil, errors.Errorf("bad response type %T", ur.Responses[0].Message) + } + + return &CheckEngineRepairResp{ + CheckEngineActResp: *pbResp, + }, nil +} + +// SystemCheckEngineReportReq contains parameters to be passed to SystemCheckEngineReport. +type SystemCheckEngineReportReq struct { + unaryRequest + msRequest + + sharedpb.CheckReportReq +} + +// SystemCheckEngineReportResp contains the response from the SystemCheckEngineReport RPC. +type SystemCheckEngineReportResp struct { + sharedpb.CheckReportResp +} + +// SystemCheckEngineReport registers a checker report for an individual rank with the management service. +// +// NB: This is an inter-server RPC. +func SystemCheckEngineReport(ctx context.Context, rpcClient UnaryInvoker, req *SystemCheckEngineReportReq) (*SystemCheckEngineReportResp, error) { + if req == nil { + return nil, errors.Errorf("nil %T", req) + } + + if req.Report == nil { + return nil, errors.Errorf("no check report in %T", req) + } + + req.setRPC(func(ctx context.Context, conn *grpc.ClientConn) (proto.Message, error) { + return mgmtpb.NewMgmtSvcClient(conn).SystemCheckEngineReport(ctx, &req.CheckReportReq) + }) + + rpcClient.Debugf("DAOS system check report request: %s", pbutil.Debug(&req.CheckReportReq)) + ur, err := rpcClient.InvokeUnaryRPC(ctx, req) + if err != nil { + return nil, errors.Wrap(err, "gRPC call") + } + + if err := ur.getMSError(); err != nil { + return nil, errors.Wrap(err, "MS error") + } + + msResp, err := ur.getMSResponse() + if err != nil { + return nil, errors.Wrap(err, "checking MS response") + } + + pbResp, ok := msResp.(*sharedpb.CheckReportResp) + if !ok { + return nil, errors.Errorf("unexpected response type %T", msResp) + } + + resp := new(SystemCheckEngineReportResp) + resp.CheckReportResp = *pbResp + + return resp, nil +} diff --git a/src/control/lib/control/check_test.go b/src/control/lib/control/check_test.go index b4f65b4978a..b2235ebe053 100644 --- a/src/control/lib/control/check_test.go +++ b/src/control/lib/control/check_test.go @@ -9,14 +9,20 @@ package control import ( "testing" + "time" "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/pkg/errors" "google.golang.org/protobuf/testing/protocmp" chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" "github.com/daos-stack/daos/src/control/common/test" "github.com/daos-stack/daos/src/control/lib/daos" + "github.com/daos-stack/daos/src/control/logging" ) func TestControl_SystemCheckReport_RepairChoices(t *testing.T) { @@ -183,6 +189,119 @@ func TestControl_SystemCheckReport_IsStale(t *testing.T) { } } +func TestControl_SystemCheckQuery(t *testing.T) { + testTime := time.Now() + + for name, tc := range map[string]struct { + mic *MockInvokerConfig + req *SystemCheckQueryReq + expErr error + expResp *SystemCheckQueryResp + }{ + "nil req": { + expErr: errors.New("nil"), + }, + "gRPC failed": { + mic: &MockInvokerConfig{ + UnaryError: errors.New("foobar"), + }, + req: &SystemCheckQueryReq{}, + expErr: errors.New("foobar"), + }, + "success": { + mic: &MockInvokerConfig{ + UnaryResponse: MockMSResponse("", nil, &mgmtpb.CheckQueryResp{ + ReqStatus: daos.MiscError.Int32(), + InsStatus: chkpb.CheckInstStatus_CIS_RUNNING, + InsPhase: chkpb.CheckScanPhase_CSP_CONT_CLEANUP, + Inconsistency: &mgmtpb.CheckQueryInconsist{ + Total: 5, + Repaired: 3, + Ignored: 1, + Failed: 1, + }, + Time: &mgmtpb.CheckQueryTime{StartTime: uint64(testTime.Unix())}, + Pools: []*mgmtpb.CheckQueryPool{ + { + Uuid: "12345678-1234-1234-1234-123456789abc", + Status: chkpb.CheckPoolStatus_CPS_CHECKED, + Phase: chkpb.CheckScanPhase_CSP_DONE, + Inconsistency: &mgmtpb.CheckQueryInconsist{}, + Time: &mgmtpb.CheckQueryTime{StartTime: uint64(testTime.Unix())}, + Targets: []*mgmtpb.CheckQueryTarget{ + { + Rank: 3, + Status: chkpb.CheckInstStatus_CIS_COMPLETED, + Inconsistency: &mgmtpb.CheckQueryInconsist{}, + Time: &mgmtpb.CheckQueryTime{StartTime: uint64(testTime.Unix())}, + }, + }, + }, + }, + Reports: []*chkpb.CheckReport{ + {Seq: 1, Class: chkpb.CheckInconsistClass_CIC_POOL_BAD_LABEL}, + {Seq: 3, Class: chkpb.CheckInconsistClass_CIC_POOL_BAD_LABEL}, + }, + Leader: 5, + }), + }, + req: &SystemCheckQueryReq{}, + expResp: &SystemCheckQueryResp{ + Status: SystemCheckStatusRunning, + ScanPhase: SystemCheckScanPhaseContainerCleanup, + StartTime: time.Unix(testTime.Unix(), 0), + Leader: 5, + Pools: map[string]*SystemCheckPoolInfo{ + "12345678-1234-1234-1234-123456789abc": { + RawRankInfo: rawRankMap{ + 3: { + Uuid: "12345678-1234-1234-1234-123456789abc", + Status: chkpb.CheckPoolStatus_CPS_CHECKED, + Phase: chkpb.CheckScanPhase_CSP_DONE, + Inconsistency: &mgmtpb.CheckQueryInconsist{}, + Time: &mgmtpb.CheckQueryTime{StartTime: uint64(testTime.Unix())}, + Targets: []*mgmtpb.CheckQueryTarget{ + { + Rank: 3, + Status: chkpb.CheckInstStatus_CIS_COMPLETED, + Inconsistency: &mgmtpb.CheckQueryInconsist{}, + Time: &mgmtpb.CheckQueryTime{StartTime: uint64(testTime.Unix())}, + }, + }, + }, + }, + UUID: "12345678-1234-1234-1234-123456789abc", + Status: chkpb.CheckPoolStatus_CPS_CHECKED.String(), + Phase: chkpb.CheckScanPhase_CSP_DONE.String(), + StartTime: time.Unix(testTime.Unix(), 0), + }, + }, + Reports: []*SystemCheckReport{ + {CheckReport: chkpb.CheckReport{Seq: 1, Class: chkpb.CheckInconsistClass_CIC_POOL_BAD_LABEL}}, + {CheckReport: chkpb.CheckReport{Seq: 3, Class: chkpb.CheckInconsistClass_CIC_POOL_BAD_LABEL}}, + }, + }, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + + mi := NewMockInvoker(logging.FromContext(ctx), tc.mic) + + resp, err := SystemCheckQuery(ctx, mi, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "SystemCheckQueryResp", tc.expResp, resp, cmpopts.IgnoreUnexported( + chkpb.CheckReport{}, + mgmtpb.CheckQueryPool{}, + mgmtpb.CheckQueryInconsist{}, + mgmtpb.CheckQueryTarget{}, + mgmtpb.CheckQueryTime{}, + )) + }) + } +} + func TestControl_SystemCheckQuery_ReportsSorted(t *testing.T) { // Reports are returned in scrambled order to verify that // SystemCheckQuery sorts them by class, then by sequence. @@ -217,3 +336,212 @@ func TestControl_SystemCheckQuery_ReportsSorted(t *testing.T) { t.Fatalf("reports not sorted (-want +got):\n%s", diff) } } + +func TestControl_SystemCheckEngineReport(t *testing.T) { + for name, tc := range map[string]struct { + mic *MockInvokerConfig + req *SystemCheckEngineReportReq + expErr error + expResp *SystemCheckEngineReportResp + }{ + "nil req": { + expErr: errors.New("nil"), + }, + "nil report": { + req: &SystemCheckEngineReportReq{}, + expErr: errors.New("no check report"), + }, + "gRPC fails": { + mic: &MockInvokerConfig{ + UnaryError: errors.New("MockInvoker error"), + }, + req: &SystemCheckEngineReportReq{ + CheckReportReq: sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + }, + }, + expErr: errors.New("MockInvoker error"), + }, + "MS error": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{ + { + Error: errors.New("MockInvoker response error"), + }, + }, + }, + }, + req: &SystemCheckEngineReportReq{ + CheckReportReq: sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + }, + }, + expErr: errors.New("MockInvoker response error"), + }, + "daos error code": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{{ + Message: &sharedpb.CheckReportResp{ + Status: daos.MiscError.Int32(), + }, + }}, + }, + }, + req: &SystemCheckEngineReportReq{ + CheckReportReq: sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + }, + }, + expResp: &SystemCheckEngineReportResp{ + CheckReportResp: sharedpb.CheckReportResp{ + Status: daos.MiscError.Int32(), + }, + }, + }, + "bad MS response type": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{ + { + Message: &mgmtpb.CheckStartReq{ + Sys: "something", + }, + }, + }, + }, + }, + req: &SystemCheckEngineReportReq{ + CheckReportReq: sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + }, + }, + expErr: errors.New("unexpected response"), + }, + "success": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{{ + Message: &sharedpb.CheckReportResp{}, + }}, + }, + }, + req: &SystemCheckEngineReportReq{ + CheckReportReq: sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + }, + }, + expResp: &SystemCheckEngineReportResp{}, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + + invoker := NewMockInvoker(logging.FromContext(ctx), tc.mic) + resp, err := SystemCheckEngineReport(ctx, invoker, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "response", tc.expResp, resp, cmpopts.IgnoreUnexported(sharedpb.CheckReportResp{})) + }) + } +} + +func TestControl_CheckEngineRepair(t *testing.T) { + reqWithHostList := func(rank uint32, actReq *mgmtpb.CheckActReq, hosts ...string) *CheckEngineRepairReq { + req := &CheckEngineRepairReq{ + CheckEngineActReq: ctlpb.CheckEngineActReq{ + Rank: rank, + Req: actReq, + }, + } + req.SetHostList(hosts) + return req + } + + defaultReq := reqWithHostList(42, &mgmtpb.CheckActReq{}, "1.2.3.4") + + for name, tc := range map[string]struct { + mic *MockInvokerConfig + req *CheckEngineRepairReq + expResp *CheckEngineRepairResp + expErr error + }{ + "nil req": { + expErr: errors.New("nil"), + }, + "no action req": { + req: reqWithHostList(5, nil), + expErr: errors.New("no action"), + }, + "host list too long": { + req: reqWithHostList(5, &mgmtpb.CheckActReq{}, "1.2.3.4", "5.6.7.8"), + expErr: errors.New("exactly one host"), + }, + "gRPC fails": { + mic: &MockInvokerConfig{ + UnaryError: errors.New("MockInvoker error"), + }, + req: defaultReq, + expErr: errors.New("MockInvoker error"), + }, + "no host response": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{}, + }, + }, + req: defaultReq, + expErr: errors.New("no host responses"), + }, + "bad return type": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{ + { + Message: &MockMessage{}, + }, + }, + }, + }, + req: defaultReq, + expErr: errors.New("bad response type"), + }, + "got response": { + mic: &MockInvokerConfig{ + UnaryResponse: &UnaryResponse{ + Responses: []*HostResponse{ + { + Message: &ctlpb.CheckEngineActResp{ + Rank: 5, + Resp: &mgmtpb.CheckActResp{ + Status: daos.MiscError.Int32(), + }, + }, + }, + }, + }, + }, + req: defaultReq, + expResp: &CheckEngineRepairResp{ + CheckEngineActResp: ctlpb.CheckEngineActResp{ + Rank: 5, + Resp: &mgmtpb.CheckActResp{ + Status: daos.MiscError.Int32(), + }, + }, + }, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + + invoker := NewMockInvoker(logging.FromContext(ctx), tc.mic) + resp, err := CheckEngineRepair(ctx, invoker, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "response", tc.expResp, resp, + cmpopts.IgnoreUnexported(ctlpb.CheckEngineActResp{}, mgmtpb.CheckActResp{})) + }) + } +} diff --git a/src/control/security/grpc_authorization.go b/src/control/security/grpc_authorization.go index 50104b5b475..84fe565eb6c 100644 --- a/src/control/security/grpc_authorization.go +++ b/src/control/security/grpc_authorization.go @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -44,6 +44,7 @@ var methodAuthorizations = map[string][]Component{ "/ctl.CtlSvc/StopRanks": {ComponentServer}, "/ctl.CtlSvc/ResetFormatRanks": {ComponentServer}, "/ctl.CtlSvc/StartRanks": {ComponentServer}, + "/ctl.CtlSvc/CheckEngineRepair": {ComponentServer}, "/mgmt.MgmtSvc/Join": {ComponentServer}, "/mgmt.MgmtSvc/ClusterEvent": {ComponentServer}, "/mgmt.MgmtSvc/LeaderQuery": {ComponentAdmin}, @@ -87,6 +88,7 @@ var methodAuthorizations = map[string][]Component{ "/mgmt.MgmtSvc/SystemCheckSetPolicy": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemCheckGetPolicy": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemCheckRepair": {ComponentAdmin}, + "/mgmt.MgmtSvc/SystemCheckEngineReport": {ComponentServer}, "/mgmt.MgmtSvc/FaultInjectReport": {ComponentAdmin}, "/mgmt.MgmtSvc/FaultInjectPoolFault": {ComponentAdmin}, "/mgmt.MgmtSvc/FaultInjectMgmtPoolFault": {ComponentAdmin}, diff --git a/src/control/security/grpc_authorization_test.go b/src/control/security/grpc_authorization_test.go index 3bd1d3a8152..98dabbda495 100644 --- a/src/control/security/grpc_authorization_test.go +++ b/src/control/security/grpc_authorization_test.go @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -69,6 +69,7 @@ func TestSecurity_ComponentHasAccess(t *testing.T) { "/ctl.CtlSvc/StopRanks": {ComponentServer}, "/ctl.CtlSvc/ResetFormatRanks": {ComponentServer}, "/ctl.CtlSvc/StartRanks": {ComponentServer}, + "/ctl.CtlSvc/CheckEngineRepair": {ComponentServer}, "/mgmt.MgmtSvc/Join": {ComponentServer}, "/mgmt.MgmtSvc/ClusterEvent": {ComponentServer}, "/mgmt.MgmtSvc/LeaderQuery": {ComponentAdmin}, @@ -112,6 +113,7 @@ func TestSecurity_ComponentHasAccess(t *testing.T) { "/mgmt.MgmtSvc/SystemCheckSetPolicy": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemCheckGetPolicy": {ComponentAdmin}, "/mgmt.MgmtSvc/SystemCheckRepair": {ComponentAdmin}, + "/mgmt.MgmtSvc/SystemCheckEngineReport": {ComponentServer}, "/mgmt.MgmtSvc/FaultInjectReport": {ComponentAdmin}, "/mgmt.MgmtSvc/FaultInjectPoolFault": {ComponentAdmin}, "/mgmt.MgmtSvc/FaultInjectMgmtPoolFault": {ComponentAdmin}, diff --git a/src/control/server/ctl_check.go b/src/control/server/ctl_check.go new file mode 100644 index 00000000000..21306930633 --- /dev/null +++ b/src/control/server/ctl_check.go @@ -0,0 +1,60 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +package server + +import ( + "context" + + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" + mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + "github.com/daos-stack/daos/src/control/lib/daos" + "github.com/daos-stack/daos/src/control/lib/ranklist" +) + +// CheckEngineRepair sends a check repair request to a specific engine. +func (svc *ControlService) CheckEngineRepair(ctx context.Context, req *ctlpb.CheckEngineActReq) (*ctlpb.CheckEngineActResp, error) { + if req == nil { + return nil, errors.Errorf("nil %T", req) + } + + if req.Req == nil { + return nil, errors.New("no CheckActReq in request") + } + + r := ranklist.Rank(req.Rank) + if r == ranklist.NilRank { + return nil, errors.New("nil rank in request") + } + + engSlice, err := svc.harness.FilterInstancesByRankSet(r.String()) + if err != nil { + return nil, err + } + + if len(engSlice) == 0 { + return nil, errors.Errorf("rank %d is not managed by this DAOS server", r) + } + + eng := engSlice[0] + dResp, err := eng.CallDrpc(ctx, daos.MethodCheckerAction, req.Req) + if err != nil { + return nil, errors.Wrapf(err, "dRPC to engine %d (rank %d)", eng.Index(), r) + } + + checkActResp := new(mgmtpb.CheckActResp) + if err := proto.Unmarshal(dResp.Body, checkActResp); err != nil { + return nil, errors.Wrapf(err, "unable to unmarshal engine %d response", eng.Index()) + } + + return &ctlpb.CheckEngineActResp{ + Rank: req.Rank, + Resp: checkActResp, + }, nil +} diff --git a/src/control/server/ctl_check_test.go b/src/control/server/ctl_check_test.go new file mode 100644 index 00000000000..1a998e6eca9 --- /dev/null +++ b/src/control/server/ctl_check_test.go @@ -0,0 +1,136 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +package server + +import ( + "testing" + + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + + chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" + mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + "github.com/daos-stack/daos/src/control/common/test" + "github.com/daos-stack/daos/src/control/drpc" + "github.com/daos-stack/daos/src/control/lib/daos" + "github.com/daos-stack/daos/src/control/lib/ranklist" + "github.com/daos-stack/daos/src/control/logging" + "github.com/daos-stack/daos/src/control/server/config" + "github.com/daos-stack/daos/src/control/server/engine" +) + +func TestServer_ControlService_CheckEngineRepair(t *testing.T) { + testActReq := &mgmtpb.CheckActReq{ + Sys: "sysname", + Seq: 1234, + Act: chkpb.CheckInconsistAction_CIA_TRUST_MS, + } + + rankNums := []uint32{1, 6} + + drpcRespWithMessage := func(t *testing.T, message proto.Message) *drpc.Response { + mesgBytes, err := proto.Marshal(message) + if err != nil { + t.Fatal(err) + } + + return &drpc.Response{ + Body: mesgBytes, + } + } + + for name, tc := range map[string]struct { + req *ctlpb.CheckEngineActReq + drpcErr error + drpcResp *drpc.Response + expErr error + expResp *ctlpb.CheckEngineActResp + }{ + "nil req": { + expErr: errors.New("nil"), + }, + "nil action": { + req: &ctlpb.CheckEngineActReq{}, + expErr: errors.New("no CheckActReq"), + }, + "nil rank": { + req: &ctlpb.CheckEngineActReq{ + Rank: uint32(ranklist.NilRank), + Req: testActReq, + }, + expErr: errors.New("nil rank"), + }, + "rank not on server": { + req: &ctlpb.CheckEngineActReq{ + Rank: 42, + Req: testActReq, + }, + expErr: errors.New("rank 42"), + }, + "dRPC error": { + req: &ctlpb.CheckEngineActReq{ + Rank: rankNums[0], + Req: testActReq, + }, + drpcErr: errors.New("mock dRPC Connect error"), + expErr: errors.New("mock dRPC Connect error"), + }, + "dRPC valid response": { + req: &ctlpb.CheckEngineActReq{ + Rank: rankNums[0], + Req: testActReq, + }, + drpcResp: drpcRespWithMessage(t, &mgmtpb.CheckActResp{Status: daos.MiscError.Int32()}), + expResp: &ctlpb.CheckEngineActResp{ + Rank: rankNums[0], + Resp: &mgmtpb.CheckActResp{Status: daos.MiscError.Int32()}, + }, + }, + "dRPC bad response": { + req: &ctlpb.CheckEngineActReq{ + Rank: rankNums[0], + Req: testActReq, + }, + drpcResp: &drpc.Response{Body: []byte("garbage")}, + expErr: errors.New("unable to unmarshal"), + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + log := logging.FromContext(ctx) + + cfg := config.DefaultServer().WithEngines( + engine.MockConfig().WithTargetCount(1), + engine.MockConfig().WithTargetCount(1), + ) + svc := mockControlService(t, log, cfg, nil, nil, nil) + for i, e := range svc.harness.instances { + srv, ok := e.(*EngineInstance) + if !ok { + t.Fatalf("setup error - wrong type for Engine (%T)", e) + } + + setupTestEngine(t, srv, uint32(i), rankNums[i]) + + drpcCfg := new(mockDrpcClientConfig) + drpcCfg.ConnectError = tc.drpcErr + drpcCfg.SendMsgResponse = tc.drpcResp + + srv.getDrpcClientFn = func(s string) drpc.DomainSocketClient { + return newMockDrpcClient(drpcCfg) + } + } + + resp, err := svc.CheckEngineRepair(ctx, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "CheckEngineActResp", tc.expResp, resp, cmpopts.IgnoreUnexported(ctlpb.CheckEngineActResp{}, mgmtpb.CheckActResp{})) + }) + } +} diff --git a/src/control/server/ctl_ranks_rpc_test.go b/src/control/server/ctl_ranks_rpc_test.go index 8e6405a7396..848618cfa21 100644 --- a/src/control/server/ctl_ranks_rpc_test.go +++ b/src/control/server/ctl_ranks_rpc_test.go @@ -1,6 +1,6 @@ // // (C) Copyright 2020-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -76,6 +76,19 @@ func checkUnorderedRankResults(t *testing.T, expResults, gotResults []*sharedpb. } } +func setupTestEngine(t *testing.T, srv *EngineInstance, idx, rank uint32, stopped ...bool) { + trc := &engine.TestRunnerConfig{} + if len(stopped) == 0 || !stopped[0] { + trc.Running.SetTrue() + srv.ready.SetTrue() + } + srv.runner = engine.NewTestRunner(trc, engine.MockConfig()) + srv.setIndex(idx) + + srv._superblock.Rank = new(ranklist.Rank) + *srv._superblock.Rank = ranklist.Rank(rank) +} + func TestServer_CtlSvc_PrepShutdownRanks(t *testing.T) { for name, tc := range map[string]struct { missingSB bool @@ -194,16 +207,7 @@ func TestServer_CtlSvc_PrepShutdownRanks(t *testing.T) { continue } - trc := &engine.TestRunnerConfig{} - if !tc.instancesStopped { - trc.Running.SetTrue() - srv.ready.SetTrue() - } - srv.runner = engine.NewTestRunner(trc, engine.MockConfig()) - srv.setIndex(uint32(i)) - - srv._superblock.Rank = new(ranklist.Rank) - *srv._superblock.Rank = ranklist.Rank(i + 1) + setupTestEngine(t, srv, uint32(i), uint32(i+1), tc.instancesStopped) cfg := new(mockDrpcClientConfig) if tc.drpcRet != nil { diff --git a/src/control/server/drpc.go b/src/control/server/drpc.go index d64f7f3c114..bdb1747a668 100644 --- a/src/control/server/drpc.go +++ b/src/control/server/drpc.go @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2023 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -96,7 +96,7 @@ func drpcServerSetup(ctx context.Context, req *drpcServerSetupReq) error { // Create and add our modules drpcServer.RegisterRPCModule(NewSecurityModule(req.log, req.transportConfig)) drpcServer.RegisterRPCModule(newMgmtModule()) - drpcServer.RegisterRPCModule(newSrvModule(req.log, req.sysdb, req.sysdb, req.engines, req.events, req.client, req.msReplicas)) + drpcServer.RegisterRPCModule(newSrvModule(req.log, req.sysdb, req.engines, req.events, req.client, req.msReplicas)) if err := drpcServer.Start(ctx); err != nil { return errors.Wrapf(err, "unable to start socket server on %s", sockPath) diff --git a/src/control/server/mgmt_check.go b/src/control/server/mgmt_check.go index a9266d47e78..913a0d2575a 100644 --- a/src/control/server/mgmt_check.go +++ b/src/control/server/mgmt_check.go @@ -1,6 +1,6 @@ // // (C) Copyright 2022-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // (C) Copyright 2025 Google LLC // // SPDX-License-Identifier: BSD-2-Clause-Patent @@ -14,13 +14,17 @@ import ( "sort" "strings" + uuid "github.com/google/uuid" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "github.com/daos-stack/daos/src/control/common" chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" "github.com/daos-stack/daos/src/control/drpc" + "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" "github.com/daos-stack/daos/src/control/lib/ranklist" "github.com/daos-stack/daos/src/control/system" @@ -87,6 +91,35 @@ func (svc *mgmtSvc) unwrapCheckerReq(req proto.Message) (proto.Message, error) { return req, nil } +// getCheckLeader gets the rank number of the check leader. +// +// NB: For now, this is the first usable rank on the MS leader. +func (svc *mgmtSvc) getCheckLeader() (ranklist.Rank, error) { + for i, ei := range svc.harness.instances { + r, err := ei.GetRank() + if err != nil { + svc.log.Debugf("unable to use rank at index %d: %s", i, err) + continue + } + + m, err := svc.sysdb.FindMemberByRank(r) + if err != nil { + svc.log.Debugf("unable to get member for rank %d (index %d): %s", r, i, err) + continue + } + + if m.State != system.MemberStateCheckerStarted { + svc.log.Tracef("unable use rank %d as check leader (state: %s)", r, m.State) + continue + } + + svc.log.Tracef("selected rank %d as check leader", r) + return r, nil + } + + return ranklist.NilRank, errors.New("no ranks are usable as the check leader") +} + func (svc *mgmtSvc) makeCheckerCall(ctx context.Context, method drpc.Method, req proto.Message) (*drpc.Response, error) { if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { return nil, err @@ -406,6 +439,14 @@ func (svc *mgmtSvc) SystemCheckQuery(ctx context.Context, req *mgmtpb.CheckQuery } } + leader, err := svc.getCheckLeader() + if err != nil { + svc.log.Errorf("can't get the check leader rank: %s", err) + resp.Leader = uint32(ranklist.NilRank) + } else { + resp.Leader = leader.Uint32() + } + // Collect saved older reports cfList, err := svc.sysdb.GetCheckerFindings(req.GetSeqs()...) if err != nil { @@ -587,10 +628,18 @@ func (svc *mgmtSvc) SystemCheckSetPolicy(ctx context.Context, req *mgmtpb.CheckS // SystemCheckRepair repairs a previous checker finding. func (svc *mgmtSvc) SystemCheckRepair(ctx context.Context, req *mgmtpb.CheckActReq) (*mgmtpb.CheckActResp, error) { + if req == nil { + return nil, errors.Errorf("nil %T", req) + } + if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { return nil, err } + if err := svc.verifyCheckerReady(); err != nil { + return nil, err + } + f, err := svc.sysdb.GetCheckerFinding(req.Seq) if err != nil { return nil, err @@ -600,22 +649,77 @@ func (svc *mgmtSvc) SystemCheckRepair(ctx context.Context, req *mgmtpb.CheckActR return nil, errors.Errorf("invalid action %s (must be one of %s)", req.Act, f.ValidChoicesString()) } - dResp, err := svc.makeCheckerCall(ctx, daos.MethodCheckerAction, req) + // Repair must be sent to the rank associated with the finding + r := ranklist.Rank(f.Rank) + m, err := svc.sysdb.FindMemberByRank(r) if err != nil { - return nil, err + return nil, errors.Wrapf(err, "looking up rank %d for finding 0x%x", r, f.Seq) } - resp := new(mgmtpb.CheckActResp) - if err = proto.Unmarshal(dResp.Body, resp); err != nil { - return nil, errors.Wrap(err, "unmarshal CheckRepair response") + // Send to rank's control address + engReq := &control.CheckEngineRepairReq{ + CheckEngineActReq: ctlpb.CheckEngineActReq{ + Rank: r.Uint32(), + Req: req, + }, + } + engReq.HostList = []string{m.Addr.String()} + engResp, err := control.CheckEngineRepair(ctx, svc.rpcClient, engReq) + if err != nil { + return nil, errors.Wrapf(err, "send repair request to rank %d", r) } - if resp.Status == 0 { + if engResp.Resp.Status == 0 { if err := svc.sysdb.SetCheckerFindingAction(req.Seq, int32(req.Act)); err != nil { return nil, err } svc.log.Debugf("Set action %s for finding %d", req.Act, req.Seq) } - return resp, nil + return engResp.Resp, nil +} + +// SystemCheckEngineReport registers a checker report with the management service. +func (svc *mgmtSvc) SystemCheckEngineReport(ctx context.Context, req *sharedpb.CheckReportReq) (*sharedpb.CheckReportResp, error) { + if req == nil { + return nil, errors.Wrapf(daos.InvalidInput, "nil %T", req) + } + + if req.Report == nil { + return nil, errors.Wrapf(daos.InvalidInput, "no report in request") + } + + if err := svc.checkLeaderRequest(wrapCheckerReq(req)); err != nil { + return nil, err + } + + if err := svc.verifyCheckerReady(); err != nil { + return nil, err + } + + if req.Report.PoolLabel == "" && req.Report.PoolUuid != "" { + svc.log.Tracef("looking up pool label for UUID %s, check report 0x%x", req.Report.PoolUuid, req.Report.Seq) + poolUUID, err := uuid.Parse(req.Report.PoolUuid) + if err != nil { + svc.log.Errorf("unable to parse pool UUID %q: %s", req.Report.PoolUuid, err) + return nil, errors.Wrapf(daos.InvalidInput, "parse pool UUID %q", req.Report.PoolUuid) + } + + if ps, err := svc.sysdb.FindPoolServiceByUUID(poolUUID); err == nil { + // Annotate the report with the pool label for the user. + // NB: In some cases this label may be incorrect, in which + // case the user will want to use the verbose or JSON output + // modes of the checker in order to get the UUID. + req.Report.PoolLabel = ps.PoolLabel + } + } + + finding := checker.AnnotateFinding(checker.NewFinding(req.Report)) + svc.log.Debugf("annotated finding: %+v", finding) + + if err := svc.sysdb.AddOrUpdateCheckerFinding(finding); err != nil { + svc.log.Errorf("AddOrUpdateCheckerFinding %+v: %s", finding, err) + return nil, err + } + return new(sharedpb.CheckReportResp), nil } diff --git a/src/control/server/mgmt_check_test.go b/src/control/server/mgmt_check_test.go index b1d381340fd..83e26ca7000 100644 --- a/src/control/server/mgmt_check_test.go +++ b/src/control/server/mgmt_check_test.go @@ -1,6 +1,6 @@ // // (C) Copyright 2023 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -14,16 +14,21 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" + uuid "github.com/google/uuid" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "github.com/daos-stack/daos/src/control/build" "github.com/daos-stack/daos/src/control/common/proto/chk" chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + ctlpb "github.com/daos-stack/daos/src/control/common/proto/ctl" "github.com/daos-stack/daos/src/control/common/proto/mgmt" mgmtpb "github.com/daos-stack/daos/src/control/common/proto/mgmt" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" "github.com/daos-stack/daos/src/control/common/test" + "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" + "github.com/daos-stack/daos/src/control/lib/ranklist" "github.com/daos-stack/daos/src/control/logging" "github.com/daos-stack/daos/src/control/system" "github.com/daos-stack/daos/src/control/system/checker" @@ -912,6 +917,36 @@ func TestServer_mgmtSvc_SystemCheckQuery(t *testing.T) { }, }, }, + "get check leader rank failed": { + createMS: func(t *testing.T, log logging.Logger) *mgmtSvc { + svc := testSvcCheckerEnabled(t, log, system.MemberStateCheckerStarted, uuids) + for _, f := range testFindingsMS { + if err := svc.sysdb.AddCheckerFinding(&checker.Finding{CheckReport: *f}); err != nil { + t.Fatalf("unable to add finding %+v: %s", f, err.Error()) + } + } + for _, e := range svc.harness.instances { + ei, ok := e.(*EngineInstance) + if !ok { + t.Fatalf("engine instance bad type %T", e) + } + + // make it impossible to get rank + ei._superblock = nil + } + return svc + }, + req: &mgmtpb.CheckQueryReq{ + Sys: "daos_server", + }, + expResp: &mgmtpb.CheckQueryResp{ + Leader: uint32(ranklist.NilRank), + InsStatus: chkpb.CheckInstStatus_CIS_RUNNING, + InsPhase: chkpb.CheckScanPhase_CSP_AGGREGATION, + Pools: drpcPools, + Reports: append(testFindingsMS, testFindingsDrpc...), + }, + }, } { t.Run(name, func(t *testing.T) { log, buf := logging.NewTestLogger(t.Name()) @@ -951,3 +986,366 @@ func TestServer_mgmtSvc_SystemCheckQuery(t *testing.T) { }) } } + +func TestServer_mgmtSvc_getCheckLeader(t *testing.T) { + for name, tc := range map[string]struct { + createMS func(t *testing.T, l logging.Logger) *mgmtSvc + expRank ranklist.Rank + expErr error + }{ + "can't get rank": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + svc := newTestMgmtSvc(t, l) + for _, e := range svc.harness.instances { + ei := e.(*EngineInstance) + ei._superblock = nil + } + return svc + }, + expRank: ranklist.NilRank, + expErr: errors.New("no ranks are usable"), + }, + "rank missing from db": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + return newTestMgmtSvc(t, l) + }, + expRank: ranklist.NilRank, + expErr: errors.New("no ranks are usable"), + }, + "bad member state": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + svc := newTestMgmtSvc(t, l) + if err := svc.sysdb.AddMember(mockMember(t, 0, 1, "adminexcluded")); err != nil { + t.Fatal(err) + } + return svc + }, + expRank: ranklist.NilRank, + expErr: errors.New("no ranks are usable"), + }, + "first rank success": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + numEngines := 2 + svc := newTestMgmtSvcMulti(t, l, numEngines, true) + for i := 0; i < numEngines; i++ { + if err := svc.sysdb.AddMember(mockMember(t, int32(i), int32(i), "checkerstarted")); err != nil { + t.Fatal(err) + } + } + return svc + }, + }, + "second rank success": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + numEngines := 2 + svc := newTestMgmtSvcMulti(t, l, numEngines, true) + for i := 0; i < numEngines; i++ { + state := "checkerstarted" + if i == 0 { + state = "adminexcluded" + } + if err := svc.sysdb.AddMember(mockMember(t, int32(i), int32(i), state)); err != nil { + t.Fatal(err) + } + } + return svc + }, + expRank: ranklist.Rank(1), + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + log := logging.FromContext(ctx) + + svc := tc.createMS(t, log) + + rank, err := svc.getCheckLeader() + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "rank", tc.expRank, rank) + }) + } +} + +func TestServer_mgmtSvc_SystemCheckEngineReport(t *testing.T) { + uuids := testPoolUUIDs(5) + + validReport := &chkpb.CheckReport{ + Seq: 13, + Class: chkpb.CheckInconsistClass_CIC_CONT_BAD_LABEL, + Action: chkpb.CheckInconsistAction_CIA_TRUST_MS, + PoolUuid: uuids[0], + } + + for name, tc := range map[string]struct { + createMS func(*testing.T, logging.Logger) *mgmtSvc + req *sharedpb.CheckReportReq + expErr error + expResp *sharedpb.CheckReportResp + expReportInDB bool + }{ + "nil request": { + expErr: daos.InvalidInput, + }, + "nil report": { + req: &sharedpb.CheckReportReq{}, + expErr: daos.InvalidInput, + }, + "not leader": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + svc := testSvcCheckerEnabled(t, l, system.MemberStateCheckerStarted, uuids) + if err := svc.sysdb.ResignLeadership(errors.New("test")); err != nil { + t.Fatal(err) + } + + return svc + }, + req: &sharedpb.CheckReportReq{ + Report: validReport, + }, + expErr: &system.ErrNotLeader{}, + }, + "not checker mode": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + return newTestMgmtSvcMulti(t, l, 3, true) + }, + req: &sharedpb.CheckReportReq{ + Report: validReport, + }, + expErr: checker.FaultCheckerNotEnabled, + }, + "bad pool UUID": { + req: &sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{ + Seq: 13, + Class: chkpb.CheckInconsistClass_CIC_CONT_BAD_LABEL, + Action: chkpb.CheckInconsistAction_CIA_TRUST_MS, + PoolUuid: "junk", + }, + }, + expErr: daos.InvalidInput, + }, + "success": { + req: &sharedpb.CheckReportReq{ + Report: validReport, + }, + expReportInDB: true, + expResp: &sharedpb.CheckReportResp{}, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + log := logging.FromContext(ctx) + + if tc.createMS == nil { + tc.createMS = func(t *testing.T, log logging.Logger) *mgmtSvc { + svc := testSvcCheckerEnabled(t, log, system.MemberStateCheckerStarted, uuids) + return svc + } + } + svc := tc.createMS(t, log) + + resp, err := svc.SystemCheckEngineReport(ctx, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "CheckReportResp", tc.expResp, resp, cmpopts.IgnoreUnexported(sharedpb.CheckReportResp{})) + + if tc.req == nil || tc.req.Report == nil { + return + } + + seq := tc.req.Report.Seq + expReportErr := raft.ErrFindingNotFound(seq) + if tc.expReportInDB { + expReportErr = nil + } + + _, reportErr := svc.sysdb.GetCheckerFinding(seq) + test.CmpErr(t, expReportErr, reportErr) + }) + } +} + +func TestServer_mgmtSvc_SystemCheckRepair(t *testing.T) { + const testNumRanks = 5 + const testSeq = 0x1234 + + validReq := &mgmtpb.CheckActReq{ + Sys: build.DefaultSystemName, + Seq: testSeq, + Act: chkpb.CheckInconsistAction_CIA_DISCARD, + } + + testFinding := &checker.Finding{ + CheckReport: chkpb.CheckReport{ + Seq: testSeq, + Rank: testNumRanks - 1, + Action: chkpb.CheckInconsistAction_CIA_INTERACT, + ActChoices: []chkpb.CheckInconsistAction{ + chkpb.CheckInconsistAction_CIA_TRUST_MS, + chkpb.CheckInconsistAction_CIA_READD, + chkpb.CheckInconsistAction_CIA_DISCARD, + }, + }, + } + + createMSMultiInCheckerMode := func(t *testing.T, log logging.Logger) *mgmtSvc { + svc := newTestMgmtSvc(t, log) + for i := 0; i < testNumRanks; i++ { + svc.sysdb.AddMember(&system.Member{ + UUID: uuid.New(), + Rank: ranklist.Rank(i), + Addr: system.MockControlAddr(t, uint32(i)), + }) + } + updateTestMemberState(t, svc, system.MemberStateCheckerStarted) + if err := svc.enableChecker(); err != nil { + t.Fatal(err) + } + return svc + } + + for name, tc := range map[string]struct { + createMS func(*testing.T, logging.Logger) *mgmtSvc + startFinding *checker.Finding + grpcErr error + grpcResp proto.Message + req *mgmtpb.CheckActReq + expErr error + expResp *mgmtpb.CheckActResp + expFinding *checker.Finding + }{ + "nil req": { + expErr: errors.New("nil"), + }, + "not leader": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + svc := createMSMultiInCheckerMode(t, l) + if err := svc.sysdb.ResignLeadership(errors.New("test")); err != nil { + t.Fatal(err) + } + + return svc + }, + req: validReq, + expErr: &system.ErrNotLeader{}, + }, + "not checker mode": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + svc := newTestMgmtSvcMulti(t, l, testNumRanks, true) + return svc + }, + req: validReq, + expErr: checker.FaultCheckerNotEnabled, + }, + "invalid seq num": { + req: &mgmtpb.CheckActReq{ + Sys: validReq.Sys, + Seq: validReq.Seq - 1, + Act: validReq.Act, + }, + expErr: errors.New("not found"), + }, + "invalid action": { + req: &mgmtpb.CheckActReq{ + Sys: validReq.Sys, + Seq: validReq.Seq, + Act: chkpb.CheckInconsistAction_CIA_INTERACT, + }, + expErr: errors.New("invalid action"), + }, + "finding has invalid rank": { + createMS: func(t *testing.T, l logging.Logger) *mgmtSvc { + return createMSMultiInCheckerMode(t, l) + }, + startFinding: &checker.Finding{ + CheckReport: chkpb.CheckReport{ + Seq: testFinding.Seq, + ActChoices: testFinding.ActChoices, + Rank: 1234, + }, + }, + req: validReq, + expErr: errors.New("unable to find member"), + }, + "gRPC to engine fails": { + grpcErr: errors.New("MockInvoker error"), + req: validReq, + expErr: errors.New("MockInvoker error"), + }, + "status error": { + req: validReq, + grpcResp: &ctlpb.CheckEngineActResp{ + Rank: testFinding.Rank, + Resp: &mgmtpb.CheckActResp{ + Status: daos.MiscError.Int32(), + }, + }, + expResp: &mgmtpb.CheckActResp{ + Status: daos.MiscError.Int32(), + }, + }, + "success": { + req: validReq, + grpcResp: &ctlpb.CheckEngineActResp{ + Rank: testFinding.Rank, + Resp: &mgmtpb.CheckActResp{}, + }, + expResp: &mgmtpb.CheckActResp{}, + expFinding: &checker.Finding{ + CheckReport: chkpb.CheckReport{ + Seq: testFinding.Seq, + Rank: testFinding.Rank, + Action: validReq.Act, // action should be updated and choices cleared + }, + }, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + log := logging.FromContext(ctx) + + if tc.createMS == nil { + tc.createMS = func(t *testing.T, l logging.Logger) *mgmtSvc { + return createMSMultiInCheckerMode(t, l) + } + } + svc := tc.createMS(t, log) + + if tc.startFinding == nil { + tc.startFinding = testFinding + } + if err := svc.sysdb.AddCheckerFinding(tc.startFinding); err != nil { + t.Fatal(err) + } + + svc.rpcClient = control.NewMockInvoker(log, &control.MockInvokerConfig{ + UnaryError: tc.grpcErr, + UnaryResponse: &control.UnaryResponse{ + Responses: []*control.HostResponse{ + { + Message: tc.grpcResp, + }, + }, + }, + }) + + resp, err := svc.SystemCheckRepair(ctx, tc.req) + + test.CmpErr(t, tc.expErr, err) + test.CmpAny(t, "CheckActResp", tc.expResp, resp, cmpopts.IgnoreUnexported(mgmtpb.CheckActResp{})) + + // Check state of finding in DB + if tc.expFinding == nil { + tc.expFinding = tc.startFinding + } + + f, err := svc.sysdb.GetCheckerFinding(tc.expFinding.Seq) + if err != nil { + t.Fatal(err) + } + + test.CmpAny(t, "updated finding", tc.expFinding, f, cmpopts.IgnoreUnexported(chkpb.CheckReport{})) + }) + } +} diff --git a/src/control/server/mgmt_drpc.go b/src/control/server/mgmt_drpc.go index 3789b0dec8c..650ffedde55 100644 --- a/src/control/server/mgmt_drpc.go +++ b/src/control/server/mgmt_drpc.go @@ -1,6 +1,6 @@ // // (C) Copyright 2018-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -26,7 +26,6 @@ import ( "github.com/daos-stack/daos/src/control/lib/ranklist" "github.com/daos-stack/daos/src/control/logging" "github.com/daos-stack/daos/src/control/system" - "github.com/daos-stack/daos/src/control/system/checker" "github.com/daos-stack/daos/src/control/system/raft" ) @@ -76,7 +75,6 @@ type poolDatabase interface { type srvModule struct { log logging.Logger poolDB poolDatabase - checkerDB checker.FindingStore engines []Engine events *events.PubSub rpcClient control.UnaryInvoker @@ -85,11 +83,10 @@ type srvModule struct { // newSrvModule creates a new srv module references to the system database, // resident EngineInstances and event publish subscribe reference. -func newSrvModule(log logging.Logger, pdb poolDatabase, cdb checker.FindingStore, engines []Engine, events *events.PubSub, client control.UnaryInvoker, msReplicas []string) *srvModule { +func newSrvModule(log logging.Logger, pdb poolDatabase, engines []Engine, events *events.PubSub, client control.UnaryInvoker, msReplicas []string) *srvModule { return &srvModule{ log: log, poolDB: pdb, - checkerDB: cdb, engines: engines, events: events, rpcClient: client, diff --git a/src/control/server/mgmt_drpc_checker.go b/src/control/server/mgmt_drpc_checker.go index 7fb1ebe7efb..416fbb777b4 100644 --- a/src/control/server/mgmt_drpc_checker.go +++ b/src/control/server/mgmt_drpc_checker.go @@ -1,5 +1,6 @@ // // (C) Copyright 2022 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -10,14 +11,18 @@ import ( "context" "github.com/google/uuid" + "github.com/pkg/errors" "google.golang.org/protobuf/proto" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" srvpb "github.com/daos-stack/daos/src/control/common/proto/srv" "github.com/daos-stack/daos/src/control/drpc" + "github.com/daos-stack/daos/src/control/fault" + "github.com/daos-stack/daos/src/control/fault/code" + "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" "github.com/daos-stack/daos/src/control/lib/ranklist" "github.com/daos-stack/daos/src/control/system" - "github.com/daos-stack/daos/src/control/system/checker" ) func (mod *srvModule) handleCheckerListPools(_ context.Context, reqb []byte) (out []byte, outErr error) { @@ -190,43 +195,52 @@ func (mod *srvModule) handleCheckerDeregisterPool(parent context.Context, reqb [ return } -func (mod *srvModule) handleCheckerReport(_ context.Context, reqb []byte) (out []byte, outErr error) { - req := new(srvpb.CheckReportReq) +func chkReportErrToDaosStatus(err error) daos.Status { + err = errors.Cause(err) // Fully unwrap before attempting comparisons + + if status, ok := err.(daos.Status); ok { + return status + } + + switch { + case control.IsRetryableConnErr(err), system.IsNotLeader(err), system.IsNotReplica(err): + // If these errors manage to boil to the top, it's probably worth trying over. + return daos.TryAgain + case control.IsConnErr(err), control.IsMSConnectionFailure(err): + return daos.Unreachable + case fault.IsFaultCode(err, code.SystemCheckerNotEnabled), + fault.IsFaultCode(err, code.SystemCheckerInvalidMemberStates): + return daos.NotApplicable + default: + return daos.MiscError + } +} + +func (mod *srvModule) handleCheckerReport(ctx context.Context, reqb []byte) (out []byte, outErr error) { + req := new(sharedpb.CheckReportReq) if err := proto.Unmarshal(reqb, req); err != nil { return nil, drpc.UnmarshalingPayloadFailure() } mod.log.Debugf("handling CheckerReport: %+v", req) - resp := new(srvpb.CheckReportResp) - defer func() { - mod.log.Debugf("CheckerReport resp: %+v", resp) - out, outErr = proto.Marshal(resp) - }() + // Forward the report to the MS + msReq := &control.SystemCheckEngineReportReq{ + CheckReportReq: *req, + } + msReq.SetHostList(mod.msReplicas) - if req.Report != nil && req.Report.PoolLabel == "" && req.Report.PoolUuid != "" { - poolUUID, err := uuid.Parse(req.Report.PoolUuid) - if err != nil { - mod.log.Errorf("invalid pool UUID %q: %s", req.Report.PoolUuid, err) - resp.Status = int32(daos.InvalidInput) - return - } + mod.log.Debugf("forwarding check report to MS: %+v", msReq) + resp, err := control.SystemCheckEngineReport(ctx, mod.rpcClient, msReq) - if ps, err := mod.poolDB.FindPoolServiceByUUID(poolUUID); err == nil { - // Annotate the report with the pool label for the user. - // NB: In some cases this label may be incorrect, in which - // case the user will want to use the verbose or JSON output - // modes of the checker in order to get the UUID. - req.Report.PoolLabel = ps.PoolLabel + var drpcResp *sharedpb.CheckReportResp + if err != nil { + mod.log.Errorf("SystemCheckEngineReport failed: %s", err) + drpcResp = &sharedpb.CheckReportResp{ + Status: chkReportErrToDaosStatus(err).Int32(), } + } else { + drpcResp = &resp.CheckReportResp } - finding := checker.AnnotateFinding(checker.NewFinding(req.Report)) - mod.log.Debugf("annotated finding: %+v", finding) - if err := mod.checkerDB.AddOrUpdateCheckerFinding(finding); err != nil { - mod.log.Errorf("failed to add checker finding %+v: %s", finding, err) - resp.Status = int32(daos.MiscError) - return - } - - return + return proto.Marshal(drpcResp) } diff --git a/src/control/server/mgmt_drpc_checker_test.go b/src/control/server/mgmt_drpc_checker_test.go index e0e051a891a..2e685ef556c 100644 --- a/src/control/server/mgmt_drpc_checker_test.go +++ b/src/control/server/mgmt_drpc_checker_test.go @@ -1,5 +1,6 @@ // // (C) Copyright 2022 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -11,17 +12,24 @@ import ( "testing" "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" uuid "github.com/google/uuid" + "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/testing/protocmp" + "github.com/daos-stack/daos/src/control/build" + chkpb "github.com/daos-stack/daos/src/control/common/proto/chk" + sharedpb "github.com/daos-stack/daos/src/control/common/proto/shared" srvpb "github.com/daos-stack/daos/src/control/common/proto/srv" "github.com/daos-stack/daos/src/control/common/test" "github.com/daos-stack/daos/src/control/drpc" + "github.com/daos-stack/daos/src/control/lib/control" "github.com/daos-stack/daos/src/control/lib/daos" "github.com/daos-stack/daos/src/control/lib/ranklist" "github.com/daos-stack/daos/src/control/logging" "github.com/daos-stack/daos/src/control/system" + "github.com/daos-stack/daos/src/control/system/checker" "github.com/daos-stack/daos/src/control/system/raft" ) @@ -302,3 +310,143 @@ func TestSrvModule_HandleCheckerDeregisterPool(t *testing.T) { }) } } + +func TestServer_srvModule_handleCheckerReport(t *testing.T) { + bytesFromReq := func(t *testing.T, req *sharedpb.CheckReportReq) []byte { + b, err := proto.Marshal(req) + if err != nil { + t.Fatal(err) + } + return b + } + + // bare minimum + validReq := &sharedpb.CheckReportReq{ + Report: &chkpb.CheckReport{}, + } + + for name, tc := range map[string]struct { + mic *control.MockInvokerConfig + reqBytes []byte + expErr error + expResp *sharedpb.CheckReportResp + }{ + "bad payload": { + reqBytes: []byte{'b', 'a', 'd'}, + expErr: drpc.UnmarshalingPayloadFailure(), + }, + "gRPC failure to resp status": { + mic: &control.MockInvokerConfig{ + UnaryError: errors.New("MockInvoker error"), + }, + reqBytes: bytesFromReq(t, validReq), + expResp: &sharedpb.CheckReportResp{ + Status: daos.MiscError.Int32(), + }, + }, + "daos status error in resp": { + mic: &control.MockInvokerConfig{ + UnaryResponse: &control.UnaryResponse{ + Responses: []*control.HostResponse{{ + Message: &sharedpb.CheckReportResp{ + Status: daos.MiscError.Int32(), + }, + }}, + }, + }, + reqBytes: bytesFromReq(t, validReq), + expResp: &sharedpb.CheckReportResp{ + Status: daos.MiscError.Int32(), + }, + }, + "success": { + mic: &control.MockInvokerConfig{ + UnaryResponse: &control.UnaryResponse{ + Responses: []*control.HostResponse{{ + Message: &sharedpb.CheckReportResp{}, + }}, + }, + }, + reqBytes: bytesFromReq(t, validReq), + expResp: &sharedpb.CheckReportResp{}, + }, + } { + t.Run(name, func(t *testing.T) { + ctx := test.MustLogContext(t) + log := logging.FromContext(ctx) + + mod := mockSrvModule(t, log, 1) + if tc.mic != nil { + mod.rpcClient = control.NewMockInvoker(log, tc.mic) + } + + respBytes, err := mod.handleCheckerReport(ctx, tc.reqBytes) + + test.CmpErr(t, tc.expErr, err) + if tc.expErr != nil { + return + } + + resp := new(sharedpb.CheckReportResp) + if err := proto.Unmarshal(respBytes, resp); err != nil { + t.Fatal(err) + } + + test.CmpAny(t, "CheckReportResp", tc.expResp, resp, cmpopts.IgnoreUnexported(sharedpb.CheckReportResp{})) + }) + } +} + +func TestServer_srvModule_chkReportErrToDaosStatus(t *testing.T) { + for name, tc := range map[string]struct { + in error + expResult daos.Status + }{ + "bare daos.Status": { + in: daos.BadPath, + expResult: daos.BadPath, + }, + "wrapped daos.Status": { + in: errors.Wrap(daos.Busy, "a pretty pink bow"), + expResult: daos.Busy, + }, + "retryable connection error": { + in: control.FaultConnectionTimedOut("dontcare"), + expResult: daos.TryAgain, + }, + "permanent connection error": { + in: control.FaultConnectionBadHost("dontcare"), + expResult: daos.Unreachable, + }, + "ErrNotLeader": { + in: &system.ErrNotLeader{}, + expResult: daos.TryAgain, + }, + "ErrNotReplica": { + in: &system.ErrNotReplica{}, + expResult: daos.TryAgain, + }, + "MS connection failure": { + in: errors.Errorf("unable to contact the %s", build.ManagementServiceName), // unexported error from lib/control/system.go + expResult: daos.Unreachable, + }, + "checker not enabled": { + in: checker.FaultCheckerNotEnabled, + expResult: daos.NotApplicable, + }, + "checker not ready": { + in: checker.FaultIncorrectMemberStates(true, "dontcare", "dontcare"), + expResult: daos.NotApplicable, + }, + "generic failure": { + in: errors.New("'Twas brillig and the slithy toves did gyre and gimbel in the wabe"), + expResult: daos.MiscError, + }, + } { + t.Run(name, func(t *testing.T) { + result := chkReportErrToDaosStatus(tc.in) + + test.CmpErr(t, tc.expResult, result) + }) + } +} diff --git a/src/control/server/mgmt_system_test.go b/src/control/server/mgmt_system_test.go index 46e7266af6d..12cc258d92f 100644 --- a/src/control/server/mgmt_system_test.go +++ b/src/control/server/mgmt_system_test.go @@ -1,7 +1,7 @@ // // (C) Copyright 2020-2024 Intel Corporation. // (C) Copyright 2025 Google LLC -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -468,17 +468,18 @@ func mockMember(t *testing.T, r, a int32, s string) *system.Member { t.Helper() state := map[string]system.MemberState{ - "awaitformat": system.MemberStateAwaitFormat, - "errored": system.MemberStateErrored, - "excluded": system.MemberStateExcluded, - "joined": system.MemberStateJoined, - "ready": system.MemberStateReady, - "starting": system.MemberStateStarting, - "stopped": system.MemberStateStopped, - "stopping": system.MemberStateStopping, - "unknown": system.MemberStateUnknown, - "unresponsive": system.MemberStateUnresponsive, - "adminexcluded": system.MemberStateAdminExcluded, + "awaitformat": system.MemberStateAwaitFormat, + "errored": system.MemberStateErrored, + "excluded": system.MemberStateExcluded, + "joined": system.MemberStateJoined, + "ready": system.MemberStateReady, + "starting": system.MemberStateStarting, + "stopped": system.MemberStateStopped, + "stopping": system.MemberStateStopping, + "unknown": system.MemberStateUnknown, + "unresponsive": system.MemberStateUnresponsive, + "adminexcluded": system.MemberStateAdminExcluded, + "checkerstarted": system.MemberStateCheckerStarted, }[s] if state == system.MemberStateUnknown && s != "unknown" { diff --git a/src/engine/SConscript b/src/engine/SConscript index 434ba4b1def..d8bf9f95927 100644 --- a/src/engine/SConscript +++ b/src/engine/SConscript @@ -31,7 +31,7 @@ def scons(): 'drpc_progress.c', 'init.c', 'module.c', 'srv_cli.c', 'profile.c', 'rpc.c', 'server_iv.c', 'srv.c', 'srv.pb-c.c', - 'sched.c', 'ult.c', 'util.c', 'event.pb-c.c', + 'sched.c', 'ult.c', 'util.c', 'event.pb-c.c', 'check_engine.pb-c.c', 'srv_metrics.c'] + libdaos_tgts # Generate I/O Engine program diff --git a/src/engine/check_engine.pb-c.c b/src/engine/check_engine.pb-c.c new file mode 100644 index 00000000000..e5808b77468 --- /dev/null +++ b/src/engine/check_engine.pb-c.c @@ -0,0 +1,175 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: check_engine.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "check_engine.pb-c.h" +void shared__check_report_req__init + (Shared__CheckReportReq *message) +{ + static const Shared__CheckReportReq init_value = SHARED__CHECK_REPORT_REQ__INIT; + *message = init_value; +} +size_t shared__check_report_req__get_packed_size + (const Shared__CheckReportReq *message) +{ + assert(message->base.descriptor == &shared__check_report_req__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t shared__check_report_req__pack + (const Shared__CheckReportReq *message, + uint8_t *out) +{ + assert(message->base.descriptor == &shared__check_report_req__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t shared__check_report_req__pack_to_buffer + (const Shared__CheckReportReq *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &shared__check_report_req__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Shared__CheckReportReq * + shared__check_report_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (Shared__CheckReportReq *) + protobuf_c_message_unpack (&shared__check_report_req__descriptor, + allocator, len, data); +} +void shared__check_report_req__free_unpacked + (Shared__CheckReportReq *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &shared__check_report_req__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void shared__check_report_resp__init + (Shared__CheckReportResp *message) +{ + static const Shared__CheckReportResp init_value = SHARED__CHECK_REPORT_RESP__INIT; + *message = init_value; +} +size_t shared__check_report_resp__get_packed_size + (const Shared__CheckReportResp *message) +{ + assert(message->base.descriptor == &shared__check_report_resp__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t shared__check_report_resp__pack + (const Shared__CheckReportResp *message, + uint8_t *out) +{ + assert(message->base.descriptor == &shared__check_report_resp__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t shared__check_report_resp__pack_to_buffer + (const Shared__CheckReportResp *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &shared__check_report_resp__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Shared__CheckReportResp * + shared__check_report_resp__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (Shared__CheckReportResp *) + protobuf_c_message_unpack (&shared__check_report_resp__descriptor, + allocator, len, data); +} +void shared__check_report_resp__free_unpacked + (Shared__CheckReportResp *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &shared__check_report_resp__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor shared__check_report_req__field_descriptors[1] = +{ + { + "report", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(Shared__CheckReportReq, report), + &chk__check_report__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned shared__check_report_req__field_indices_by_name[] = { + 0, /* field[0] = report */ +}; +static const ProtobufCIntRange shared__check_report_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor shared__check_report_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "shared.CheckReportReq", + "CheckReportReq", + "Shared__CheckReportReq", + "shared", + sizeof(Shared__CheckReportReq), + 1, + shared__check_report_req__field_descriptors, + shared__check_report_req__field_indices_by_name, + 1, shared__check_report_req__number_ranges, + (ProtobufCMessageInit) shared__check_report_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor shared__check_report_resp__field_descriptors[1] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(Shared__CheckReportResp, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned shared__check_report_resp__field_indices_by_name[] = { + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange shared__check_report_resp__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor shared__check_report_resp__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "shared.CheckReportResp", + "CheckReportResp", + "Shared__CheckReportResp", + "shared", + sizeof(Shared__CheckReportResp), + 1, + shared__check_report_resp__field_descriptors, + shared__check_report_resp__field_indices_by_name, + 1, shared__check_report_resp__number_ranges, + (ProtobufCMessageInit) shared__check_report_resp__init, + NULL,NULL,NULL /* reserved[123] */ +}; diff --git a/src/engine/check_engine.pb-c.h b/src/engine/check_engine.pb-c.h new file mode 100644 index 00000000000..e53bc3a7909 --- /dev/null +++ b/src/engine/check_engine.pb-c.h @@ -0,0 +1,112 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: check_engine.proto */ + +#ifndef PROTOBUF_C_check_5fengine_2eproto__INCLUDED +#define PROTOBUF_C_check_5fengine_2eproto__INCLUDED + +#include + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + +#include "chk/chk.pb-c.h" + +typedef struct _Shared__CheckReportReq Shared__CheckReportReq; +typedef struct _Shared__CheckReportResp Shared__CheckReportResp; + + +/* --- enums --- */ + + +/* --- messages --- */ + +struct _Shared__CheckReportReq +{ + ProtobufCMessage base; + /* + * Report payload + */ + Chk__CheckReport *report; +}; +#define SHARED__CHECK_REPORT_REQ__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&shared__check_report_req__descriptor) \ + , NULL } + + +struct _Shared__CheckReportResp +{ + ProtobufCMessage base; + /* + * DAOS error code. + */ + int32_t status; +}; +#define SHARED__CHECK_REPORT_RESP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&shared__check_report_resp__descriptor) \ + , 0 } + + +/* Shared__CheckReportReq methods */ +void shared__check_report_req__init + (Shared__CheckReportReq *message); +size_t shared__check_report_req__get_packed_size + (const Shared__CheckReportReq *message); +size_t shared__check_report_req__pack + (const Shared__CheckReportReq *message, + uint8_t *out); +size_t shared__check_report_req__pack_to_buffer + (const Shared__CheckReportReq *message, + ProtobufCBuffer *buffer); +Shared__CheckReportReq * + shared__check_report_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void shared__check_report_req__free_unpacked + (Shared__CheckReportReq *message, + ProtobufCAllocator *allocator); +/* Shared__CheckReportResp methods */ +void shared__check_report_resp__init + (Shared__CheckReportResp *message); +size_t shared__check_report_resp__get_packed_size + (const Shared__CheckReportResp *message); +size_t shared__check_report_resp__pack + (const Shared__CheckReportResp *message, + uint8_t *out); +size_t shared__check_report_resp__pack_to_buffer + (const Shared__CheckReportResp *message, + ProtobufCBuffer *buffer); +Shared__CheckReportResp * + shared__check_report_resp__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void shared__check_report_resp__free_unpacked + (Shared__CheckReportResp *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*Shared__CheckReportReq_Closure) + (const Shared__CheckReportReq *message, + void *closure_data); +typedef void (*Shared__CheckReportResp_Closure) + (const Shared__CheckReportResp *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCMessageDescriptor shared__check_report_req__descriptor; +extern const ProtobufCMessageDescriptor shared__check_report_resp__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_check_5fengine_2eproto__INCLUDED */ diff --git a/src/engine/drpc_ras.c b/src/engine/drpc_ras.c index fe21a280f36..a85aff67f67 100644 --- a/src/engine/drpc_ras.c +++ b/src/engine/drpc_ras.c @@ -18,6 +18,7 @@ #include "drpc_internal.h" #include "srv_internal.h" #include "srv.pb-c.h" +#include "check_engine.pb-c.h" static void free_event(Shared__RASEvent *evt) @@ -367,6 +368,11 @@ ds_notify_swim_rank_dead(d_rank_t rank, uint64_t incarnation) NULL /* ctlop */, &evt, false /* wait_for_resp */); } +/** + * TODO DAOS-18537: Move all of the checker upcalls into a new file, and transfer their protobuf + * definitions into shared/check_upcall.proto. + * Consider if it would be best to put the checker functionality into a new dRPC module. + */ void ds_chk_free_pool_list(struct chk_list_pool *clp, uint32_t nr) { @@ -573,8 +579,8 @@ int ds_chk_report_upcall(void *rpt) { struct drpc_alloc alloc = PROTO_ALLOCATOR_INIT(alloc); - Srv__CheckReportReq req = SRV__CHECK_REPORT_REQ__INIT; - Srv__CheckReportResp *respb = NULL; + Shared__CheckReportReq req = SHARED__CHECK_REPORT_REQ__INIT; + Shared__CheckReportResp *respb = NULL; Drpc__Response *dresp = NULL; uint8_t *reqb = NULL; size_t size; @@ -583,12 +589,12 @@ ds_chk_report_upcall(void *rpt) D_ASSERT(rpt != NULL); req.report = rpt; - size = srv__check_report_req__get_packed_size(&req); + size = shared__check_report_req__get_packed_size(&req); D_ALLOC(reqb, size); if (reqb == NULL) D_GOTO(out_req, rc = -DER_NOMEM); - rc = srv__check_report_req__pack(&req, reqb); + rc = shared__check_report_req__pack(&req, reqb); if (rc < 0) goto out_req; @@ -601,12 +607,12 @@ ds_chk_report_upcall(void *rpt) D_GOTO(out_dresp, rc = -DER_IO); } - respb = srv__check_report_resp__unpack(&alloc.alloc, dresp->body.len, dresp->body.data); + respb = shared__check_report_resp__unpack(&alloc.alloc, dresp->body.len, dresp->body.data); if (alloc.oom || respb == NULL) D_GOTO(out_dresp, rc = -DER_NOMEM); rc = respb->status; - srv__check_report_resp__free_unpacked(respb, &alloc.alloc); + shared__check_report_resp__free_unpacked(respb, &alloc.alloc); out_dresp: drpc_response_free(dresp); diff --git a/src/engine/srv.pb-c.c b/src/engine/srv.pb-c.c index c7824e9b646..a488492d3fd 100644 --- a/src/engine/srv.pb-c.c +++ b/src/engine/srv.pb-c.c @@ -508,96 +508,6 @@ void srv__check_dereg_pool_resp__free_unpacked assert(message->base.descriptor == &srv__check_dereg_pool_resp__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -void srv__check_report_req__init - (Srv__CheckReportReq *message) -{ - static const Srv__CheckReportReq init_value = SRV__CHECK_REPORT_REQ__INIT; - *message = init_value; -} -size_t srv__check_report_req__get_packed_size - (const Srv__CheckReportReq *message) -{ - assert(message->base.descriptor == &srv__check_report_req__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t srv__check_report_req__pack - (const Srv__CheckReportReq *message, - uint8_t *out) -{ - assert(message->base.descriptor == &srv__check_report_req__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t srv__check_report_req__pack_to_buffer - (const Srv__CheckReportReq *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &srv__check_report_req__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Srv__CheckReportReq * - srv__check_report_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Srv__CheckReportReq *) - protobuf_c_message_unpack (&srv__check_report_req__descriptor, - allocator, len, data); -} -void srv__check_report_req__free_unpacked - (Srv__CheckReportReq *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &srv__check_report_req__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void srv__check_report_resp__init - (Srv__CheckReportResp *message) -{ - static const Srv__CheckReportResp init_value = SRV__CHECK_REPORT_RESP__INIT; - *message = init_value; -} -size_t srv__check_report_resp__get_packed_size - (const Srv__CheckReportResp *message) -{ - assert(message->base.descriptor == &srv__check_report_resp__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t srv__check_report_resp__pack - (const Srv__CheckReportResp *message, - uint8_t *out) -{ - assert(message->base.descriptor == &srv__check_report_resp__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t srv__check_report_resp__pack_to_buffer - (const Srv__CheckReportResp *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &srv__check_report_resp__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Srv__CheckReportResp * - srv__check_report_resp__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Srv__CheckReportResp *) - protobuf_c_message_unpack (&srv__check_report_resp__descriptor, - allocator, len, data); -} -void srv__check_report_resp__free_unpacked - (Srv__CheckReportResp *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &srv__check_report_resp__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} void srv__list_pools_req__init (Srv__ListPoolsReq *message) { @@ -789,7 +699,7 @@ static const ProtobufCFieldDescriptor srv__notify_ready_req__field_descriptors[9 offsetof(Srv__NotifyReadyReq, secondarynctxs), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -897,7 +807,7 @@ static const ProtobufCFieldDescriptor srv__get_pool_svc_resp__field_descriptors[ offsetof(Srv__GetPoolSvcResp, svcreps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -998,7 +908,7 @@ static const ProtobufCFieldDescriptor srv__pool_find_by_label_resp__field_descri offsetof(Srv__PoolFindByLabelResp, svcreps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1080,7 +990,7 @@ static const ProtobufCFieldDescriptor srv__check_list_pool_resp__one_pool__field offsetof(Srv__CheckListPoolResp__OnePool, svcreps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1207,7 +1117,7 @@ static const ProtobufCFieldDescriptor srv__check_reg_pool_req__field_descriptors offsetof(Srv__CheckRegPoolReq, svcreps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1364,82 +1274,6 @@ const ProtobufCMessageDescriptor srv__check_dereg_pool_resp__descriptor = (ProtobufCMessageInit) srv__check_dereg_pool_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor srv__check_report_req__field_descriptors[1] = -{ - { - "report", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, report), - &chk__check_report__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned srv__check_report_req__field_indices_by_name[] = { - 0, /* field[0] = report */ -}; -static const ProtobufCIntRange srv__check_report_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor srv__check_report_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "srv.CheckReportReq", - "CheckReportReq", - "Srv__CheckReportReq", - "srv", - sizeof(Srv__CheckReportReq), - 1, - srv__check_report_req__field_descriptors, - srv__check_report_req__field_indices_by_name, - 1, srv__check_report_req__number_ranges, - (ProtobufCMessageInit) srv__check_report_req__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor srv__check_report_resp__field_descriptors[1] = -{ - { - "status", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportResp, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned srv__check_report_resp__field_indices_by_name[] = { - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange srv__check_report_resp__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor srv__check_report_resp__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "srv.CheckReportResp", - "CheckReportResp", - "Srv__CheckReportResp", - "srv", - sizeof(Srv__CheckReportResp), - 1, - srv__check_report_resp__field_descriptors, - srv__check_report_resp__field_indices_by_name, - 1, srv__check_report_resp__number_ranges, - (ProtobufCMessageInit) srv__check_report_resp__init, - NULL,NULL,NULL /* reserved[123] */ -}; static const ProtobufCFieldDescriptor srv__list_pools_req__field_descriptors[1] = { { @@ -1513,7 +1347,7 @@ static const ProtobufCFieldDescriptor srv__list_pools_resp__pool__field_descript offsetof(Srv__ListPoolsResp__Pool, svcreps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; diff --git a/src/engine/srv.pb-c.h b/src/engine/srv.pb-c.h index 4128883ac00..723673f2d20 100644 --- a/src/engine/srv.pb-c.h +++ b/src/engine/srv.pb-c.h @@ -10,11 +10,10 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1003000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif -#include "chk/chk.pb-c.h" typedef struct _Srv__NotifyReadyReq Srv__NotifyReadyReq; typedef struct _Srv__GetPoolSvcReq Srv__GetPoolSvcReq; @@ -28,8 +27,6 @@ typedef struct _Srv__CheckRegPoolReq Srv__CheckRegPoolReq; typedef struct _Srv__CheckRegPoolResp Srv__CheckRegPoolResp; typedef struct _Srv__CheckDeregPoolReq Srv__CheckDeregPoolReq; typedef struct _Srv__CheckDeregPoolResp Srv__CheckDeregPoolResp; -typedef struct _Srv__CheckReportReq Srv__CheckReportReq; -typedef struct _Srv__CheckReportResp Srv__CheckReportResp; typedef struct _Srv__ListPoolsReq Srv__ListPoolsReq; typedef struct _Srv__ListPoolsResp Srv__ListPoolsResp; typedef struct _Srv__ListPoolsResp__Pool Srv__ListPoolsResp__Pool; @@ -280,32 +277,6 @@ struct _Srv__CheckDeregPoolResp , 0 } -struct _Srv__CheckReportReq -{ - ProtobufCMessage base; - /* - * Report payload - */ - Chk__CheckReport *report; -}; -#define SRV__CHECK_REPORT_REQ__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&srv__check_report_req__descriptor) \ - , NULL } - - -struct _Srv__CheckReportResp -{ - ProtobufCMessage base; - /* - * DAOS error code. - */ - int32_t status; -}; -#define SRV__CHECK_REPORT_RESP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&srv__check_report_resp__descriptor) \ - , 0 } - - struct _Srv__ListPoolsReq { ProtobufCMessage base; @@ -567,44 +538,6 @@ Srv__CheckDeregPoolResp * void srv__check_dereg_pool_resp__free_unpacked (Srv__CheckDeregPoolResp *message, ProtobufCAllocator *allocator); -/* Srv__CheckReportReq methods */ -void srv__check_report_req__init - (Srv__CheckReportReq *message); -size_t srv__check_report_req__get_packed_size - (const Srv__CheckReportReq *message); -size_t srv__check_report_req__pack - (const Srv__CheckReportReq *message, - uint8_t *out); -size_t srv__check_report_req__pack_to_buffer - (const Srv__CheckReportReq *message, - ProtobufCBuffer *buffer); -Srv__CheckReportReq * - srv__check_report_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void srv__check_report_req__free_unpacked - (Srv__CheckReportReq *message, - ProtobufCAllocator *allocator); -/* Srv__CheckReportResp methods */ -void srv__check_report_resp__init - (Srv__CheckReportResp *message); -size_t srv__check_report_resp__get_packed_size - (const Srv__CheckReportResp *message); -size_t srv__check_report_resp__pack - (const Srv__CheckReportResp *message, - uint8_t *out); -size_t srv__check_report_resp__pack_to_buffer - (const Srv__CheckReportResp *message, - ProtobufCBuffer *buffer); -Srv__CheckReportResp * - srv__check_report_resp__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void srv__check_report_resp__free_unpacked - (Srv__CheckReportResp *message, - ProtobufCAllocator *allocator); /* Srv__ListPoolsReq methods */ void srv__list_pools_req__init (Srv__ListPoolsReq *message); @@ -684,12 +617,6 @@ typedef void (*Srv__CheckDeregPoolReq_Closure) typedef void (*Srv__CheckDeregPoolResp_Closure) (const Srv__CheckDeregPoolResp *message, void *closure_data); -typedef void (*Srv__CheckReportReq_Closure) - (const Srv__CheckReportReq *message, - void *closure_data); -typedef void (*Srv__CheckReportResp_Closure) - (const Srv__CheckReportResp *message, - void *closure_data); typedef void (*Srv__ListPoolsReq_Closure) (const Srv__ListPoolsReq *message, void *closure_data); @@ -717,8 +644,6 @@ extern const ProtobufCMessageDescriptor srv__check_reg_pool_req__descriptor; extern const ProtobufCMessageDescriptor srv__check_reg_pool_resp__descriptor; extern const ProtobufCMessageDescriptor srv__check_dereg_pool_req__descriptor; extern const ProtobufCMessageDescriptor srv__check_dereg_pool_resp__descriptor; -extern const ProtobufCMessageDescriptor srv__check_report_req__descriptor; -extern const ProtobufCMessageDescriptor srv__check_report_resp__descriptor; extern const ProtobufCMessageDescriptor srv__list_pools_req__descriptor; extern const ProtobufCMessageDescriptor srv__list_pools_resp__descriptor; extern const ProtobufCMessageDescriptor srv__list_pools_resp__pool__descriptor; diff --git a/src/engine/tests/SConscript b/src/engine/tests/SConscript index fcbcfc3384e..647c0048774 100644 --- a/src/engine/tests/SConscript +++ b/src/engine/tests/SConscript @@ -42,7 +42,7 @@ def scons(): unit_env.d_test_program('drpc_client_tests', ['drpc_client_tests.c', drpc_test_utils, '../drpc_client.c', '../drpc_ras.c', '../srv.pb-c.c', '../event.pb-c.c', - '../../chk/chk.pb-c.c', mock_abt], + '../check_engine.pb-c.c', '../../chk/chk.pb-c.c', mock_abt], LIBS=['daos_common', 'protobuf-c', 'gurt', 'cmocka', 'uuid', 'pthread', 'cart']) diff --git a/src/mgmt/check.pb-c.c b/src/mgmt/check.pb-c.c index c7e3eba1b64..6b83720802d 100644 --- a/src/mgmt/check.pb-c.c +++ b/src/mgmt/check.pb-c.c @@ -1,12 +1,12 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: mgmt/check.proto */ +/* Generated from: check.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED #define PROTOBUF_C__NO_DEPRECATED #endif -#include "mgmt/check.pb-c.h" +#include "check.pb-c.h" void mgmt__check_inconsist_policy__init (Mgmt__CheckInconsistPolicy *message) { @@ -1069,7 +1069,7 @@ static const ProtobufCFieldDescriptor mgmt__check_start_req__field_descriptors[5 offsetof(Mgmt__CheckStartReq, ranks), NULL, NULL, - PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1298,7 +1298,7 @@ static const ProtobufCFieldDescriptor mgmt__check_query_req__field_descriptors[4 offsetof(Mgmt__CheckQueryReq, seqs), NULL, NULL, - PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1649,7 +1649,7 @@ const ProtobufCMessageDescriptor mgmt__check_query_pool__descriptor = (ProtobufCMessageInit) mgmt__check_query_pool__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[7] = +static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[8] = { { "req_status", @@ -1735,11 +1735,24 @@ static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[ 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "leader", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__CheckQueryResp, leader), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__check_query_resp__field_indices_by_name[] = { 3, /* field[3] = inconsistency */ 2, /* field[2] = ins_phase */ 1, /* field[1] = ins_status */ + 7, /* field[7] = leader */ 5, /* field[5] = pools */ 6, /* field[6] = reports */ 0, /* field[0] = req_status */ @@ -1748,7 +1761,7 @@ static const unsigned mgmt__check_query_resp__field_indices_by_name[] = { static const ProtobufCIntRange mgmt__check_query_resp__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 7 } + { 0, 8 } }; const ProtobufCMessageDescriptor mgmt__check_query_resp__descriptor = { @@ -1758,7 +1771,7 @@ const ProtobufCMessageDescriptor mgmt__check_query_resp__descriptor = "Mgmt__CheckQueryResp", "mgmt", sizeof(Mgmt__CheckQueryResp), - 7, + 8, mgmt__check_query_resp__field_descriptors, mgmt__check_query_resp__field_indices_by_name, 1, mgmt__check_query_resp__number_ranges, @@ -1954,7 +1967,7 @@ static const ProtobufCFieldDescriptor mgmt__check_get_policy_req__field_descript offsetof(Mgmt__CheckGetPolicyReq, classes), &chk__check_inconsist_class__descriptor, NULL, - PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { diff --git a/src/mgmt/check.pb-c.h b/src/mgmt/check.pb-c.h index 212de6a2058..46b619d5769 100644 --- a/src/mgmt/check.pb-c.h +++ b/src/mgmt/check.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: mgmt/check.proto */ +/* Generated from: check.proto */ -#ifndef PROTOBUF_C_mgmt_2fcheck_2eproto__INCLUDED -#define PROTOBUF_C_mgmt_2fcheck_2eproto__INCLUDED +#ifndef PROTOBUF_C_check_2eproto__INCLUDED +#define PROTOBUF_C_check_2eproto__INCLUDED #include @@ -10,32 +10,32 @@ PROTOBUF_C__BEGIN_DECLS #if PROTOBUF_C_VERSION_NUMBER < 1003000 # error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1005000 < PROTOBUF_C_MIN_COMPILER_VERSION +#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION # error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. #endif #include "chk/chk.pb-c.h" -typedef struct Mgmt__CheckInconsistPolicy Mgmt__CheckInconsistPolicy; -typedef struct Mgmt__CheckEnableReq Mgmt__CheckEnableReq; -typedef struct Mgmt__CheckDisableReq Mgmt__CheckDisableReq; -typedef struct Mgmt__CheckStartReq Mgmt__CheckStartReq; -typedef struct Mgmt__CheckStartResp Mgmt__CheckStartResp; -typedef struct Mgmt__CheckStopReq Mgmt__CheckStopReq; -typedef struct Mgmt__CheckStopResp Mgmt__CheckStopResp; -typedef struct Mgmt__CheckQueryReq Mgmt__CheckQueryReq; -typedef struct Mgmt__CheckQueryTime Mgmt__CheckQueryTime; -typedef struct Mgmt__CheckQueryInconsist Mgmt__CheckQueryInconsist; -typedef struct Mgmt__CheckQueryTarget Mgmt__CheckQueryTarget; -typedef struct Mgmt__CheckQueryPool Mgmt__CheckQueryPool; -typedef struct Mgmt__CheckQueryResp Mgmt__CheckQueryResp; -typedef struct Mgmt__CheckSetPolicyReq Mgmt__CheckSetPolicyReq; -typedef struct Mgmt__CheckPropReq Mgmt__CheckPropReq; -typedef struct Mgmt__CheckPropResp Mgmt__CheckPropResp; -typedef struct Mgmt__CheckGetPolicyReq Mgmt__CheckGetPolicyReq; -typedef struct Mgmt__CheckGetPolicyResp Mgmt__CheckGetPolicyResp; -typedef struct Mgmt__CheckActReq Mgmt__CheckActReq; -typedef struct Mgmt__CheckActResp Mgmt__CheckActResp; +typedef struct _Mgmt__CheckInconsistPolicy Mgmt__CheckInconsistPolicy; +typedef struct _Mgmt__CheckEnableReq Mgmt__CheckEnableReq; +typedef struct _Mgmt__CheckDisableReq Mgmt__CheckDisableReq; +typedef struct _Mgmt__CheckStartReq Mgmt__CheckStartReq; +typedef struct _Mgmt__CheckStartResp Mgmt__CheckStartResp; +typedef struct _Mgmt__CheckStopReq Mgmt__CheckStopReq; +typedef struct _Mgmt__CheckStopResp Mgmt__CheckStopResp; +typedef struct _Mgmt__CheckQueryReq Mgmt__CheckQueryReq; +typedef struct _Mgmt__CheckQueryTime Mgmt__CheckQueryTime; +typedef struct _Mgmt__CheckQueryInconsist Mgmt__CheckQueryInconsist; +typedef struct _Mgmt__CheckQueryTarget Mgmt__CheckQueryTarget; +typedef struct _Mgmt__CheckQueryPool Mgmt__CheckQueryPool; +typedef struct _Mgmt__CheckQueryResp Mgmt__CheckQueryResp; +typedef struct _Mgmt__CheckSetPolicyReq Mgmt__CheckSetPolicyReq; +typedef struct _Mgmt__CheckPropReq Mgmt__CheckPropReq; +typedef struct _Mgmt__CheckPropResp Mgmt__CheckPropResp; +typedef struct _Mgmt__CheckGetPolicyReq Mgmt__CheckGetPolicyReq; +typedef struct _Mgmt__CheckGetPolicyResp Mgmt__CheckGetPolicyResp; +typedef struct _Mgmt__CheckActReq Mgmt__CheckActReq; +typedef struct _Mgmt__CheckActResp Mgmt__CheckActResp; /* --- enums --- */ @@ -50,7 +50,7 @@ typedef struct Mgmt__CheckActResp Mgmt__CheckActResp; * to DAOS engine when start check and cannot changed during check scanning, but can be list * via 'dmg check prop' - see CheckPropResp. */ -struct Mgmt__CheckInconsistPolicy +struct _Mgmt__CheckInconsistPolicy { ProtobufCMessage base; /* @@ -67,7 +67,7 @@ struct Mgmt__CheckInconsistPolicy , CHK__CHECK_INCONSIST_CLASS__CIC_NONE, CHK__CHECK_INCONSIST_ACTION__CIA_DEFAULT } -struct Mgmt__CheckEnableReq +struct _Mgmt__CheckEnableReq { ProtobufCMessage base; char *sys; @@ -77,7 +77,7 @@ struct Mgmt__CheckEnableReq , (char *)protobuf_c_empty_string } -struct Mgmt__CheckDisableReq +struct _Mgmt__CheckDisableReq { ProtobufCMessage base; char *sys; @@ -90,7 +90,7 @@ struct Mgmt__CheckDisableReq /* * For 'dmg check start'. */ -struct Mgmt__CheckStartReq +struct _Mgmt__CheckStartReq { ProtobufCMessage base; /* @@ -130,7 +130,7 @@ struct Mgmt__CheckStartReq /* * CheckStartResp returns the result of check start. */ -struct Mgmt__CheckStartResp +struct _Mgmt__CheckStartResp { ProtobufCMessage base; /* @@ -146,7 +146,7 @@ struct Mgmt__CheckStartResp /* * For 'dmg check stop'. */ -struct Mgmt__CheckStopReq +struct _Mgmt__CheckStopReq { ProtobufCMessage base; /* @@ -168,7 +168,7 @@ struct Mgmt__CheckStopReq /* * CheckStopResp returns the result of check stop. */ -struct Mgmt__CheckStopResp +struct _Mgmt__CheckStopResp { ProtobufCMessage base; /* @@ -184,7 +184,7 @@ struct Mgmt__CheckStopResp /* * For 'dmg check query'. */ -struct Mgmt__CheckQueryReq +struct _Mgmt__CheckQueryReq { ProtobufCMessage base; /* @@ -215,7 +215,7 @@ struct Mgmt__CheckQueryReq /* * Time information on related component: system, pool or target. */ -struct Mgmt__CheckQueryTime +struct _Mgmt__CheckQueryTime { ProtobufCMessage base; /* @@ -237,7 +237,7 @@ struct Mgmt__CheckQueryTime /* * Inconsistency statistics on related component: system, pool or target. */ -struct Mgmt__CheckQueryInconsist +struct _Mgmt__CheckQueryInconsist { ProtobufCMessage base; /* @@ -265,7 +265,7 @@ struct Mgmt__CheckQueryInconsist /* * Check query result for the pool shard on the target. */ -struct Mgmt__CheckQueryTarget +struct _Mgmt__CheckQueryTarget { ProtobufCMessage base; /* @@ -298,7 +298,7 @@ struct Mgmt__CheckQueryTarget /* * Check query result for the pool. */ -struct Mgmt__CheckQueryPool +struct _Mgmt__CheckQueryPool { ProtobufCMessage base; /* @@ -338,7 +338,7 @@ struct Mgmt__CheckQueryPool * Depend on the dmg command line option, the control plane needs to reorganize the query * results with summary (of pool shards from targets) and different detailed information. */ -struct Mgmt__CheckQueryResp +struct _Mgmt__CheckQueryResp { ProtobufCMessage base; /* @@ -378,16 +378,20 @@ struct Mgmt__CheckQueryResp */ size_t n_reports; Chk__CheckReport **reports; + /* + * Check leader rank + */ + uint32_t leader; }; #define MGMT__CHECK_QUERY_RESP__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_query_resp__descriptor) \ - , 0, CHK__CHECK_INST_STATUS__CIS_INIT, CHK__CHECK_SCAN_PHASE__CSP_PREPARE, NULL, NULL, 0,NULL, 0,NULL } + , 0, CHK__CHECK_INST_STATUS__CIS_INIT, CHK__CHECK_SCAN_PHASE__CSP_PREPARE, NULL, NULL, 0,NULL, 0,NULL, 0 } /* * For 'dmg check set-policy' */ -struct Mgmt__CheckSetPolicyReq +struct _Mgmt__CheckSetPolicyReq { ProtobufCMessage base; /* @@ -412,7 +416,7 @@ struct Mgmt__CheckSetPolicyReq /* * To allow daos_server to query check leader properties */ -struct Mgmt__CheckPropReq +struct _Mgmt__CheckPropReq { ProtobufCMessage base; /* @@ -428,7 +432,7 @@ struct Mgmt__CheckPropReq /* * CheckPropResp returns the result of check prop and the properties when start check. */ -struct Mgmt__CheckPropResp +struct _Mgmt__CheckPropResp { ProtobufCMessage base; /* @@ -453,7 +457,7 @@ struct Mgmt__CheckPropResp /* * For 'dmg check get-policy' */ -struct Mgmt__CheckGetPolicyReq +struct _Mgmt__CheckGetPolicyReq { ProtobufCMessage base; /* @@ -473,7 +477,7 @@ struct Mgmt__CheckGetPolicyReq * CheckGetPolicyResp returns the result of check prop and the properties when start check. * NB: Dupe of CheckPropResp currently; may consolidate if they don't diverge. */ -struct Mgmt__CheckGetPolicyResp +struct _Mgmt__CheckGetPolicyResp { ProtobufCMessage base; /* @@ -498,7 +502,7 @@ struct Mgmt__CheckGetPolicyResp /* * For the admin's decision from DAOS check interaction. */ -struct Mgmt__CheckActReq +struct _Mgmt__CheckActReq { ProtobufCMessage base; /* @@ -522,7 +526,7 @@ struct Mgmt__CheckActReq /* * CheckActResp returns the result of executing admin's decision. */ -struct Mgmt__CheckActResp +struct _Mgmt__CheckActResp { ProtobufCMessage base; /* @@ -1007,4 +1011,4 @@ extern const ProtobufCMessageDescriptor mgmt__check_act_resp__descriptor; PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_mgmt_2fcheck_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_check_2eproto__INCLUDED */ diff --git a/src/mgmt/svc.pb-c.c b/src/mgmt/svc.pb-c.c index 897a9371bb4..a64dd758fd1 100644 --- a/src/mgmt/svc.pb-c.c +++ b/src/mgmt/svc.pb-c.c @@ -2586,15 +2586,23 @@ const ProtobufCMessageDescriptor mgmt__client_telemetry_resp__descriptor = (ProtobufCMessageInit) mgmt__client_telemetry_resp__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor mgmt__get_group_status_req__field_descriptors[1] = { - { - "map_version", 1, PROTOBUF_C_LABEL_NONE, PROTOBUF_C_TYPE_UINT32, 0, /* quantifier_offset */ - offsetof(Mgmt__GetGroupStatusReq, map_version), NULL, NULL, 0, /* flags */ - 0, NULL, NULL /* reserved1,reserved2, etc */ - }, +static const ProtobufCFieldDescriptor mgmt__get_group_status_req__field_descriptors[1] = +{ + { + "map_version", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Mgmt__GetGroupStatusReq, map_version), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned mgmt__get_group_status_req__field_indices_by_name[] = { - 0, /* field[0] = map_version */ + 0, /* field[0] = map_version */ }; static const ProtobufCIntRange mgmt__get_group_status_req__number_ranges[1 + 1] = { diff --git a/src/mgmt/svc.pb-c.h b/src/mgmt/svc.pb-c.h index 2cb10d602a1..de1011b2c0a 100644 --- a/src/mgmt/svc.pb-c.h +++ b/src/mgmt/svc.pb-c.h @@ -539,7 +539,7 @@ struct _Mgmt__GetGroupStatusReq /* * System map version */ - uint32_t map_version; + uint32_t map_version; }; #define MGMT__GET_GROUP_STATUS_REQ__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__get_group_status_req__descriptor) \ diff --git a/src/proto/Makefile b/src/proto/Makefile index 8cae64b1719..519dfe2d819 100644 --- a/src/proto/Makefile +++ b/src/proto/Makefile @@ -8,6 +8,7 @@ DAOS_ROOT ?= $(shell git rev-parse --show-toplevel) C_HEADER_FILES = include/daos/drpc.pb-c.h\ engine/srv.pb-c.h\ engine/event.pb-c.h\ + engine/check_engine.pb-c.h\ mgmt/acl.pb-c.h\ mgmt/cont.pb-c.h\ mgmt/pool.pb-c.h\ @@ -24,6 +25,7 @@ C_HEADER_FILES = include/daos/drpc.pb-c.h\ C_SOURCE_FILES = common/drpc.pb-c.c\ engine/srv.pb-c.c\ engine/event.pb-c.c\ + engine/check_engine.pb-c.c\ mgmt/acl.pb-c.c\ mgmt/cont.pb-c.c\ mgmt/pool.pb-c.c\ @@ -39,6 +41,7 @@ C_SOURCE_FILES = common/drpc.pb-c.c\ tests/drpc/drpc_test.pb-c.c GO_CONTROL_FILES = common/proto/shared/ranks.pb.go\ common/proto/shared/event.pb.go\ + common/proto/shared/check_engine.pb.go\ common/proto/mgmt/acl.pb.go\ common/proto/mgmt/cont.pb.go\ common/proto/mgmt/check.pb.go\ @@ -57,6 +60,7 @@ GO_CONTROL_FILES = common/proto/shared/ranks.pb.go\ common/proto/ctl/support.pb.go\ common/proto/ctl/firmware.pb.go\ common/proto/ctl/ranks.pb.go\ + common/proto/ctl/check.pb.go\ common/proto/chk/chk.pb.go\ common/proto/chk/faults.pb.go\ common/proto/srv/srv.pb.go\ @@ -163,6 +167,12 @@ $(DAOS_ROOT)/src/engine/event.pb-c.h: $(PROTO_SOURCE_DIR)/shared/event.proto $(DAOS_ROOT)/src/engine/event.pb-c.c: $(PROTO_SOURCE_DIR)/shared/event.proto protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) +$(DAOS_ROOT)/src/engine/check_engine.pb-c.h: $(PROTO_SOURCE_DIR)/shared/check_engine.proto + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) + +$(DAOS_ROOT)/src/engine/check_engine.pb-c.c: $(PROTO_SOURCE_DIR)/shared/check_engine.proto + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) + $(DAOS_ROOT)/src/engine/%.pb-c.h: $(PROTO_SOURCE_DIR)/srv/%.proto protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) diff --git a/src/proto/ctl/check.proto b/src/proto/ctl/check.proto new file mode 100644 index 00000000000..fe78190515b --- /dev/null +++ b/src/proto/ctl/check.proto @@ -0,0 +1,27 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// This file defines check engine-related messages. + +syntax = "proto3"; +package ctl; + +option go_package = "github.com/daos-stack/daos/src/control/common/proto/ctl"; + +import "mgmt/check.proto"; + +// Send an action request to a specific check engine. +message CheckEngineActReq +{ + uint32 rank = 1; + mgmt.CheckActReq req = 2; +} + +message CheckEngineActResp +{ + uint32 rank = 1; + mgmt.CheckActResp resp = 2; +} diff --git a/src/proto/ctl/ctl.proto b/src/proto/ctl/ctl.proto index 6bc2e3180b2..fbc44b9cf39 100644 --- a/src/proto/ctl/ctl.proto +++ b/src/proto/ctl/ctl.proto @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2023 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -16,6 +17,7 @@ import "ctl/smd.proto"; import "ctl/ranks.proto"; import "ctl/server.proto"; import "ctl/support.proto"; +import "ctl/check.proto"; // Service definitions for communications between gRPC management server and // client regarding tasks related to DAOS system and server hardware. @@ -53,4 +55,6 @@ service CtlSvc { rpc StartRanks(RanksReq) returns (RanksResp) {} // Perform a Log collection on Servers for support/debug purpose rpc CollectLog (CollectLogReq) returns (CollectLogResp) {}; + // Send the desired action to repair an inconsistency on a given engine. + rpc CheckEngineRepair(CheckEngineActReq) returns (CheckEngineActResp) {} } diff --git a/src/proto/mgmt/check.proto b/src/proto/mgmt/check.proto index 5b7e4a00246..d1706bf2b74 100644 --- a/src/proto/mgmt/check.proto +++ b/src/proto/mgmt/check.proto @@ -1,6 +1,6 @@ // // (C) Copyright 2022-2023 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -146,6 +146,8 @@ message CheckQueryResp { repeated CheckQueryPool pools = 6; // Inconsistency reports to be displayed repeated chk.CheckReport reports = 7; + // Check leader rank + uint32 leader = 8; } // For 'dmg check set-policy' diff --git a/src/proto/mgmt/mgmt.proto b/src/proto/mgmt/mgmt.proto index 98b240b4524..c49a943cbcd 100644 --- a/src/proto/mgmt/mgmt.proto +++ b/src/proto/mgmt/mgmt.proto @@ -1,6 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. -// (C) Copyright 2025 Hewlett Packard Enterprise Development LP +// (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -11,6 +11,7 @@ package mgmt; option go_package = "github.com/daos-stack/daos/src/control/common/proto/mgmt"; import "shared/event.proto"; +import "shared/check_engine.proto"; import "mgmt/pool.proto"; import "mgmt/check.proto"; import "mgmt/cont.proto"; @@ -114,6 +115,8 @@ service MgmtSvc { rpc SystemCheckGetPolicy(CheckGetPolicyReq) returns (CheckGetPolicyResp) {} // Send the desired action to repair an inconsistency. rpc SystemCheckRepair(CheckActReq) returns (CheckActResp) {} + // Report on checker results for an individual rank. + rpc SystemCheckEngineReport(shared.CheckReportReq) returns (shared.CheckReportResp) {} // Set a system attribute or attributes. rpc SystemSetAttr(SystemSetAttrReq) returns (DaosResp) {} // Get a system attribute or attributes. diff --git a/src/proto/shared/check_engine.proto b/src/proto/shared/check_engine.proto new file mode 100644 index 00000000000..df3895a1f08 --- /dev/null +++ b/src/proto/shared/check_engine.proto @@ -0,0 +1,23 @@ +// +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// This file defines check engine related protobuf messages communicated over dRPC +// and gRPC. + +syntax = "proto3"; +package shared; + +option go_package = "github.com/daos-stack/daos/src/control/common/proto/shared"; + +import "chk/chk.proto"; + +message CheckReportReq { + chk.CheckReport report = 1; // Report payload +} + +message CheckReportResp { + int32 status = 1; // DAOS error code. +} diff --git a/src/proto/srv/srv.proto b/src/proto/srv/srv.proto index 1e00658d5a8..4cc94ef6846 100644 --- a/src/proto/srv/srv.proto +++ b/src/proto/srv/srv.proto @@ -1,5 +1,6 @@ // // (C) Copyright 2019-2024 Intel Corporation. +// (C) Copyright 2026 Hewlett Packard Enterprise Development LP // // SPDX-License-Identifier: BSD-2-Clause-Patent // @@ -11,8 +12,6 @@ package srv; option go_package = "github.com/daos-stack/daos/src/control/common/proto/srv"; -import "chk/chk.proto"; - message NotifyReadyReq { string uri = 1; // Primary CaRT URI uint32 nctxs = 2; // Number of primary CaRT contexts @@ -82,14 +81,6 @@ message CheckDeregPoolResp { int32 status = 1; // DAOS error code. } -message CheckReportReq { - chk.CheckReport report = 1; // Report payload -} - -message CheckReportResp { - int32 status = 1; // DAOS error code. -} - message ListPoolsReq { bool include_all = 1; // Include all pools in response, regardless of state