From a81b51d3cee9e9de5049a6e37dab6e30e7567f2a Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Wed, 6 Apr 2022 19:45:29 +0000 Subject: [PATCH] DAOS-9590 chk: Refactor checker messages * Move CheckReport to chk package - Separate report request from payload - Add Actions and Details lists to allow the checker to specify defined actions that could be taken in response to the inconsistency report. - Rename chk/check -> chk/chk to ensure unique namespaces. * Adjust srv/mgmt messages to use chk types directly Signed-off-by: Michael MacDonald --- src/chk/SConscript | 5 +- src/chk/{check.pb-c.c => chk.pb-c.c} | 269 ++++++- src/chk/{check.pb-c.h => chk.pb-c.h} | 113 ++- src/chk/chk_common.c | 2 +- src/chk/chk_internal.h | 2 +- src/chk/chk_srv.c | 2 +- src/control/common/proto/chk/check.pb.go | 689 ----------------- src/control/common/proto/chk/chk.pb.go | 903 ++++++++++++++++++++++ src/control/common/proto/mgmt/check.pb.go | 358 +++++---- src/control/common/proto/srv/srv.pb.go | 309 +++----- src/engine/SConscript | 1 + src/engine/srv.pb-c.c | 185 +---- src/engine/srv.pb-c.h | 68 +- src/engine/tests/SConscript | 2 +- src/mgmt/SConscript | 6 +- src/mgmt/check.pb-c.c | 51 +- src/mgmt/check.pb-c.h | 96 +-- src/mgmt/pool.pb-c.c | 52 +- src/proto/Makefile | 14 +- src/proto/chk/{check.proto => chk.proto} | 25 + src/proto/mgmt/check.proto | 20 +- src/proto/srv/srv.proto | 24 +- 22 files changed, 1749 insertions(+), 1447 deletions(-) rename src/chk/{check.pb-c.c => chk.pb-c.c} (59%) rename src/chk/{check.pb-c.h => chk.pb-c.h} (75%) delete mode 100644 src/control/common/proto/chk/check.pb.go create mode 100644 src/control/common/proto/chk/chk.pb.go rename src/proto/chk/{check.proto => chk.proto} (81%) diff --git a/src/chk/SConscript b/src/chk/SConscript index 0dc61ec0bcb..7b2d52845a2 100644 --- a/src/chk/SConscript +++ b/src/chk/SConscript @@ -15,10 +15,13 @@ def scons(): prereqs.require(denv, 'argobots', 'protobufc') # chk + chk_pb = denv.SharedObject(['chk.pb-c.c']) chk = daos_build.library(denv, 'chk', - ['check.pb-c.c', 'chk_srv.c', 'chk_common.c'], + [chk_pb, 'chk_srv.c', 'chk_common.c'], install_off="../..") denv.Install('$PREFIX/lib64/daos_srv', chk) + Export('chk_pb') + if __name__ == "SCons.Script": scons() diff --git a/src/chk/check.pb-c.c b/src/chk/chk.pb-c.c similarity index 59% rename from src/chk/check.pb-c.c rename to src/chk/chk.pb-c.c index d55f67ee635..f55d0bdf519 100644 --- a/src/chk/check.pb-c.c +++ b/src/chk/chk.pb-c.c @@ -1,12 +1,277 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: check.proto */ +/* Generated from: chk.proto */ /* Do not generate deprecated warnings for self */ #ifndef PROTOBUF_C__NO_DEPRECATED #define PROTOBUF_C__NO_DEPRECATED #endif -#include "check.pb-c.h" +#include "chk.pb-c.h" +void chk__check_report__init + (Chk__CheckReport *message) +{ + static const Chk__CheckReport init_value = CHK__CHECK_REPORT__INIT; + *message = init_value; +} +size_t chk__check_report__get_packed_size + (const Chk__CheckReport *message) +{ + assert(message->base.descriptor == &chk__check_report__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t chk__check_report__pack + (const Chk__CheckReport *message, + uint8_t *out) +{ + assert(message->base.descriptor == &chk__check_report__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t chk__check_report__pack_to_buffer + (const Chk__CheckReport *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &chk__check_report__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Chk__CheckReport * + chk__check_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (Chk__CheckReport *) + protobuf_c_message_unpack (&chk__check_report__descriptor, + allocator, len, data); +} +void chk__check_report__free_unpacked + (Chk__CheckReport *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &chk__check_report__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor chk__check_report__field_descriptors[15] = +{ + { + "seq", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, seq), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "class", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, class_), + &chk__check_inconsist_class__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "action", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, action), + &chk__check_inconsist_action__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "repaired", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, repaired), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rank", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, rank), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "target", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, target), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pool_uuid", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, pool_uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cont_uuid", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, cont_uuid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "objid", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, objid), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dkey", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, dkey), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "akey", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, akey), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "timestamp", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, timestamp), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "msg", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ + offsetof(Chk__CheckReport, msg), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "actions", + 14, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_ENUM, + offsetof(Chk__CheckReport, n_actions), + offsetof(Chk__CheckReport, actions), + &chk__check_inconsist_action__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "details", + 15, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_STRING, + offsetof(Chk__CheckReport, n_details), + offsetof(Chk__CheckReport, details), + NULL, + &protobuf_c_empty_string, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned chk__check_report__field_indices_by_name[] = { + 2, /* field[2] = action */ + 13, /* field[13] = actions */ + 10, /* field[10] = akey */ + 1, /* field[1] = class */ + 7, /* field[7] = cont_uuid */ + 14, /* field[14] = details */ + 9, /* field[9] = dkey */ + 12, /* field[12] = msg */ + 8, /* field[8] = objid */ + 6, /* field[6] = pool_uuid */ + 4, /* field[4] = rank */ + 3, /* field[3] = repaired */ + 0, /* field[0] = seq */ + 5, /* field[5] = target */ + 11, /* field[11] = timestamp */ +}; +static const ProtobufCIntRange chk__check_report__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 15 } +}; +const ProtobufCMessageDescriptor chk__check_report__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "chk.CheckReport", + "CheckReport", + "Chk__CheckReport", + "chk", + sizeof(Chk__CheckReport), + 15, + chk__check_report__field_descriptors, + chk__check_report__field_indices_by_name, + 1, chk__check_report__number_ranges, + (ProtobufCMessageInit) chk__check_report__init, + NULL,NULL,NULL /* reserved[123] */ +}; static const ProtobufCEnumValue chk__check_inconsist_class__enum_values_by_number[22] = { { "CIC_NONE", "CHK__CHECK_INCONSIST_CLASS__CIC_NONE", 0 }, diff --git a/src/chk/check.pb-c.h b/src/chk/chk.pb-c.h similarity index 75% rename from src/chk/check.pb-c.h rename to src/chk/chk.pb-c.h index 6e40d3eabd0..b297c339762 100644 --- a/src/chk/check.pb-c.h +++ b/src/chk/chk.pb-c.h @@ -1,8 +1,8 @@ /* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: check.proto */ +/* Generated from: chk.proto */ -#ifndef PROTOBUF_C_check_2eproto__INCLUDED -#define PROTOBUF_C_check_2eproto__INCLUDED +#ifndef PROTOBUF_C_chk_2eproto__INCLUDED +#define PROTOBUF_C_chk_2eproto__INCLUDED #include @@ -10,11 +10,12 @@ 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 1004000 < 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 +typedef struct _Chk__CheckReport Chk__CheckReport; /* --- enums --- */ @@ -341,8 +342,109 @@ typedef enum _Chk__CheckScanPhase { /* --- messages --- */ +/* + * DAOS check engine reports the found inconsistency and repair result to control plane. + * If the repair action is CIA_INTERACT, then the control plane will reply current dRPC + * firstly, and then interact with the admin for the repair decision in another section + * and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. + * If the CheckReport::msg is not enough to help admin to make the decision, then we + * may have to leverage DAOS debug tools to dump more information from related target. + */ +struct _Chk__CheckReport +{ + ProtobufCMessage base; + /* + * DAOS Check event sequence, unique for the instance. + */ + uint64_t seq; + /* + * Inconsistency class + */ + Chk__CheckInconsistClass class_; + /* + * The action taken to repair the inconsistency + */ + Chk__CheckInconsistAction action; + /* + * Repaired or not, meaningless if the action is CIA_INTERACT. + */ + protobuf_c_boolean repaired; + /* + * Inconsistency happened on which rank if applicable. + */ + uint32_t rank; + /* + * Inconsistency happened on which target in the rank if applicable. + */ + uint32_t target; + /* + * The consistency is in which pool if applicable. + */ + char *pool_uuid; + /* + * The consistency is in which container if applicable. + */ + char *cont_uuid; + /* + * The consistency is in which object if applicable. + */ + char *objid; + /* + * The consistency is in which dkey if applicable. + */ + char *dkey; + /* + * The consistency is in which akey if applicable. + */ + char *akey; + /* + * The time of report (and repair) the inconsistency. + */ + char *timestamp; + /* + * Information to describe the inconsistency in detail. + */ + char *msg; + /* + * Potential actions to be made in interaction mode. + */ + size_t n_actions; + Chk__CheckInconsistAction *actions; + /* + * Details for each potential action (length should match actions) + */ + size_t n_details; + char **details; +}; +#define CHK__CHECK_REPORT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&chk__check_report__descriptor) \ + , 0, CHK__CHECK_INCONSIST_CLASS__CIC_NONE, CHK__CHECK_INCONSIST_ACTION__CIA_DEFAULT, 0, 0, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL, 0,NULL } + + +/* Chk__CheckReport methods */ +void chk__check_report__init + (Chk__CheckReport *message); +size_t chk__check_report__get_packed_size + (const Chk__CheckReport *message); +size_t chk__check_report__pack + (const Chk__CheckReport *message, + uint8_t *out); +size_t chk__check_report__pack_to_buffer + (const Chk__CheckReport *message, + ProtobufCBuffer *buffer); +Chk__CheckReport * + chk__check_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void chk__check_report__free_unpacked + (Chk__CheckReport *message, + ProtobufCAllocator *allocator); /* --- per-message closures --- */ +typedef void (*Chk__CheckReport_Closure) + (const Chk__CheckReport *message, + void *closure_data); /* --- services --- */ @@ -355,8 +457,9 @@ extern const ProtobufCEnumDescriptor chk__check_flag__descriptor; extern const ProtobufCEnumDescriptor chk__check_inst_status__descriptor; extern const ProtobufCEnumDescriptor chk__check_pool_status__descriptor; extern const ProtobufCEnumDescriptor chk__check_scan_phase__descriptor; +extern const ProtobufCMessageDescriptor chk__check_report__descriptor; PROTOBUF_C__END_DECLS -#endif /* PROTOBUF_C_check_2eproto__INCLUDED */ +#endif /* PROTOBUF_C_chk_2eproto__INCLUDED */ diff --git a/src/chk/chk_common.c b/src/chk/chk_common.c index 2fa4d8692d5..d75248fead8 100644 --- a/src/chk/chk_common.c +++ b/src/chk/chk_common.c @@ -8,7 +8,7 @@ #include -#include "check.pb-c.h" +#include "chk.pb-c.h" #include "chk_internal.h" int diff --git a/src/chk/chk_internal.h b/src/chk/chk_internal.h index e530ac29aac..b07d235ffd8 100644 --- a/src/chk/chk_internal.h +++ b/src/chk/chk_internal.h @@ -14,7 +14,7 @@ #include #include -#include "check.pb-c.h" +#include "chk.pb-c.h" /* * RPC operation codes diff --git a/src/chk/chk_srv.c b/src/chk/chk_srv.c index 6845781af90..2a65171245a 100644 --- a/src/chk/chk_srv.c +++ b/src/chk/chk_srv.c @@ -10,7 +10,7 @@ #include #include -#include "check.pb-c.h" +#include "chk.pb-c.h" #include "chk_internal.h" static bool diff --git a/src/control/common/proto/chk/check.pb.go b/src/control/common/proto/chk/check.pb.go deleted file mode 100644 index dc6009694b9..00000000000 --- a/src/control/common/proto/chk/check.pb.go +++ /dev/null @@ -1,689 +0,0 @@ -// -// (C) Copyright 2022 Intel Corporation. -// -// SPDX-License-Identifier: BSD-2-Clause-Patent -// - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.12.4 -// source: chk/check.proto - -package chk - -import ( - 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) -) - -// Kinds of DAOS global inconsistency. -type CheckInconsistClass int32 - -const ( - // Consistent cases. - CheckInconsistClass_CIC_NONE CheckInconsistClass = 0 - // Only a subset of the pool services are present but we will have a quorum. - // Default action: CIA_IGNORE. - CheckInconsistClass_CIC_POOL_LESS_SVC_WITH_QUORUM CheckInconsistClass = 1 - // Only a subset of the pool services are present, and we don't have a quorum. - // Default action: CIA_INTERACT. - CheckInconsistClass_CIC_POOL_LESS_SVC_WITHOUT_QUORUM CheckInconsistClass = 2 - // More members are reported than the pool service was created with. - // Default action: CIA_DISCARD. Remove unrecognized pool service. - CheckInconsistClass_CIC_POOL_MORE_SVC CheckInconsistClass = 3 - // Engine(s) claim the pool which is not registered to MS. - // Default action: CIA_READD. Register the pool to the MS. - CheckInconsistClass_CIC_POOL_NONEXIST_ON_MS CheckInconsistClass = 4 - // Pool is registered to MS but not claimed by any engine. - // Default action: CIA_DISCARD. De-register pool from MS. - CheckInconsistClass_CIC_POOL_NONEXIST_ON_ENGINE CheckInconsistClass = 5 - // Svcl list stored in MS does not match the actual PS membership. - // Default action: CIA_TRUST_PS. Refresh svcl list in MS DB. - CheckInconsistClass_CIC_POOL_BAD_SVCL CheckInconsistClass = 6 - // The pool label recorded by MS does not match the pool label property from PS. - // Default action: CIA_TRUST_PS. Refresh label in MS DB. - CheckInconsistClass_CIC_POOL_BAD_LABEL CheckInconsistClass = 7 - // An engine has some allocated storage but does not appear in pool map. - // Default action: CIA_DISCARD. Associated files and blobs will be deleted from the engine. - CheckInconsistClass_CIC_ENGINE_NONEXIST_IN_MAP CheckInconsistClass = 8 - // An engine has some allocated storage and is marked as down/downout in pool map. - // Default action: CIA_IGNORE. It can be reintegrated after CR scan. - CheckInconsistClass_CIC_ENGINE_DOWN_IN_MAP CheckInconsistClass = 9 - // An engine is referenced in pool map, but no storage is actually allocated on this engine. - // Default action: CIA_DISCARD. Evict the rank from pool map, give left things to rebuild. - CheckInconsistClass_CIC_ENGINE_HAS_NO_STORAGE CheckInconsistClass = 10 - // Containers that have storage allocated on engine but does not exist in the PS. - // Default action: CIA_DISCARD. Destrory the unrecognized container. - CheckInconsistClass_CIC_CONT_NONEXIST_ON_PS CheckInconsistClass = 11 - // The container label recorded by PS does not match the container label property. - // Default action: CIA_TRUST_PS. Refresh label property on related target(s). - CheckInconsistClass_CIC_CONT_BAD_LABEL CheckInconsistClass = 12 - // The DTX is corrupted, some participant RDG(s) may be lost. - // Default action: CIA_INTERACT. - CheckInconsistClass_CIC_DTX_CORRUPTED CheckInconsistClass = 13 - // The DTX entry on leader does not exist, then not sure the status. - // Default action: CIA_DISCARD. It is equal to abort the DTX and may lost data on related - // shard, then we may found data inconsistency in subseqeunt CR scan phase, at that time, - // such data inconsistency will be fixed. - CheckInconsistClass_CIC_DTX_ORPHAN CheckInconsistClass = 14 - // The checksum information is lost. - // Default action: CIA_READD. We have to trust the data and recalculate the checksum. If - // data is corrupted, then we may hit data inconsistency in subseqeunt CR scan phase, at - // that time, such data inconsistency will be fixed. - CheckInconsistClass_CIC_CSUM_LOST CheckInconsistClass = 15 - // Checksum related inconsistency or data corruption. - // Default action: CIA_DISCARD. Then we will hit data lost in subseqeunt CR scan phase, - // at that time, such data inconsistency will be fixed. - CheckInconsistClass_CIC_CSUM_FAILURE CheckInconsistClass = 16 - // Replicated object lost some replica(s). - // Default action: CIA_READD. Copy from another valid replica. - CheckInconsistClass_CIC_OBJ_LOST_REP CheckInconsistClass = 17 - // EC object lost parity or data shard(s). - // Default action: CIA_READD. Trust other available shards and recalculate the lost one(s). - CheckInconsistClass_CIC_OBJ_LOST_EC_SHARD CheckInconsistClass = 18 - // EC object lost too many shards that exceeds its redundancy. - // Default action: CIA_INTERACT. Ask the admin to decide whether keep or remove the object. - CheckInconsistClass_CIC_OBJ_LOST_EC_DATA CheckInconsistClass = 19 - // Data inconsistency among replicas - // Default action: CIA_TRUST_LATEST. Try to keep the latest data. If all have the same epoch, - // then ask the admin (CIA_INTERACT) to decide which one will be trusted. - CheckInconsistClass_CIC_OBJ_DATA_INCONSIST CheckInconsistClass = 20 - // Unknown inconsistency. - // Default action: CIA_IGNORE. - CheckInconsistClass_CIC_UNKNOWN CheckInconsistClass = 100 -) - -// Enum value maps for CheckInconsistClass. -var ( - CheckInconsistClass_name = map[int32]string{ - 0: "CIC_NONE", - 1: "CIC_POOL_LESS_SVC_WITH_QUORUM", - 2: "CIC_POOL_LESS_SVC_WITHOUT_QUORUM", - 3: "CIC_POOL_MORE_SVC", - 4: "CIC_POOL_NONEXIST_ON_MS", - 5: "CIC_POOL_NONEXIST_ON_ENGINE", - 6: "CIC_POOL_BAD_SVCL", - 7: "CIC_POOL_BAD_LABEL", - 8: "CIC_ENGINE_NONEXIST_IN_MAP", - 9: "CIC_ENGINE_DOWN_IN_MAP", - 10: "CIC_ENGINE_HAS_NO_STORAGE", - 11: "CIC_CONT_NONEXIST_ON_PS", - 12: "CIC_CONT_BAD_LABEL", - 13: "CIC_DTX_CORRUPTED", - 14: "CIC_DTX_ORPHAN", - 15: "CIC_CSUM_LOST", - 16: "CIC_CSUM_FAILURE", - 17: "CIC_OBJ_LOST_REP", - 18: "CIC_OBJ_LOST_EC_SHARD", - 19: "CIC_OBJ_LOST_EC_DATA", - 20: "CIC_OBJ_DATA_INCONSIST", - 100: "CIC_UNKNOWN", - } - CheckInconsistClass_value = map[string]int32{ - "CIC_NONE": 0, - "CIC_POOL_LESS_SVC_WITH_QUORUM": 1, - "CIC_POOL_LESS_SVC_WITHOUT_QUORUM": 2, - "CIC_POOL_MORE_SVC": 3, - "CIC_POOL_NONEXIST_ON_MS": 4, - "CIC_POOL_NONEXIST_ON_ENGINE": 5, - "CIC_POOL_BAD_SVCL": 6, - "CIC_POOL_BAD_LABEL": 7, - "CIC_ENGINE_NONEXIST_IN_MAP": 8, - "CIC_ENGINE_DOWN_IN_MAP": 9, - "CIC_ENGINE_HAS_NO_STORAGE": 10, - "CIC_CONT_NONEXIST_ON_PS": 11, - "CIC_CONT_BAD_LABEL": 12, - "CIC_DTX_CORRUPTED": 13, - "CIC_DTX_ORPHAN": 14, - "CIC_CSUM_LOST": 15, - "CIC_CSUM_FAILURE": 16, - "CIC_OBJ_LOST_REP": 17, - "CIC_OBJ_LOST_EC_SHARD": 18, - "CIC_OBJ_LOST_EC_DATA": 19, - "CIC_OBJ_DATA_INCONSIST": 20, - "CIC_UNKNOWN": 100, - } -) - -func (x CheckInconsistClass) Enum() *CheckInconsistClass { - p := new(CheckInconsistClass) - *p = x - return p -} - -func (x CheckInconsistClass) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckInconsistClass) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[0].Descriptor() -} - -func (CheckInconsistClass) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[0] -} - -func (x CheckInconsistClass) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckInconsistClass.Descriptor instead. -func (CheckInconsistClass) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{0} -} - -// Actions for how to handle kinds of inconsistency. -type CheckInconsistAction int32 - -const ( - // Default action, depends on the detailed inconsistency class. - CheckInconsistAction_CIA_DEFAULT CheckInconsistAction = 0 - // Interact with administrator for further action. - CheckInconsistAction_CIA_INTERACT CheckInconsistAction = 1 - // Ignore but log the inconsistency. - CheckInconsistAction_CIA_IGNORE CheckInconsistAction = 2 - // Discard the unrecognized element: pool service, pool itself, container, and so on. - CheckInconsistAction_CIA_DISCARD CheckInconsistAction = 3 - // Re-add the missing element: pool to MS, target to pool map, and so on. - CheckInconsistAction_CIA_READD CheckInconsistAction = 4 - // Trust the information recorded in MS DB. - CheckInconsistAction_CIA_TRUST_MS CheckInconsistAction = 5 - // Trust the information recorded in PS DB. - CheckInconsistAction_CIA_TRUST_PS CheckInconsistAction = 6 - // Trust the information recorded by target(s). - CheckInconsistAction_CIA_TRUST_TARGET CheckInconsistAction = 7 - // Trust the majority parts (if have). - CheckInconsistAction_CIA_TRUST_MAJORITY CheckInconsistAction = 8 - // Trust the one with latest (pool map or epoch) information. Keep the latest data. - CheckInconsistAction_CIA_TRUST_LATEST CheckInconsistAction = 9 - // Trust the one with oldest (pool map or epoch) information. Rollback to old version. - CheckInconsistAction_CIA_TRUST_OLDEST CheckInconsistAction = 10 - // Trust EC parity shard. - CheckInconsistAction_CIA_TRUST_EC_PARITY CheckInconsistAction = 11 - // Trust EC data shard. - CheckInconsistAction_CIA_TRUST_EC_DATA CheckInconsistAction = 12 -) - -// Enum value maps for CheckInconsistAction. -var ( - CheckInconsistAction_name = map[int32]string{ - 0: "CIA_DEFAULT", - 1: "CIA_INTERACT", - 2: "CIA_IGNORE", - 3: "CIA_DISCARD", - 4: "CIA_READD", - 5: "CIA_TRUST_MS", - 6: "CIA_TRUST_PS", - 7: "CIA_TRUST_TARGET", - 8: "CIA_TRUST_MAJORITY", - 9: "CIA_TRUST_LATEST", - 10: "CIA_TRUST_OLDEST", - 11: "CIA_TRUST_EC_PARITY", - 12: "CIA_TRUST_EC_DATA", - } - CheckInconsistAction_value = map[string]int32{ - "CIA_DEFAULT": 0, - "CIA_INTERACT": 1, - "CIA_IGNORE": 2, - "CIA_DISCARD": 3, - "CIA_READD": 4, - "CIA_TRUST_MS": 5, - "CIA_TRUST_PS": 6, - "CIA_TRUST_TARGET": 7, - "CIA_TRUST_MAJORITY": 8, - "CIA_TRUST_LATEST": 9, - "CIA_TRUST_OLDEST": 10, - "CIA_TRUST_EC_PARITY": 11, - "CIA_TRUST_EC_DATA": 12, - } -) - -func (x CheckInconsistAction) Enum() *CheckInconsistAction { - p := new(CheckInconsistAction) - *p = x - return p -} - -func (x CheckInconsistAction) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckInconsistAction) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[1].Descriptor() -} - -func (CheckInconsistAction) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[1] -} - -func (x CheckInconsistAction) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckInconsistAction.Descriptor instead. -func (CheckInconsistAction) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{1} -} - -// The flags to control DAOS check general behavior, not related with any detailed inconsistency. -type CheckFlag int32 - -const ( - CheckFlag_CF_NONE CheckFlag = 0 - // Only scan without real repairing inconsistency. - CheckFlag_CF_DRYRUN CheckFlag = 1 - // Start DAOS check from the beginning. - // Otherwise, resume the DAOS check from the latest checkpoint by default. - CheckFlag_CF_RESET CheckFlag = 2 - // Stop DAOS check if hit unknown inconsistency or fail to repair some inconsistency. - // Otherwise, mark 'fail' on related component and continue to handle next one by default. - CheckFlag_CF_FAILOUT CheckFlag = 4 - // If the admin does not want to interact with engine during check scan, then CIA_INTERACT - // will be converted to CIA_IGNORE. That will overwrite the CheckInconsistPolicy. - CheckFlag_CF_AUTO CheckFlag = 8 -) - -// Enum value maps for CheckFlag. -var ( - CheckFlag_name = map[int32]string{ - 0: "CF_NONE", - 1: "CF_DRYRUN", - 2: "CF_RESET", - 4: "CF_FAILOUT", - 8: "CF_AUTO", - } - CheckFlag_value = map[string]int32{ - "CF_NONE": 0, - "CF_DRYRUN": 1, - "CF_RESET": 2, - "CF_FAILOUT": 4, - "CF_AUTO": 8, - } -) - -func (x CheckFlag) Enum() *CheckFlag { - p := new(CheckFlag) - *p = x - return p -} - -func (x CheckFlag) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckFlag) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[2].Descriptor() -} - -func (CheckFlag) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[2] -} - -func (x CheckFlag) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckFlag.Descriptor instead. -func (CheckFlag) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{2} -} - -// The status of DAOS check instance. -type CheckInstStatus int32 - -const ( - CheckInstStatus_CIS_INIT CheckInstStatus = 0 // DAOS check has never been run. - CheckInstStatus_CIS_RUNNING CheckInstStatus = 1 // DAOS check is still in process. - CheckInstStatus_CIS_COMPLETED CheckInstStatus = 2 // All passes have been done for all required pools. - CheckInstStatus_CIS_STOPPED CheckInstStatus = 3 // DAOS check has been explicitly stopped, do not allow to rejoin. - CheckInstStatus_CIS_FAILED CheckInstStatus = 4 // DAOS check auto stopped for some unrecoverable failure, do not rejoin. - CheckInstStatus_CIS_PAUSED CheckInstStatus = 5 // DAOS check has been paused because engine exit, allow to rejoin. - CheckInstStatus_CIS_CRASHED CheckInstStatus = 6 // Engine crashed during DAOS check scan, allow to rejoin. -) - -// Enum value maps for CheckInstStatus. -var ( - CheckInstStatus_name = map[int32]string{ - 0: "CIS_INIT", - 1: "CIS_RUNNING", - 2: "CIS_COMPLETED", - 3: "CIS_STOPPED", - 4: "CIS_FAILED", - 5: "CIS_PAUSED", - 6: "CIS_CRASHED", - } - CheckInstStatus_value = map[string]int32{ - "CIS_INIT": 0, - "CIS_RUNNING": 1, - "CIS_COMPLETED": 2, - "CIS_STOPPED": 3, - "CIS_FAILED": 4, - "CIS_PAUSED": 5, - "CIS_CRASHED": 6, - } -) - -func (x CheckInstStatus) Enum() *CheckInstStatus { - p := new(CheckInstStatus) - *p = x - return p -} - -func (x CheckInstStatus) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckInstStatus) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[3].Descriptor() -} - -func (CheckInstStatus) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[3] -} - -func (x CheckInstStatus) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckInstStatus.Descriptor instead. -func (CheckInstStatus) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{3} -} - -// The pool status for DAOS check. -type CheckPoolStatus int32 - -const ( - CheckPoolStatus_CPS_UNCHECKED CheckPoolStatus = 0 // DAOS check has not started against this pool. - CheckPoolStatus_CPS_CHECKING CheckPoolStatus = 1 // The pool is being checked. - CheckPoolStatus_CPS_CHECKED CheckPoolStatus = 2 // DAOS check has successfully completed all the passes on this pool. - CheckPoolStatus_CPS_FAILED CheckPoolStatus = 3 // DAOS check could not be completed due to some unrecoverable failure. - CheckPoolStatus_CPS_PAUSED CheckPoolStatus = 4 // Checking the pool has been put on hold or stopped. - CheckPoolStatus_CPS_PENDING CheckPoolStatus = 5 // Waiting for the decision from the admin. -) - -// Enum value maps for CheckPoolStatus. -var ( - CheckPoolStatus_name = map[int32]string{ - 0: "CPS_UNCHECKED", - 1: "CPS_CHECKING", - 2: "CPS_CHECKED", - 3: "CPS_FAILED", - 4: "CPS_PAUSED", - 5: "CPS_PENDING", - } - CheckPoolStatus_value = map[string]int32{ - "CPS_UNCHECKED": 0, - "CPS_CHECKING": 1, - "CPS_CHECKED": 2, - "CPS_FAILED": 3, - "CPS_PAUSED": 4, - "CPS_PENDING": 5, - } -) - -func (x CheckPoolStatus) Enum() *CheckPoolStatus { - p := new(CheckPoolStatus) - *p = x - return p -} - -func (x CheckPoolStatus) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckPoolStatus) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[4].Descriptor() -} - -func (CheckPoolStatus) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[4] -} - -func (x CheckPoolStatus) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckPoolStatus.Descriptor instead. -func (CheckPoolStatus) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{4} -} - -// DAOS check engine scan phases. -type CheckScanPhase int32 - -const ( - CheckScanPhase_CSP_PREPARE CheckScanPhase = 0 // Initial phase, prepare to start check on related engines. - CheckScanPhase_CSP_POOL_LIST CheckScanPhase = 1 // Pool list consolidation. - CheckScanPhase_CSP_POOL_MBS CheckScanPhase = 2 // Pool membership. - CheckScanPhase_CSP_POOL_CLEANUP CheckScanPhase = 3 // Pool cleanup. - CheckScanPhase_CSP_CONT_LIST CheckScanPhase = 4 // Container list consolidation. - CheckScanPhase_CSP_CONT_CLEANUP CheckScanPhase = 5 // Container cleanup. - CheckScanPhase_CSP_DTX_RESYNC CheckScanPhase = 6 // DTX resync and cleanup. - CheckScanPhase_CSP_OBJ_SCRUB CheckScanPhase = 7 // RP/EC shards consistency verification with checksum scrub if have. - CheckScanPhase_CSP_REBUILD CheckScanPhase = 8 // Object rebuild. - CheckScanPhase_OSP_AGGREGATION CheckScanPhase = 9 // EC aggregation & VOS aggregation. - CheckScanPhase_DSP_DONE CheckScanPhase = 10 // All done. -) - -// Enum value maps for CheckScanPhase. -var ( - CheckScanPhase_name = map[int32]string{ - 0: "CSP_PREPARE", - 1: "CSP_POOL_LIST", - 2: "CSP_POOL_MBS", - 3: "CSP_POOL_CLEANUP", - 4: "CSP_CONT_LIST", - 5: "CSP_CONT_CLEANUP", - 6: "CSP_DTX_RESYNC", - 7: "CSP_OBJ_SCRUB", - 8: "CSP_REBUILD", - 9: "OSP_AGGREGATION", - 10: "DSP_DONE", - } - CheckScanPhase_value = map[string]int32{ - "CSP_PREPARE": 0, - "CSP_POOL_LIST": 1, - "CSP_POOL_MBS": 2, - "CSP_POOL_CLEANUP": 3, - "CSP_CONT_LIST": 4, - "CSP_CONT_CLEANUP": 5, - "CSP_DTX_RESYNC": 6, - "CSP_OBJ_SCRUB": 7, - "CSP_REBUILD": 8, - "OSP_AGGREGATION": 9, - "DSP_DONE": 10, - } -) - -func (x CheckScanPhase) Enum() *CheckScanPhase { - p := new(CheckScanPhase) - *p = x - return p -} - -func (x CheckScanPhase) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CheckScanPhase) Descriptor() protoreflect.EnumDescriptor { - return file_chk_check_proto_enumTypes[5].Descriptor() -} - -func (CheckScanPhase) Type() protoreflect.EnumType { - return &file_chk_check_proto_enumTypes[5] -} - -func (x CheckScanPhase) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use CheckScanPhase.Descriptor instead. -func (CheckScanPhase) EnumDescriptor() ([]byte, []int) { - return file_chk_check_proto_rawDescGZIP(), []int{5} -} - -var File_chk_check_proto protoreflect.FileDescriptor - -var file_chk_check_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x03, 0x63, 0x68, 0x6b, 0x2a, 0xcc, 0x04, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0c, - 0x0a, 0x08, 0x43, 0x49, 0x43, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, - 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x56, - 0x43, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x51, 0x55, 0x4f, 0x52, 0x55, 0x4d, 0x10, 0x01, 0x12, - 0x24, 0x0a, 0x20, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x45, 0x53, 0x53, - 0x5f, 0x53, 0x56, 0x43, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x51, 0x55, 0x4f, - 0x52, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, - 0x4c, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x53, 0x56, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, - 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, - 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x4d, 0x53, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x49, 0x43, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, 0x54, 0x5f, 0x4f, - 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, - 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x53, 0x56, 0x43, 0x4c, 0x10, - 0x06, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x42, 0x41, - 0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x49, 0x43, - 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x49, 0x43, - 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x4e, 0x5f, - 0x4d, 0x41, 0x50, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x47, - 0x49, 0x4e, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, - 0x47, 0x45, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x50, 0x53, 0x10, - 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x5f, 0x42, 0x41, - 0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, 0x43, - 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x55, 0x50, 0x54, 0x45, 0x44, 0x10, 0x0d, - 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x49, 0x43, 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x4f, 0x52, 0x50, 0x48, - 0x41, 0x4e, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x53, 0x55, 0x4d, - 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x43, 0x5f, 0x43, - 0x53, 0x55, 0x4d, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x10, 0x12, 0x14, 0x0a, - 0x10, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x52, 0x45, - 0x50, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x4c, - 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x44, 0x10, 0x12, 0x12, 0x18, - 0x0a, 0x14, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x45, - 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x13, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x49, 0x43, 0x5f, - 0x4f, 0x42, 0x4a, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53, 0x49, - 0x53, 0x54, 0x10, 0x14, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x64, 0x2a, 0x97, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, - 0x0a, 0x0b, 0x43, 0x49, 0x41, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, - 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x41, 0x43, 0x54, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, 0x41, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, - 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x41, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x49, 0x41, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x44, 0x10, - 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x4d, - 0x53, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, - 0x5f, 0x50, 0x53, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, - 0x53, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x43, - 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x49, 0x54, - 0x59, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, - 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x53, 0x54, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x41, - 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x4f, 0x4c, 0x44, 0x45, 0x53, 0x54, 0x10, 0x0a, 0x12, - 0x17, 0x0a, 0x13, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x45, 0x43, 0x5f, - 0x50, 0x41, 0x52, 0x49, 0x54, 0x59, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, 0x41, 0x5f, - 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x45, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0c, 0x2a, - 0x52, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x0b, 0x0a, 0x07, - 0x43, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x46, 0x5f, - 0x44, 0x52, 0x59, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x46, 0x5f, 0x52, - 0x45, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x46, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x46, 0x5f, 0x41, 0x55, 0x54, - 0x4f, 0x10, 0x08, 0x2a, 0x85, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x49, 0x53, 0x5f, 0x49, - 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x53, 0x5f, 0x52, 0x55, 0x4e, - 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x49, 0x53, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x53, - 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, - 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, - 0x53, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, - 0x53, 0x5f, 0x43, 0x52, 0x41, 0x53, 0x48, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x78, 0x0a, 0x0f, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x11, - 0x0a, 0x0d, 0x43, 0x50, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x50, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x49, 0x4e, - 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x50, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, - 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x50, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x50, 0x53, 0x5f, 0x50, 0x41, 0x55, 0x53, - 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x50, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x10, 0x05, 0x2a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, - 0x63, 0x61, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x5f, - 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x53, 0x50, - 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x43, 0x53, 0x50, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, 0x53, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x43, 0x53, 0x50, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, - 0x55, 0x50, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x53, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x10, 0x05, 0x12, 0x12, 0x0a, - 0x0e, 0x43, 0x53, 0x50, 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x52, 0x45, 0x53, 0x59, 0x4e, 0x43, 0x10, - 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x53, 0x50, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x53, 0x43, 0x52, - 0x55, 0x42, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x5f, 0x52, 0x45, 0x42, 0x55, - 0x49, 0x4c, 0x44, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x53, 0x50, 0x5f, 0x41, 0x47, 0x47, - 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x53, - 0x50, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x0a, 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, 0x68, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_chk_check_proto_rawDescOnce sync.Once - file_chk_check_proto_rawDescData = file_chk_check_proto_rawDesc -) - -func file_chk_check_proto_rawDescGZIP() []byte { - file_chk_check_proto_rawDescOnce.Do(func() { - file_chk_check_proto_rawDescData = protoimpl.X.CompressGZIP(file_chk_check_proto_rawDescData) - }) - return file_chk_check_proto_rawDescData -} - -var file_chk_check_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_chk_check_proto_goTypes = []interface{}{ - (CheckInconsistClass)(0), // 0: chk.CheckInconsistClass - (CheckInconsistAction)(0), // 1: chk.CheckInconsistAction - (CheckFlag)(0), // 2: chk.CheckFlag - (CheckInstStatus)(0), // 3: chk.CheckInstStatus - (CheckPoolStatus)(0), // 4: chk.CheckPoolStatus - (CheckScanPhase)(0), // 5: chk.CheckScanPhase -} -var file_chk_check_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] 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 -} - -func init() { file_chk_check_proto_init() } -func file_chk_check_proto_init() { - if File_chk_check_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_chk_check_proto_rawDesc, - NumEnums: 6, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_chk_check_proto_goTypes, - DependencyIndexes: file_chk_check_proto_depIdxs, - EnumInfos: file_chk_check_proto_enumTypes, - }.Build() - File_chk_check_proto = out.File - file_chk_check_proto_rawDesc = nil - file_chk_check_proto_goTypes = nil - file_chk_check_proto_depIdxs = nil -} diff --git a/src/control/common/proto/chk/chk.pb.go b/src/control/common/proto/chk/chk.pb.go new file mode 100644 index 00000000000..65772cb55f3 --- /dev/null +++ b/src/control/common/proto/chk/chk.pb.go @@ -0,0 +1,903 @@ +// +// (C) Copyright 2022 Intel Corporation. +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.12.4 +// source: chk/chk.proto + +package chk + +import ( + 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) +) + +// Kinds of DAOS global inconsistency. +type CheckInconsistClass int32 + +const ( + // Consistent cases. + CheckInconsistClass_CIC_NONE CheckInconsistClass = 0 + // Only a subset of the pool services are present but we will have a quorum. + // Default action: CIA_IGNORE. + CheckInconsistClass_CIC_POOL_LESS_SVC_WITH_QUORUM CheckInconsistClass = 1 + // Only a subset of the pool services are present, and we don't have a quorum. + // Default action: CIA_INTERACT. + CheckInconsistClass_CIC_POOL_LESS_SVC_WITHOUT_QUORUM CheckInconsistClass = 2 + // More members are reported than the pool service was created with. + // Default action: CIA_DISCARD. Remove unrecognized pool service. + CheckInconsistClass_CIC_POOL_MORE_SVC CheckInconsistClass = 3 + // Engine(s) claim the pool which is not registered to MS. + // Default action: CIA_READD. Register the pool to the MS. + CheckInconsistClass_CIC_POOL_NONEXIST_ON_MS CheckInconsistClass = 4 + // Pool is registered to MS but not claimed by any engine. + // Default action: CIA_DISCARD. De-register pool from MS. + CheckInconsistClass_CIC_POOL_NONEXIST_ON_ENGINE CheckInconsistClass = 5 + // Svcl list stored in MS does not match the actual PS membership. + // Default action: CIA_TRUST_PS. Refresh svcl list in MS DB. + CheckInconsistClass_CIC_POOL_BAD_SVCL CheckInconsistClass = 6 + // The pool label recorded by MS does not match the pool label property from PS. + // Default action: CIA_TRUST_PS. Refresh label in MS DB. + CheckInconsistClass_CIC_POOL_BAD_LABEL CheckInconsistClass = 7 + // An engine has some allocated storage but does not appear in pool map. + // Default action: CIA_DISCARD. Associated files and blobs will be deleted from the engine. + CheckInconsistClass_CIC_ENGINE_NONEXIST_IN_MAP CheckInconsistClass = 8 + // An engine has some allocated storage and is marked as down/downout in pool map. + // Default action: CIA_IGNORE. It can be reintegrated after CR scan. + CheckInconsistClass_CIC_ENGINE_DOWN_IN_MAP CheckInconsistClass = 9 + // An engine is referenced in pool map, but no storage is actually allocated on this engine. + // Default action: CIA_DISCARD. Evict the rank from pool map, give left things to rebuild. + CheckInconsistClass_CIC_ENGINE_HAS_NO_STORAGE CheckInconsistClass = 10 + // Containers that have storage allocated on engine but does not exist in the PS. + // Default action: CIA_DISCARD. Destrory the unrecognized container. + CheckInconsistClass_CIC_CONT_NONEXIST_ON_PS CheckInconsistClass = 11 + // The container label recorded by PS does not match the container label property. + // Default action: CIA_TRUST_PS. Refresh label property on related target(s). + CheckInconsistClass_CIC_CONT_BAD_LABEL CheckInconsistClass = 12 + // The DTX is corrupted, some participant RDG(s) may be lost. + // Default action: CIA_INTERACT. + CheckInconsistClass_CIC_DTX_CORRUPTED CheckInconsistClass = 13 + // The DTX entry on leader does not exist, then not sure the status. + // Default action: CIA_DISCARD. It is equal to abort the DTX and may lost data on related + // shard, then we may found data inconsistency in subseqeunt CR scan phase, at that time, + // such data inconsistency will be fixed. + CheckInconsistClass_CIC_DTX_ORPHAN CheckInconsistClass = 14 + // The checksum information is lost. + // Default action: CIA_READD. We have to trust the data and recalculate the checksum. If + // data is corrupted, then we may hit data inconsistency in subseqeunt CR scan phase, at + // that time, such data inconsistency will be fixed. + CheckInconsistClass_CIC_CSUM_LOST CheckInconsistClass = 15 + // Checksum related inconsistency or data corruption. + // Default action: CIA_DISCARD. Then we will hit data lost in subseqeunt CR scan phase, + // at that time, such data inconsistency will be fixed. + CheckInconsistClass_CIC_CSUM_FAILURE CheckInconsistClass = 16 + // Replicated object lost some replica(s). + // Default action: CIA_READD. Copy from another valid replica. + CheckInconsistClass_CIC_OBJ_LOST_REP CheckInconsistClass = 17 + // EC object lost parity or data shard(s). + // Default action: CIA_READD. Trust other available shards and recalculate the lost one(s). + CheckInconsistClass_CIC_OBJ_LOST_EC_SHARD CheckInconsistClass = 18 + // EC object lost too many shards that exceeds its redundancy. + // Default action: CIA_INTERACT. Ask the admin to decide whether keep or remove the object. + CheckInconsistClass_CIC_OBJ_LOST_EC_DATA CheckInconsistClass = 19 + // Data inconsistency among replicas + // Default action: CIA_TRUST_LATEST. Try to keep the latest data. If all have the same epoch, + // then ask the admin (CIA_INTERACT) to decide which one will be trusted. + CheckInconsistClass_CIC_OBJ_DATA_INCONSIST CheckInconsistClass = 20 + // Unknown inconsistency. + // Default action: CIA_IGNORE. + CheckInconsistClass_CIC_UNKNOWN CheckInconsistClass = 100 +) + +// Enum value maps for CheckInconsistClass. +var ( + CheckInconsistClass_name = map[int32]string{ + 0: "CIC_NONE", + 1: "CIC_POOL_LESS_SVC_WITH_QUORUM", + 2: "CIC_POOL_LESS_SVC_WITHOUT_QUORUM", + 3: "CIC_POOL_MORE_SVC", + 4: "CIC_POOL_NONEXIST_ON_MS", + 5: "CIC_POOL_NONEXIST_ON_ENGINE", + 6: "CIC_POOL_BAD_SVCL", + 7: "CIC_POOL_BAD_LABEL", + 8: "CIC_ENGINE_NONEXIST_IN_MAP", + 9: "CIC_ENGINE_DOWN_IN_MAP", + 10: "CIC_ENGINE_HAS_NO_STORAGE", + 11: "CIC_CONT_NONEXIST_ON_PS", + 12: "CIC_CONT_BAD_LABEL", + 13: "CIC_DTX_CORRUPTED", + 14: "CIC_DTX_ORPHAN", + 15: "CIC_CSUM_LOST", + 16: "CIC_CSUM_FAILURE", + 17: "CIC_OBJ_LOST_REP", + 18: "CIC_OBJ_LOST_EC_SHARD", + 19: "CIC_OBJ_LOST_EC_DATA", + 20: "CIC_OBJ_DATA_INCONSIST", + 100: "CIC_UNKNOWN", + } + CheckInconsistClass_value = map[string]int32{ + "CIC_NONE": 0, + "CIC_POOL_LESS_SVC_WITH_QUORUM": 1, + "CIC_POOL_LESS_SVC_WITHOUT_QUORUM": 2, + "CIC_POOL_MORE_SVC": 3, + "CIC_POOL_NONEXIST_ON_MS": 4, + "CIC_POOL_NONEXIST_ON_ENGINE": 5, + "CIC_POOL_BAD_SVCL": 6, + "CIC_POOL_BAD_LABEL": 7, + "CIC_ENGINE_NONEXIST_IN_MAP": 8, + "CIC_ENGINE_DOWN_IN_MAP": 9, + "CIC_ENGINE_HAS_NO_STORAGE": 10, + "CIC_CONT_NONEXIST_ON_PS": 11, + "CIC_CONT_BAD_LABEL": 12, + "CIC_DTX_CORRUPTED": 13, + "CIC_DTX_ORPHAN": 14, + "CIC_CSUM_LOST": 15, + "CIC_CSUM_FAILURE": 16, + "CIC_OBJ_LOST_REP": 17, + "CIC_OBJ_LOST_EC_SHARD": 18, + "CIC_OBJ_LOST_EC_DATA": 19, + "CIC_OBJ_DATA_INCONSIST": 20, + "CIC_UNKNOWN": 100, + } +) + +func (x CheckInconsistClass) Enum() *CheckInconsistClass { + p := new(CheckInconsistClass) + *p = x + return p +} + +func (x CheckInconsistClass) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckInconsistClass) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[0].Descriptor() +} + +func (CheckInconsistClass) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[0] +} + +func (x CheckInconsistClass) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckInconsistClass.Descriptor instead. +func (CheckInconsistClass) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{0} +} + +// Actions for how to handle kinds of inconsistency. +type CheckInconsistAction int32 + +const ( + // Default action, depends on the detailed inconsistency class. + CheckInconsistAction_CIA_DEFAULT CheckInconsistAction = 0 + // Interact with administrator for further action. + CheckInconsistAction_CIA_INTERACT CheckInconsistAction = 1 + // Ignore but log the inconsistency. + CheckInconsistAction_CIA_IGNORE CheckInconsistAction = 2 + // Discard the unrecognized element: pool service, pool itself, container, and so on. + CheckInconsistAction_CIA_DISCARD CheckInconsistAction = 3 + // Re-add the missing element: pool to MS, target to pool map, and so on. + CheckInconsistAction_CIA_READD CheckInconsistAction = 4 + // Trust the information recorded in MS DB. + CheckInconsistAction_CIA_TRUST_MS CheckInconsistAction = 5 + // Trust the information recorded in PS DB. + CheckInconsistAction_CIA_TRUST_PS CheckInconsistAction = 6 + // Trust the information recorded by target(s). + CheckInconsistAction_CIA_TRUST_TARGET CheckInconsistAction = 7 + // Trust the majority parts (if have). + CheckInconsistAction_CIA_TRUST_MAJORITY CheckInconsistAction = 8 + // Trust the one with latest (pool map or epoch) information. Keep the latest data. + CheckInconsistAction_CIA_TRUST_LATEST CheckInconsistAction = 9 + // Trust the one with oldest (pool map or epoch) information. Rollback to old version. + CheckInconsistAction_CIA_TRUST_OLDEST CheckInconsistAction = 10 + // Trust EC parity shard. + CheckInconsistAction_CIA_TRUST_EC_PARITY CheckInconsistAction = 11 + // Trust EC data shard. + CheckInconsistAction_CIA_TRUST_EC_DATA CheckInconsistAction = 12 +) + +// Enum value maps for CheckInconsistAction. +var ( + CheckInconsistAction_name = map[int32]string{ + 0: "CIA_DEFAULT", + 1: "CIA_INTERACT", + 2: "CIA_IGNORE", + 3: "CIA_DISCARD", + 4: "CIA_READD", + 5: "CIA_TRUST_MS", + 6: "CIA_TRUST_PS", + 7: "CIA_TRUST_TARGET", + 8: "CIA_TRUST_MAJORITY", + 9: "CIA_TRUST_LATEST", + 10: "CIA_TRUST_OLDEST", + 11: "CIA_TRUST_EC_PARITY", + 12: "CIA_TRUST_EC_DATA", + } + CheckInconsistAction_value = map[string]int32{ + "CIA_DEFAULT": 0, + "CIA_INTERACT": 1, + "CIA_IGNORE": 2, + "CIA_DISCARD": 3, + "CIA_READD": 4, + "CIA_TRUST_MS": 5, + "CIA_TRUST_PS": 6, + "CIA_TRUST_TARGET": 7, + "CIA_TRUST_MAJORITY": 8, + "CIA_TRUST_LATEST": 9, + "CIA_TRUST_OLDEST": 10, + "CIA_TRUST_EC_PARITY": 11, + "CIA_TRUST_EC_DATA": 12, + } +) + +func (x CheckInconsistAction) Enum() *CheckInconsistAction { + p := new(CheckInconsistAction) + *p = x + return p +} + +func (x CheckInconsistAction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckInconsistAction) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[1].Descriptor() +} + +func (CheckInconsistAction) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[1] +} + +func (x CheckInconsistAction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckInconsistAction.Descriptor instead. +func (CheckInconsistAction) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{1} +} + +// The flags to control DAOS check general behavior, not related with any detailed inconsistency. +type CheckFlag int32 + +const ( + CheckFlag_CF_NONE CheckFlag = 0 + // Only scan without real repairing inconsistency. + CheckFlag_CF_DRYRUN CheckFlag = 1 + // Start DAOS check from the beginning. + // Otherwise, resume the DAOS check from the latest checkpoint by default. + CheckFlag_CF_RESET CheckFlag = 2 + // Stop DAOS check if hit unknown inconsistency or fail to repair some inconsistency. + // Otherwise, mark 'fail' on related component and continue to handle next one by default. + CheckFlag_CF_FAILOUT CheckFlag = 4 + // If the admin does not want to interact with engine during check scan, then CIA_INTERACT + // will be converted to CIA_IGNORE. That will overwrite the CheckInconsistPolicy. + CheckFlag_CF_AUTO CheckFlag = 8 +) + +// Enum value maps for CheckFlag. +var ( + CheckFlag_name = map[int32]string{ + 0: "CF_NONE", + 1: "CF_DRYRUN", + 2: "CF_RESET", + 4: "CF_FAILOUT", + 8: "CF_AUTO", + } + CheckFlag_value = map[string]int32{ + "CF_NONE": 0, + "CF_DRYRUN": 1, + "CF_RESET": 2, + "CF_FAILOUT": 4, + "CF_AUTO": 8, + } +) + +func (x CheckFlag) Enum() *CheckFlag { + p := new(CheckFlag) + *p = x + return p +} + +func (x CheckFlag) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckFlag) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[2].Descriptor() +} + +func (CheckFlag) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[2] +} + +func (x CheckFlag) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckFlag.Descriptor instead. +func (CheckFlag) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{2} +} + +// The status of DAOS check instance. +type CheckInstStatus int32 + +const ( + CheckInstStatus_CIS_INIT CheckInstStatus = 0 // DAOS check has never been run. + CheckInstStatus_CIS_RUNNING CheckInstStatus = 1 // DAOS check is still in process. + CheckInstStatus_CIS_COMPLETED CheckInstStatus = 2 // All passes have been done for all required pools. + CheckInstStatus_CIS_STOPPED CheckInstStatus = 3 // DAOS check has been explicitly stopped, do not allow to rejoin. + CheckInstStatus_CIS_FAILED CheckInstStatus = 4 // DAOS check auto stopped for some unrecoverable failure, do not rejoin. + CheckInstStatus_CIS_PAUSED CheckInstStatus = 5 // DAOS check has been paused because engine exit, allow to rejoin. + CheckInstStatus_CIS_CRASHED CheckInstStatus = 6 // Engine crashed during DAOS check scan, allow to rejoin. +) + +// Enum value maps for CheckInstStatus. +var ( + CheckInstStatus_name = map[int32]string{ + 0: "CIS_INIT", + 1: "CIS_RUNNING", + 2: "CIS_COMPLETED", + 3: "CIS_STOPPED", + 4: "CIS_FAILED", + 5: "CIS_PAUSED", + 6: "CIS_CRASHED", + } + CheckInstStatus_value = map[string]int32{ + "CIS_INIT": 0, + "CIS_RUNNING": 1, + "CIS_COMPLETED": 2, + "CIS_STOPPED": 3, + "CIS_FAILED": 4, + "CIS_PAUSED": 5, + "CIS_CRASHED": 6, + } +) + +func (x CheckInstStatus) Enum() *CheckInstStatus { + p := new(CheckInstStatus) + *p = x + return p +} + +func (x CheckInstStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckInstStatus) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[3].Descriptor() +} + +func (CheckInstStatus) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[3] +} + +func (x CheckInstStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckInstStatus.Descriptor instead. +func (CheckInstStatus) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{3} +} + +// The pool status for DAOS check. +type CheckPoolStatus int32 + +const ( + CheckPoolStatus_CPS_UNCHECKED CheckPoolStatus = 0 // DAOS check has not started against this pool. + CheckPoolStatus_CPS_CHECKING CheckPoolStatus = 1 // The pool is being checked. + CheckPoolStatus_CPS_CHECKED CheckPoolStatus = 2 // DAOS check has successfully completed all the passes on this pool. + CheckPoolStatus_CPS_FAILED CheckPoolStatus = 3 // DAOS check could not be completed due to some unrecoverable failure. + CheckPoolStatus_CPS_PAUSED CheckPoolStatus = 4 // Checking the pool has been put on hold or stopped. + CheckPoolStatus_CPS_PENDING CheckPoolStatus = 5 // Waiting for the decision from the admin. +) + +// Enum value maps for CheckPoolStatus. +var ( + CheckPoolStatus_name = map[int32]string{ + 0: "CPS_UNCHECKED", + 1: "CPS_CHECKING", + 2: "CPS_CHECKED", + 3: "CPS_FAILED", + 4: "CPS_PAUSED", + 5: "CPS_PENDING", + } + CheckPoolStatus_value = map[string]int32{ + "CPS_UNCHECKED": 0, + "CPS_CHECKING": 1, + "CPS_CHECKED": 2, + "CPS_FAILED": 3, + "CPS_PAUSED": 4, + "CPS_PENDING": 5, + } +) + +func (x CheckPoolStatus) Enum() *CheckPoolStatus { + p := new(CheckPoolStatus) + *p = x + return p +} + +func (x CheckPoolStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckPoolStatus) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[4].Descriptor() +} + +func (CheckPoolStatus) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[4] +} + +func (x CheckPoolStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckPoolStatus.Descriptor instead. +func (CheckPoolStatus) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{4} +} + +// DAOS check engine scan phases. +type CheckScanPhase int32 + +const ( + CheckScanPhase_CSP_PREPARE CheckScanPhase = 0 // Initial phase, prepare to start check on related engines. + CheckScanPhase_CSP_POOL_LIST CheckScanPhase = 1 // Pool list consolidation. + CheckScanPhase_CSP_POOL_MBS CheckScanPhase = 2 // Pool membership. + CheckScanPhase_CSP_POOL_CLEANUP CheckScanPhase = 3 // Pool cleanup. + CheckScanPhase_CSP_CONT_LIST CheckScanPhase = 4 // Container list consolidation. + CheckScanPhase_CSP_CONT_CLEANUP CheckScanPhase = 5 // Container cleanup. + CheckScanPhase_CSP_DTX_RESYNC CheckScanPhase = 6 // DTX resync and cleanup. + CheckScanPhase_CSP_OBJ_SCRUB CheckScanPhase = 7 // RP/EC shards consistency verification with checksum scrub if have. + CheckScanPhase_CSP_REBUILD CheckScanPhase = 8 // Object rebuild. + CheckScanPhase_OSP_AGGREGATION CheckScanPhase = 9 // EC aggregation & VOS aggregation. + CheckScanPhase_DSP_DONE CheckScanPhase = 10 // All done. +) + +// Enum value maps for CheckScanPhase. +var ( + CheckScanPhase_name = map[int32]string{ + 0: "CSP_PREPARE", + 1: "CSP_POOL_LIST", + 2: "CSP_POOL_MBS", + 3: "CSP_POOL_CLEANUP", + 4: "CSP_CONT_LIST", + 5: "CSP_CONT_CLEANUP", + 6: "CSP_DTX_RESYNC", + 7: "CSP_OBJ_SCRUB", + 8: "CSP_REBUILD", + 9: "OSP_AGGREGATION", + 10: "DSP_DONE", + } + CheckScanPhase_value = map[string]int32{ + "CSP_PREPARE": 0, + "CSP_POOL_LIST": 1, + "CSP_POOL_MBS": 2, + "CSP_POOL_CLEANUP": 3, + "CSP_CONT_LIST": 4, + "CSP_CONT_CLEANUP": 5, + "CSP_DTX_RESYNC": 6, + "CSP_OBJ_SCRUB": 7, + "CSP_REBUILD": 8, + "OSP_AGGREGATION": 9, + "DSP_DONE": 10, + } +) + +func (x CheckScanPhase) Enum() *CheckScanPhase { + p := new(CheckScanPhase) + *p = x + return p +} + +func (x CheckScanPhase) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CheckScanPhase) Descriptor() protoreflect.EnumDescriptor { + return file_chk_chk_proto_enumTypes[5].Descriptor() +} + +func (CheckScanPhase) Type() protoreflect.EnumType { + return &file_chk_chk_proto_enumTypes[5] +} + +func (x CheckScanPhase) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CheckScanPhase.Descriptor instead. +func (CheckScanPhase) EnumDescriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{5} +} + +// DAOS check engine reports the found inconsistency and repair result to control plane. +// If the repair action is CIA_INTERACT, then the control plane will reply current dRPC +// firstly, and then interact with the admin for the repair decision in another section +// and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. +// +// If the CheckReport::msg is not enough to help admin to make the decision, then we +// may have to leverage DAOS debug tools to dump more information from related target. +type CheckReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq uint64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // DAOS Check event sequence, unique for the instance. + Class CheckInconsistClass `protobuf:"varint,2,opt,name=class,proto3,enum=chk.CheckInconsistClass" json:"class,omitempty"` // Inconsistency class + Action CheckInconsistAction `protobuf:"varint,3,opt,name=action,proto3,enum=chk.CheckInconsistAction" json:"action,omitempty"` // The action taken to repair the inconsistency + Repaired bool `protobuf:"varint,4,opt,name=repaired,proto3" json:"repaired,omitempty"` // Repaired or not, meaningless if the action is CIA_INTERACT. + Rank uint32 `protobuf:"varint,5,opt,name=rank,proto3" json:"rank,omitempty"` // Inconsistency happened on which rank if applicable. + Target uint32 `protobuf:"varint,6,opt,name=target,proto3" json:"target,omitempty"` // Inconsistency happened on which target in the rank if applicable. + PoolUuid string `protobuf:"bytes,7,opt,name=pool_uuid,json=poolUuid,proto3" json:"pool_uuid,omitempty"` // The consistency is in which pool if applicable. + ContUuid string `protobuf:"bytes,8,opt,name=cont_uuid,json=contUuid,proto3" json:"cont_uuid,omitempty"` // The consistency is in which container if applicable. + Objid string `protobuf:"bytes,9,opt,name=objid,proto3" json:"objid,omitempty"` // The consistency is in which object if applicable. + Dkey string `protobuf:"bytes,10,opt,name=dkey,proto3" json:"dkey,omitempty"` // The consistency is in which dkey if applicable. + Akey string `protobuf:"bytes,11,opt,name=akey,proto3" json:"akey,omitempty"` // The consistency is in which akey if applicable. + Timestamp string `protobuf:"bytes,12,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // The time of report (and repair) the inconsistency. + Msg string `protobuf:"bytes,13,opt,name=msg,proto3" json:"msg,omitempty"` // Information to describe the inconsistency in detail. + Actions []CheckInconsistAction `protobuf:"varint,14,rep,packed,name=actions,proto3,enum=chk.CheckInconsistAction" json:"actions,omitempty"` // Potential actions to be made in interaction mode. + Details []string `protobuf:"bytes,15,rep,name=details,proto3" json:"details,omitempty"` // Details for each potential action (length should match actions) +} + +func (x *CheckReport) Reset() { + *x = CheckReport{} + if protoimpl.UnsafeEnabled { + mi := &file_chk_chk_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckReport) ProtoMessage() {} + +func (x *CheckReport) ProtoReflect() protoreflect.Message { + mi := &file_chk_chk_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 CheckReport.ProtoReflect.Descriptor instead. +func (*CheckReport) Descriptor() ([]byte, []int) { + return file_chk_chk_proto_rawDescGZIP(), []int{0} +} + +func (x *CheckReport) GetSeq() uint64 { + if x != nil { + return x.Seq + } + return 0 +} + +func (x *CheckReport) GetClass() CheckInconsistClass { + if x != nil { + return x.Class + } + return CheckInconsistClass_CIC_NONE +} + +func (x *CheckReport) GetAction() CheckInconsistAction { + if x != nil { + return x.Action + } + return CheckInconsistAction_CIA_DEFAULT +} + +func (x *CheckReport) GetRepaired() bool { + if x != nil { + return x.Repaired + } + return false +} + +func (x *CheckReport) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *CheckReport) GetTarget() uint32 { + if x != nil { + return x.Target + } + return 0 +} + +func (x *CheckReport) GetPoolUuid() string { + if x != nil { + return x.PoolUuid + } + return "" +} + +func (x *CheckReport) GetContUuid() string { + if x != nil { + return x.ContUuid + } + return "" +} + +func (x *CheckReport) GetObjid() string { + if x != nil { + return x.Objid + } + return "" +} + +func (x *CheckReport) GetDkey() string { + if x != nil { + return x.Dkey + } + return "" +} + +func (x *CheckReport) GetAkey() string { + if x != nil { + return x.Akey + } + return "" +} + +func (x *CheckReport) GetTimestamp() string { + if x != nil { + return x.Timestamp + } + return "" +} + +func (x *CheckReport) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *CheckReport) GetActions() []CheckInconsistAction { + if x != nil { + return x.Actions + } + return nil +} + +func (x *CheckReport) GetDetails() []string { + if x != nil { + return x.Details + } + return nil +} + +var File_chk_chk_proto protoreflect.FileDescriptor + +var file_chk_chk_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x03, 0x63, 0x68, 0x6b, 0x22, 0xc1, 0x03, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 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, + 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 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, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, + 0x62, 0x6a, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 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, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2a, 0xcc, 0x04, 0x0a, 0x13, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x49, 0x43, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x21, + 0x0a, 0x1d, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, + 0x53, 0x56, 0x43, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x51, 0x55, 0x4f, 0x52, 0x55, 0x4d, 0x10, + 0x01, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x45, + 0x53, 0x53, 0x5f, 0x53, 0x56, 0x43, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x51, + 0x55, 0x4f, 0x52, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, 0x43, 0x5f, 0x50, + 0x4f, 0x4f, 0x4c, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x53, 0x56, 0x43, 0x10, 0x03, 0x12, 0x1b, + 0x0a, 0x17, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, + 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x4d, 0x53, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x43, + 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, 0x54, + 0x5f, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, + 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x53, 0x56, 0x43, + 0x4c, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x42, 0x41, 0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x43, + 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, + 0x53, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x43, + 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x5f, 0x49, + 0x4e, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x49, 0x43, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x54, 0x4f, + 0x52, 0x41, 0x47, 0x45, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x58, 0x49, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x50, + 0x53, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x5f, + 0x42, 0x41, 0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x43, + 0x49, 0x43, 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x55, 0x50, 0x54, 0x45, 0x44, + 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x49, 0x43, 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x4f, 0x52, + 0x50, 0x48, 0x41, 0x4e, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x49, 0x43, 0x5f, 0x43, 0x53, + 0x55, 0x4d, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x43, + 0x5f, 0x43, 0x53, 0x55, 0x4d, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x10, 0x12, + 0x14, 0x0a, 0x10, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, + 0x52, 0x45, 0x50, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, + 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x44, 0x10, 0x12, + 0x12, 0x18, 0x0a, 0x14, 0x43, 0x49, 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x4c, 0x4f, 0x53, 0x54, + 0x5f, 0x45, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x13, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x49, + 0x43, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4e, + 0x53, 0x49, 0x53, 0x54, 0x10, 0x14, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x43, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x64, 0x2a, 0x97, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x41, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, + 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x41, 0x43, + 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, 0x41, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, + 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x41, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, + 0x52, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x49, 0x41, 0x5f, 0x52, 0x45, 0x41, 0x44, + 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, + 0x5f, 0x4d, 0x53, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, + 0x53, 0x54, 0x5f, 0x50, 0x53, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x41, 0x5f, 0x54, + 0x52, 0x55, 0x53, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x10, 0x07, 0x12, 0x16, 0x0a, + 0x12, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x4a, 0x4f, 0x52, + 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, + 0x53, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x53, 0x54, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x43, + 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x4f, 0x4c, 0x44, 0x45, 0x53, 0x54, 0x10, + 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x45, + 0x43, 0x5f, 0x50, 0x41, 0x52, 0x49, 0x54, 0x59, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x49, + 0x41, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x45, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, + 0x0c, 0x2a, 0x52, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, + 0x46, 0x5f, 0x44, 0x52, 0x59, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x46, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x46, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x46, 0x5f, 0x41, + 0x55, 0x54, 0x4f, 0x10, 0x08, 0x2a, 0x85, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, + 0x6e, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x49, 0x53, + 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x53, 0x5f, 0x52, + 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x49, 0x53, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, + 0x49, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, + 0x43, 0x49, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, + 0x43, 0x49, 0x53, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, + 0x43, 0x49, 0x53, 0x5f, 0x43, 0x52, 0x41, 0x53, 0x48, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x78, 0x0a, + 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x50, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x50, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x50, 0x53, 0x5f, 0x43, 0x48, 0x45, + 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x50, 0x53, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x50, 0x53, 0x5f, 0x50, 0x41, + 0x55, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x50, 0x53, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x2a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x53, + 0x50, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, + 0x53, 0x50, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x01, 0x12, 0x10, + 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, 0x53, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x43, 0x4c, 0x45, + 0x41, 0x4e, 0x55, 0x50, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x53, 0x50, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x53, 0x50, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x10, 0x05, 0x12, + 0x12, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x5f, 0x44, 0x54, 0x58, 0x5f, 0x52, 0x45, 0x53, 0x59, 0x4e, + 0x43, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x53, 0x50, 0x5f, 0x4f, 0x42, 0x4a, 0x5f, 0x53, + 0x43, 0x52, 0x55, 0x42, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x5f, 0x52, 0x45, + 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x53, 0x50, 0x5f, 0x41, + 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x53, 0x50, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x0a, 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, 0x68, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_chk_chk_proto_rawDescOnce sync.Once + file_chk_chk_proto_rawDescData = file_chk_chk_proto_rawDesc +) + +func file_chk_chk_proto_rawDescGZIP() []byte { + file_chk_chk_proto_rawDescOnce.Do(func() { + file_chk_chk_proto_rawDescData = protoimpl.X.CompressGZIP(file_chk_chk_proto_rawDescData) + }) + return file_chk_chk_proto_rawDescData +} + +var file_chk_chk_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_chk_chk_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_chk_chk_proto_goTypes = []interface{}{ + (CheckInconsistClass)(0), // 0: chk.CheckInconsistClass + (CheckInconsistAction)(0), // 1: chk.CheckInconsistAction + (CheckFlag)(0), // 2: chk.CheckFlag + (CheckInstStatus)(0), // 3: chk.CheckInstStatus + (CheckPoolStatus)(0), // 4: chk.CheckPoolStatus + (CheckScanPhase)(0), // 5: chk.CheckScanPhase + (*CheckReport)(nil), // 6: chk.CheckReport +} +var file_chk_chk_proto_depIdxs = []int32{ + 0, // 0: chk.CheckReport.class:type_name -> chk.CheckInconsistClass + 1, // 1: chk.CheckReport.action:type_name -> chk.CheckInconsistAction + 1, // 2: chk.CheckReport.actions:type_name -> chk.CheckInconsistAction + 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 +} + +func init() { file_chk_chk_proto_init() } +func file_chk_chk_proto_init() { + if File_chk_chk_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_chk_chk_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckReport); 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_chk_chk_proto_rawDesc, + NumEnums: 6, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_chk_chk_proto_goTypes, + DependencyIndexes: file_chk_chk_proto_depIdxs, + EnumInfos: file_chk_chk_proto_enumTypes, + MessageInfos: file_chk_chk_proto_msgTypes, + }.Build() + File_chk_chk_proto = out.File + file_chk_chk_proto_rawDesc = nil + file_chk_chk_proto_goTypes = nil + file_chk_chk_proto_depIdxs = nil +} diff --git a/src/control/common/proto/mgmt/check.pb.go b/src/control/common/proto/mgmt/check.pb.go index cd8b3a5eb4c..c92e0a2902c 100644 --- a/src/control/common/proto/mgmt/check.pb.go +++ b/src/control/common/proto/mgmt/check.pb.go @@ -13,6 +13,7 @@ package mgmt 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" @@ -36,8 +37,8 @@ type CheckInconsistPolicy struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - InconsistCas uint32 `protobuf:"varint,1,opt,name=inconsist_cas,json=inconsistCas,proto3" json:"inconsist_cas,omitempty"` // See CheckInconsistClass. - InconsistAct uint32 `protobuf:"varint,2,opt,name=inconsist_act,json=inconsistAct,proto3" json:"inconsist_act,omitempty"` // See CheckInconsistAction. + InconsistCas chk.CheckInconsistClass `protobuf:"varint,1,opt,name=inconsist_cas,json=inconsistCas,proto3,enum=chk.CheckInconsistClass" json:"inconsist_cas,omitempty"` // See CheckInconsistClass. + InconsistAct chk.CheckInconsistAction `protobuf:"varint,2,opt,name=inconsist_act,json=inconsistAct,proto3,enum=chk.CheckInconsistAction" json:"inconsist_act,omitempty"` // See CheckInconsistAction. } func (x *CheckInconsistPolicy) Reset() { @@ -72,18 +73,18 @@ func (*CheckInconsistPolicy) Descriptor() ([]byte, []int) { return file_mgmt_check_proto_rawDescGZIP(), []int{0} } -func (x *CheckInconsistPolicy) GetInconsistCas() uint32 { +func (x *CheckInconsistPolicy) GetInconsistCas() chk.CheckInconsistClass { if x != nil { return x.InconsistCas } - return 0 + return chk.CheckInconsistClass_CIC_NONE } -func (x *CheckInconsistPolicy) GetInconsistAct() uint32 { +func (x *CheckInconsistPolicy) GetInconsistAct() chk.CheckInconsistAction { if x != nil { return x.InconsistAct } - return 0 + return chk.CheckInconsistAction_CIA_DEFAULT } // For 'dmg check start'. @@ -523,9 +524,9 @@ type CheckQueryTarget struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Rank uint32 `protobuf:"varint,1,opt,name=rank,proto3" json:"rank,omitempty"` // Rank ID. - Target uint32 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"` // Target index in the rank. - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // Check instance status on this target - see CheckInstStatus. + Rank uint32 `protobuf:"varint,1,opt,name=rank,proto3" json:"rank,omitempty"` // Rank ID. + Target uint32 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"` // Target index in the rank. + Status chk.CheckInstStatus `protobuf:"varint,3,opt,name=status,proto3,enum=chk.CheckInstStatus" json:"status,omitempty"` // Check instance status on this target - see CheckInstStatus. // Inconsistency statistics during the phases range // [CSP_DTX_RESYNC, OSP_AGGREGATION] for the pool shard on the target. Inconsistency *CheckQueryInconsist `protobuf:"bytes,4,opt,name=inconsistency,proto3" json:"inconsistency,omitempty"` @@ -579,11 +580,11 @@ func (x *CheckQueryTarget) GetTarget() uint32 { return 0 } -func (x *CheckQueryTarget) GetStatus() uint32 { +func (x *CheckQueryTarget) GetStatus() chk.CheckInstStatus { if x != nil { return x.Status } - return 0 + return chk.CheckInstStatus_CIS_INIT } func (x *CheckQueryTarget) GetInconsistency() *CheckQueryInconsist { @@ -606,9 +607,9 @@ type CheckQueryPool struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // Pool UUID. - Status uint32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` // Pool status - see CheckPoolStatus. - Phase uint32 `protobuf:"varint,3,opt,name=phase,proto3" json:"phase,omitempty"` // Scan phase - see CheckScanPhase. + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // Pool UUID. + Status chk.CheckPoolStatus `protobuf:"varint,2,opt,name=status,proto3,enum=chk.CheckPoolStatus" json:"status,omitempty"` // Pool status - see CheckPoolStatus. + Phase chk.CheckScanPhase `protobuf:"varint,3,opt,name=phase,proto3,enum=chk.CheckScanPhase" json:"phase,omitempty"` // Scan phase - see CheckScanPhase. // Inconsistency statistics during the phases range // [CSP_POOL_MBS, CSP_CONT_CLEANUP] for the pool. Inconsistency *CheckQueryInconsist `protobuf:"bytes,4,opt,name=inconsistency,proto3" json:"inconsistency,omitempty"` @@ -657,18 +658,18 @@ func (x *CheckQueryPool) GetUuid() string { return "" } -func (x *CheckQueryPool) GetStatus() uint32 { +func (x *CheckQueryPool) GetStatus() chk.CheckPoolStatus { if x != nil { return x.Status } - return 0 + return chk.CheckPoolStatus_CPS_UNCHECKED } -func (x *CheckQueryPool) GetPhase() uint32 { +func (x *CheckQueryPool) GetPhase() chk.CheckScanPhase { if x != nil { return x.Phase } - return 0 + return chk.CheckScanPhase_CSP_PREPARE } func (x *CheckQueryPool) GetInconsistency() *CheckQueryInconsist { @@ -705,12 +706,12 @@ type CheckQueryResp struct { // As long as one target is in CIS_RUNNING, then the instance is CIS_RUNNING. // Otherwise, in turn with the status of CIS_FAILED, CIS_CRASHED, CIS_PAUSED, // CIS_STOPPED, CIS_COMPLETED. - InsStatus uint32 `protobuf:"varint,2,opt,name=ins_status,json=insStatus,proto3" json:"ins_status,omitempty"` + InsStatus chk.CheckInstStatus `protobuf:"varint,2,opt,name=ins_status,json=insStatus,proto3,enum=chk.CheckInstStatus" json:"ins_status,omitempty"` // Scan phase - see CheckScanPhase. Before moving to CSP_POOL_MBS, the check // instance status is maintained on the check leader. And then multiple pools // can be processed in parallel, so the instance phase for different pools may // be different, see CheckQueryPool::phase. - InsPhase uint32 `protobuf:"varint,3,opt,name=ins_phase,json=insPhase,proto3" json:"ins_phase,omitempty"` + InsPhase chk.CheckScanPhase `protobuf:"varint,3,opt,name=ins_phase,json=insPhase,proto3,enum=chk.CheckScanPhase" json:"ins_phase,omitempty"` // Inconsistency statistics during the phases range // [CSP_PREPARE, CSP_POOL_LIST] for the whole system. Inconsistency *CheckQueryInconsist `protobuf:"bytes,4,opt,name=inconsistency,proto3" json:"inconsistency,omitempty"` @@ -718,6 +719,8 @@ type CheckQueryResp struct { Time *CheckQueryTime `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"` // Per pool based query result for the phases since CSP_POOL_MBS. 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"` } func (x *CheckQueryResp) Reset() { @@ -759,18 +762,18 @@ func (x *CheckQueryResp) GetReqStatus() int32 { return 0 } -func (x *CheckQueryResp) GetInsStatus() uint32 { +func (x *CheckQueryResp) GetInsStatus() chk.CheckInstStatus { if x != nil { return x.InsStatus } - return 0 + return chk.CheckInstStatus_CIS_INIT } -func (x *CheckQueryResp) GetInsPhase() uint32 { +func (x *CheckQueryResp) GetInsPhase() chk.CheckScanPhase { if x != nil { return x.InsPhase } - return 0 + return chk.CheckScanPhase_CSP_PREPARE } func (x *CheckQueryResp) GetInconsistency() *CheckQueryInconsist { @@ -794,6 +797,13 @@ func (x *CheckQueryResp) GetPools() []*CheckQueryPool { return nil } +func (x *CheckQueryResp) GetReports() []*chk.CheckReport { + if x != nil { + return x.Reports + } + return nil +} + // For 'dmg check prop' type CheckPropReq struct { state protoimpl.MessageState @@ -916,8 +926,8 @@ type CheckActReq struct { // DAOS RAS event sequence - see RASEvent::extended_info::check_info::chk_inconsist_seq. Seq uint64 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"` // The decision from RASEvent::extended_info::check_info::chk_opts. - Act uint32 `protobuf:"varint,3,opt,name=act,proto3" json:"act,omitempty"` - ForAll bool `protobuf:"varint,4,opt,name=for_all,json=forAll,proto3" json:"for_all,omitempty"` // The same action is applicable to the same type of inconsistency. + Act chk.CheckInconsistAction `protobuf:"varint,3,opt,name=act,proto3,enum=chk.CheckInconsistAction" json:"act,omitempty"` + ForAll bool `protobuf:"varint,4,opt,name=for_all,json=forAll,proto3" json:"for_all,omitempty"` // The same action is applicable to the same type of inconsistency. } func (x *CheckActReq) Reset() { @@ -966,11 +976,11 @@ func (x *CheckActReq) GetSeq() uint64 { return 0 } -func (x *CheckActReq) GetAct() uint32 { +func (x *CheckActReq) GetAct() chk.CheckInconsistAction { if x != nil { return x.Act } - return 0 + return chk.CheckInconsistAction_CIA_DEFAULT } func (x *CheckActReq) GetForAll() bool { @@ -1032,114 +1042,129 @@ var File_mgmt_check_proto protoreflect.FileDescriptor var file_mgmt_check_proto_rawDesc = []byte{ 0x0a, 0x10, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x67, 0x6d, 0x74, 0x22, 0x60, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, + 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x67, 0x6d, 0x74, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x61, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0d, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x75, - 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, - 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x05, 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, 0x28, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x53, 0x74, 0x61, 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, 0x36, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x70, 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, 0x75, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x0d, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x53, 0x74, 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, 0x22, 0x37, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, - 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, 0x75, 0x75, 0x69, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x0e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x69, 0x73, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x6d, 0x69, 0x73, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x13, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, - 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, - 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, - 0x28, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 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, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, - 0x28, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x69, 0x6d, 0x65, 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, 0x82, 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, 0x1d, 0x0a, - 0x0a, 0x69, 0x6e, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x69, 0x6e, 0x73, 0x5f, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x69, 0x6e, 0x73, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x6e, 0x63, + 0x12, 0x3d, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x61, + 0x73, 0x18, 0x01, 0x20, 0x01, 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, 0x0c, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, 0x12, + 0x3e, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x18, 0x02, 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, 0x0c, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x22, + 0x9b, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 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, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, + 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x75, 0x75, 0x69, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x18, 0x05, 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, 0x28, 0x0a, + 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x61, 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, 0x36, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x53, 0x74, 0x6f, 0x70, 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, 0x75, 0x75, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x22, + 0x27, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 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, 0x22, 0x37, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x51, 0x75, 0x65, 0x72, 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, 0x75, + 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, + 0x73, 0x22, 0x4c, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x73, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x73, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x79, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x10, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, + 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x68, + 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 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, 0x5c, 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, 0x10, 0x0a, 0x03, - 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x63, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x66, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 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, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, + 0x65, 0x72, 0x79, 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, 0x2c, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x68, + 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, + 0x68, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 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, 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, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x6b, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x69, + 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x5f, + 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x68, + 0x6b, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 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, 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, 0x77, 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, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x6c, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 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 ( @@ -1156,38 +1181,53 @@ func file_mgmt_check_proto_rawDescGZIP() []byte { var file_mgmt_check_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_mgmt_check_proto_goTypes = []interface{}{ - (*CheckInconsistPolicy)(nil), // 0: mgmt.CheckInconsistPolicy - (*CheckStartReq)(nil), // 1: mgmt.CheckStartReq - (*CheckStartResp)(nil), // 2: mgmt.CheckStartResp - (*CheckStopReq)(nil), // 3: mgmt.CheckStopReq - (*CheckStopResp)(nil), // 4: mgmt.CheckStopResp - (*CheckQueryReq)(nil), // 5: mgmt.CheckQueryReq - (*CheckQueryTime)(nil), // 6: mgmt.CheckQueryTime - (*CheckQueryInconsist)(nil), // 7: mgmt.CheckQueryInconsist - (*CheckQueryTarget)(nil), // 8: mgmt.CheckQueryTarget - (*CheckQueryPool)(nil), // 9: mgmt.CheckQueryPool - (*CheckQueryResp)(nil), // 10: mgmt.CheckQueryResp - (*CheckPropReq)(nil), // 11: mgmt.CheckPropReq - (*CheckPropResp)(nil), // 12: mgmt.CheckPropResp - (*CheckActReq)(nil), // 13: mgmt.CheckActReq - (*CheckActResp)(nil), // 14: mgmt.CheckActResp + (*CheckInconsistPolicy)(nil), // 0: mgmt.CheckInconsistPolicy + (*CheckStartReq)(nil), // 1: mgmt.CheckStartReq + (*CheckStartResp)(nil), // 2: mgmt.CheckStartResp + (*CheckStopReq)(nil), // 3: mgmt.CheckStopReq + (*CheckStopResp)(nil), // 4: mgmt.CheckStopResp + (*CheckQueryReq)(nil), // 5: mgmt.CheckQueryReq + (*CheckQueryTime)(nil), // 6: mgmt.CheckQueryTime + (*CheckQueryInconsist)(nil), // 7: mgmt.CheckQueryInconsist + (*CheckQueryTarget)(nil), // 8: mgmt.CheckQueryTarget + (*CheckQueryPool)(nil), // 9: mgmt.CheckQueryPool + (*CheckQueryResp)(nil), // 10: mgmt.CheckQueryResp + (*CheckPropReq)(nil), // 11: mgmt.CheckPropReq + (*CheckPropResp)(nil), // 12: mgmt.CheckPropResp + (*CheckActReq)(nil), // 13: mgmt.CheckActReq + (*CheckActResp)(nil), // 14: mgmt.CheckActResp + (chk.CheckInconsistClass)(0), // 15: chk.CheckInconsistClass + (chk.CheckInconsistAction)(0), // 16: chk.CheckInconsistAction + (chk.CheckInstStatus)(0), // 17: chk.CheckInstStatus + (chk.CheckPoolStatus)(0), // 18: chk.CheckPoolStatus + (chk.CheckScanPhase)(0), // 19: chk.CheckScanPhase + (*chk.CheckReport)(nil), // 20: chk.CheckReport } var file_mgmt_check_proto_depIdxs = []int32{ - 0, // 0: mgmt.CheckStartReq.policies:type_name -> mgmt.CheckInconsistPolicy - 7, // 1: mgmt.CheckQueryTarget.inconsistency:type_name -> mgmt.CheckQueryInconsist - 6, // 2: mgmt.CheckQueryTarget.time:type_name -> mgmt.CheckQueryTime - 7, // 3: mgmt.CheckQueryPool.inconsistency:type_name -> mgmt.CheckQueryInconsist - 6, // 4: mgmt.CheckQueryPool.time:type_name -> mgmt.CheckQueryTime - 8, // 5: mgmt.CheckQueryPool.targets:type_name -> mgmt.CheckQueryTarget - 7, // 6: mgmt.CheckQueryResp.inconsistency:type_name -> mgmt.CheckQueryInconsist - 6, // 7: mgmt.CheckQueryResp.time:type_name -> mgmt.CheckQueryTime - 9, // 8: mgmt.CheckQueryResp.pools:type_name -> mgmt.CheckQueryPool - 0, // 9: mgmt.CheckPropResp.policies:type_name -> mgmt.CheckInconsistPolicy - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 15, // 0: mgmt.CheckInconsistPolicy.inconsist_cas:type_name -> chk.CheckInconsistClass + 16, // 1: mgmt.CheckInconsistPolicy.inconsist_act:type_name -> chk.CheckInconsistAction + 0, // 2: mgmt.CheckStartReq.policies:type_name -> mgmt.CheckInconsistPolicy + 17, // 3: mgmt.CheckQueryTarget.status:type_name -> chk.CheckInstStatus + 7, // 4: mgmt.CheckQueryTarget.inconsistency:type_name -> mgmt.CheckQueryInconsist + 6, // 5: mgmt.CheckQueryTarget.time:type_name -> mgmt.CheckQueryTime + 18, // 6: mgmt.CheckQueryPool.status:type_name -> chk.CheckPoolStatus + 19, // 7: mgmt.CheckQueryPool.phase:type_name -> chk.CheckScanPhase + 7, // 8: mgmt.CheckQueryPool.inconsistency:type_name -> mgmt.CheckQueryInconsist + 6, // 9: mgmt.CheckQueryPool.time:type_name -> mgmt.CheckQueryTime + 8, // 10: mgmt.CheckQueryPool.targets:type_name -> mgmt.CheckQueryTarget + 17, // 11: mgmt.CheckQueryResp.ins_status:type_name -> chk.CheckInstStatus + 19, // 12: mgmt.CheckQueryResp.ins_phase:type_name -> chk.CheckScanPhase + 7, // 13: mgmt.CheckQueryResp.inconsistency:type_name -> mgmt.CheckQueryInconsist + 6, // 14: mgmt.CheckQueryResp.time:type_name -> mgmt.CheckQueryTime + 9, // 15: mgmt.CheckQueryResp.pools:type_name -> mgmt.CheckQueryPool + 20, // 16: mgmt.CheckQueryResp.reports:type_name -> chk.CheckReport + 0, // 17: mgmt.CheckPropResp.policies:type_name -> mgmt.CheckInconsistPolicy + 16, // 18: mgmt.CheckActReq.act:type_name -> chk.CheckInconsistAction + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_mgmt_check_proto_init() } diff --git a/src/control/common/proto/srv/srv.pb.go b/src/control/common/proto/srv/srv.pb.go index b8753959aaf..4d9869132e7 100644 --- a/src/control/common/proto/srv/srv.pb.go +++ b/src/control/common/proto/srv/srv.pb.go @@ -15,6 +15,7 @@ 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" @@ -746,32 +747,12 @@ func (x *CheckDeregPoolResp) GetStatus() int32 { return 0 } -// DAOS check engine reports the found inconsistency and repair result to control plane. -// If the repair action is CIA_INTERACT, then the control plane will reply current dRPC -// firstly, and then interact with the admin for the repair decision in another section -// and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. -// -// If the CheckReportReq::msg is not enough to help admin to make the decision, then we -// may have to leverage DAOS debug tools to dump more information from related target. type CheckReportReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Seq uint64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // DAOS Check event sequence, unique for the instance. - Class uint64 `protobuf:"varint,2,opt,name=class,proto3" json:"class,omitempty"` // Inconsistency class - see CheckInconsistClass. - Action uint32 `protobuf:"varint,3,opt,name=action,proto3" json:"action,omitempty"` // The action to repair the inconsistency - see CheckInconsistAction. - Repaired bool `protobuf:"varint,4,opt,name=repaired,proto3" json:"repaired,omitempty"` // Repaired or not, meaningless if the action is CIA_INTERACT. - Rank uint32 `protobuf:"varint,5,opt,name=rank,proto3" json:"rank,omitempty"` // Inconsistency happened on which rank if applicable. - Target uint32 `protobuf:"varint,6,opt,name=target,proto3" json:"target,omitempty"` // Inconsistency happened on which target in the rank if applicable. - PoolUuid string `protobuf:"bytes,7,opt,name=pool_uuid,json=poolUuid,proto3" json:"pool_uuid,omitempty"` // The consistency is in which pool if applicable. - ContUuid string `protobuf:"bytes,8,opt,name=cont_uuid,json=contUuid,proto3" json:"cont_uuid,omitempty"` // The consistency is in which container if applicable. - Objid string `protobuf:"bytes,9,opt,name=objid,proto3" json:"objid,omitempty"` // The consistency is in which object if applicable. - Dkey string `protobuf:"bytes,10,opt,name=dkey,proto3" json:"dkey,omitempty"` // The consistency is in which dkey if applicable. - Akey string `protobuf:"bytes,11,opt,name=akey,proto3" json:"akey,omitempty"` // The consistency is in which akey if applicable. - Timestamp string `protobuf:"bytes,12,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // The time of report (and repair) the inconsistency. - Msg string `protobuf:"bytes,13,opt,name=msg,proto3" json:"msg,omitempty"` // Information to describe the inconsistency in detail. - Options []string `protobuf:"bytes,14,rep,name=options,proto3" json:"options,omitempty"` // Options list for interaction mode. + Report *chk.CheckReport `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"` // Report payload } func (x *CheckReportReq) Reset() { @@ -806,100 +787,9 @@ func (*CheckReportReq) Descriptor() ([]byte, []int) { return file_srv_srv_proto_rawDescGZIP(), []int{12} } -func (x *CheckReportReq) GetSeq() uint64 { - if x != nil { - return x.Seq - } - return 0 -} - -func (x *CheckReportReq) GetClass() uint64 { - if x != nil { - return x.Class - } - return 0 -} - -func (x *CheckReportReq) GetAction() uint32 { +func (x *CheckReportReq) GetReport() *chk.CheckReport { if x != nil { - return x.Action - } - return 0 -} - -func (x *CheckReportReq) GetRepaired() bool { - if x != nil { - return x.Repaired - } - return false -} - -func (x *CheckReportReq) GetRank() uint32 { - if x != nil { - return x.Rank - } - return 0 -} - -func (x *CheckReportReq) GetTarget() uint32 { - if x != nil { - return x.Target - } - return 0 -} - -func (x *CheckReportReq) GetPoolUuid() string { - if x != nil { - return x.PoolUuid - } - return "" -} - -func (x *CheckReportReq) GetContUuid() string { - if x != nil { - return x.ContUuid - } - return "" -} - -func (x *CheckReportReq) GetObjid() string { - if x != nil { - return x.Objid - } - return "" -} - -func (x *CheckReportReq) GetDkey() string { - if x != nil { - return x.Dkey - } - return "" -} - -func (x *CheckReportReq) GetAkey() string { - if x != nil { - return x.Akey - } - return "" -} - -func (x *CheckReportReq) GetTimestamp() string { - if x != nil { - return x.Timestamp - } - return "" -} - -func (x *CheckReportReq) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *CheckReportReq) GetOptions() []string { - if x != nil { - return x.Options + return x.Report } return nil } @@ -1018,106 +908,89 @@ 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, 0x22, 0xdd, 0x01, 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, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x0b, 0x42, 0x69, 0x6f, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x45, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x45, 0x72, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x45, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x45, 0x72, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x45, 0x72, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x45, 0x72, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x67, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x67, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x12, 0x2a, + 0x03, 0x73, 0x72, 0x76, 0x1a, 0x0d, 0x63, 0x68, 0x6b, 0x2f, 0x63, 0x68, 0x6b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xdd, 0x01, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 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, + 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, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x0b, 0x42, 0x69, 0x6f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x45, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x45, 0x72, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x45, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x45, 0x72, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x45, 0x72, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x45, 0x72, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x67, 0x74, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x67, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x78, 0x12, 0x2a, 0x0a, + 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x63, + 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x72, 0x70, 0x63, 0x4c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 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, 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, 0xda, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6f, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x69, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x6b, - 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x61, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 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, 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, + 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, 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 ( @@ -1149,14 +1022,16 @@ var file_srv_srv_proto_goTypes = []interface{}{ (*CheckReportReq)(nil), // 12: srv.CheckReportReq (*CheckReportResp)(nil), // 13: srv.CheckReportResp (*CheckListPoolResp_OnePool)(nil), // 14: srv.CheckListPoolResp.OnePool + (*chk.CheckReport)(nil), // 15: chk.CheckReport } var file_srv_srv_proto_depIdxs = []int32{ 14, // 0: srv.CheckListPoolResp.pools:type_name -> srv.CheckListPoolResp.OnePool - 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 + 15, // 1: srv.CheckReportReq.report:type_name -> chk.CheckReport + 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() } diff --git a/src/engine/SConscript b/src/engine/SConscript index 1288930d975..9044b38fdd5 100644 --- a/src/engine/SConscript +++ b/src/engine/SConscript @@ -10,6 +10,7 @@ def scons(): denv = env.Clone() + denv.AppendUnique(CPPPATH=[Dir('..').srcnode()]) denv.Append(CPPDEFINES=['-DDAOS_PMEM_BUILD']) libraries = ['daos_common_pmem', 'gurt', 'cart', 'vos_srv'] libraries += ['bio', 'dl', 'uuid', 'pthread', 'abt'] diff --git a/src/engine/srv.pb-c.c b/src/engine/srv.pb-c.c index bb915d48b51..f71153e5cb7 100644 --- a/src/engine/srv.pb-c.c +++ b/src/engine/srv.pb-c.c @@ -1403,197 +1403,28 @@ 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[14] = +static const ProtobufCFieldDescriptor srv__check_report_req__field_descriptors[1] = { { - "seq", + "report", 1, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, seq), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "class", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, class_), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "action", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, action), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "repaired", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, repaired), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rank", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, rank), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "target", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, target), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pool_uuid", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, pool_uuid), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cont_uuid", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, cont_uuid), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "objid", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, objid), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dkey", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, dkey), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "akey", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, akey), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "timestamp", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, timestamp), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "msg", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_STRING, + PROTOBUF_C_TYPE_MESSAGE, 0, /* quantifier_offset */ - offsetof(Srv__CheckReportReq, msg), - NULL, - &protobuf_c_empty_string, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "options", - 14, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_STRING, - offsetof(Srv__CheckReportReq, n_options), - offsetof(Srv__CheckReportReq, options), + offsetof(Srv__CheckReportReq, report), + &chk__check_report__descriptor, NULL, - &protobuf_c_empty_string, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; static const unsigned srv__check_report_req__field_indices_by_name[] = { - 2, /* field[2] = action */ - 10, /* field[10] = akey */ - 1, /* field[1] = class */ - 7, /* field[7] = cont_uuid */ - 9, /* field[9] = dkey */ - 12, /* field[12] = msg */ - 8, /* field[8] = objid */ - 13, /* field[13] = options */ - 6, /* field[6] = pool_uuid */ - 4, /* field[4] = rank */ - 3, /* field[3] = repaired */ - 0, /* field[0] = seq */ - 5, /* field[5] = target */ - 11, /* field[11] = timestamp */ + 0, /* field[0] = report */ }; static const ProtobufCIntRange srv__check_report_req__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 14 } + { 0, 1 } }; const ProtobufCMessageDescriptor srv__check_report_req__descriptor = { @@ -1603,7 +1434,7 @@ const ProtobufCMessageDescriptor srv__check_report_req__descriptor = "Srv__CheckReportReq", "srv", sizeof(Srv__CheckReportReq), - 14, + 1, srv__check_report_req__field_descriptors, srv__check_report_req__field_indices_by_name, 1, srv__check_report_req__number_ranges, diff --git a/src/engine/srv.pb-c.h b/src/engine/srv.pb-c.h index c3c77fdd24c..063d3b23b01 100644 --- a/src/engine/srv.pb-c.h +++ b/src/engine/srv.pb-c.h @@ -14,6 +14,7 @@ PROTOBUF_C__BEGIN_DECLS # 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__BioErrorReq Srv__BioErrorReq; @@ -304,78 +305,17 @@ struct _Srv__CheckDeregPoolResp , 0 } -/* - * DAOS check engine reports the found inconsistency and repair result to control plane. - * If the repair action is CIA_INTERACT, then the control plane will reply current dRPC - * firstly, and then interact with the admin for the repair decision in another section - * and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. - * If the CheckReportReq::msg is not enough to help admin to make the decision, then we - * may have to leverage DAOS debug tools to dump more information from related target. - */ struct _Srv__CheckReportReq { ProtobufCMessage base; /* - * DAOS Check event sequence, unique for the instance. - */ - uint64_t seq; - /* - * Inconsistency class - see CheckInconsistClass. - */ - uint64_t class_; - /* - * The action to repair the inconsistency - see CheckInconsistAction. - */ - uint32_t action; - /* - * Repaired or not, meaningless if the action is CIA_INTERACT. - */ - protobuf_c_boolean repaired; - /* - * Inconsistency happened on which rank if applicable. - */ - uint32_t rank; - /* - * Inconsistency happened on which target in the rank if applicable. - */ - uint32_t target; - /* - * The consistency is in which pool if applicable. - */ - char *pool_uuid; - /* - * The consistency is in which container if applicable. - */ - char *cont_uuid; - /* - * The consistency is in which object if applicable. - */ - char *objid; - /* - * The consistency is in which dkey if applicable. - */ - char *dkey; - /* - * The consistency is in which akey if applicable. - */ - char *akey; - /* - * The time of report (and repair) the inconsistency. - */ - char *timestamp; - /* - * Information to describe the inconsistency in detail. - */ - char *msg; - /* - * Options list for interaction mode. + * Report payload */ - size_t n_options; - char **options; + Chk__CheckReport *report; }; #define SRV__CHECK_REPORT_REQ__INIT \ { PROTOBUF_C_MESSAGE_INIT (&srv__check_report_req__descriptor) \ - , 0, 0, 0, 0, 0, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0,NULL } + , NULL } struct _Srv__CheckReportResp diff --git a/src/engine/tests/SConscript b/src/engine/tests/SConscript index 506d108a2b0..18e8f7c1f6c 100644 --- a/src/engine/tests/SConscript +++ b/src/engine/tests/SConscript @@ -34,7 +34,7 @@ def scons(): daos_build.test(unit_env, 'drpc_client_tests', ['drpc_client_tests.c', drpc_test_utils, '../drpc_client.c', '../drpc_ras.c', '../srv.pb-c.c', - '../event.pb-c.c'], + '../event.pb-c.c', '../../chk/chk.pb-c.c'], LIBS=['daos_common', 'protobuf-c', 'gurt', 'cmocka', 'uuid', 'pthread', 'abt', 'cart']) diff --git a/src/mgmt/SConscript b/src/mgmt/SConscript index f972426ffd0..fa47ea2eed7 100644 --- a/src/mgmt/SConscript +++ b/src/mgmt/SConscript @@ -3,20 +3,20 @@ import daos_build def scons(): """Execute build""" - Import('env', 'prereqs') + Import('env', 'prereqs', 'chk_pb') env.AppendUnique(LIBPATH=[Dir('.')]) denv = env.Clone() - denv.AppendUnique(CPPPATH=[Dir('.').srcnode()]) + denv.AppendUnique(CPPPATH=[Dir('.').srcnode(), Dir('..').srcnode()]) prereqs.require(denv, 'protobufc', 'hwloc') #pylint: disable=invalid-name pb = denv.SharedObject(['acl.pb-c.c', 'pool.pb-c.c', 'svc.pb-c.c', 'smd.pb-c.c', 'cont.pb-c.c', 'server.pb-c.c', - 'check.pb-c.c']) + 'check.pb-c.c']) + chk_pb #pylint: enable=invalid-name common = denv.SharedObject(['rpc.c']) + pb diff --git a/src/mgmt/check.pb-c.c b/src/mgmt/check.pb-c.c index 7cadd2114f3..ea515014a75 100644 --- a/src/mgmt/check.pb-c.c +++ b/src/mgmt/check.pb-c.c @@ -688,10 +688,10 @@ static const ProtobufCFieldDescriptor mgmt__check_inconsist_policy__field_descri "inconsist_cas", 1, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckInconsistPolicy, inconsist_cas), - NULL, + &chk__check_inconsist_class__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -700,10 +700,10 @@ static const ProtobufCFieldDescriptor mgmt__check_inconsist_policy__field_descri "inconsist_act", 2, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckInconsistPolicy, inconsist_act), - NULL, + &chk__check_inconsist_action__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1159,10 +1159,10 @@ static const ProtobufCFieldDescriptor mgmt__check_query_target__field_descriptor "status", 3, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckQueryTarget, status), - NULL, + &chk__check_inst_status__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1237,10 +1237,10 @@ static const ProtobufCFieldDescriptor mgmt__check_query_pool__field_descriptors[ "status", 2, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckQueryPool, status), - NULL, + &chk__check_pool_status__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1249,10 +1249,10 @@ static const ProtobufCFieldDescriptor mgmt__check_query_pool__field_descriptors[ "phase", 3, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckQueryPool, phase), - NULL, + &chk__check_scan_phase__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1322,7 +1322,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[6] = +static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[7] = { { "req_status", @@ -1340,10 +1340,10 @@ static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[ "ins_status", 2, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckQueryResp, ins_status), - NULL, + &chk__check_inst_status__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1352,10 +1352,10 @@ static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[ "ins_phase", 3, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckQueryResp, ins_phase), - NULL, + &chk__check_scan_phase__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ @@ -1396,19 +1396,32 @@ static const ProtobufCFieldDescriptor mgmt__check_query_resp__field_descriptors[ 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "reports", + 7, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Mgmt__CheckQueryResp, n_reports), + offsetof(Mgmt__CheckQueryResp, reports), + &chk__check_report__descriptor, + 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 */ 5, /* field[5] = pools */ + 6, /* field[6] = reports */ 0, /* field[0] = req_status */ 4, /* field[4] = time */ }; static const ProtobufCIntRange mgmt__check_query_resp__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 6 } + { 0, 7 } }; const ProtobufCMessageDescriptor mgmt__check_query_resp__descriptor = { @@ -1418,7 +1431,7 @@ const ProtobufCMessageDescriptor mgmt__check_query_resp__descriptor = "Mgmt__CheckQueryResp", "mgmt", sizeof(Mgmt__CheckQueryResp), - 6, + 7, mgmt__check_query_resp__field_descriptors, mgmt__check_query_resp__field_indices_by_name, 1, mgmt__check_query_resp__number_ranges, @@ -1557,10 +1570,10 @@ static const ProtobufCFieldDescriptor mgmt__check_act_req__field_descriptors[4] "act", 3, PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, + PROTOBUF_C_TYPE_ENUM, 0, /* quantifier_offset */ offsetof(Mgmt__CheckActReq, act), - NULL, + &chk__check_inconsist_action__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ diff --git a/src/mgmt/check.pb-c.h b/src/mgmt/check.pb-c.h index 32129fce5c9..8f5c59404df 100644 --- a/src/mgmt/check.pb-c.h +++ b/src/mgmt/check.pb-c.h @@ -10,26 +10,27 @@ 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 1004000 < 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 - -typedef struct Mgmt__CheckInconsistPolicy Mgmt__CheckInconsistPolicy; -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__CheckPropReq Mgmt__CheckPropReq; -typedef struct Mgmt__CheckPropResp Mgmt__CheckPropResp; -typedef struct Mgmt__CheckActReq Mgmt__CheckActReq; -typedef struct Mgmt__CheckActResp Mgmt__CheckActResp; +#include "chk/chk.pb-c.h" + +typedef struct _Mgmt__CheckInconsistPolicy Mgmt__CheckInconsistPolicy; +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__CheckPropReq Mgmt__CheckPropReq; +typedef struct _Mgmt__CheckPropResp Mgmt__CheckPropResp; +typedef struct _Mgmt__CheckActReq Mgmt__CheckActReq; +typedef struct _Mgmt__CheckActResp Mgmt__CheckActResp; /* --- enums --- */ @@ -44,27 +45,27 @@ 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; /* * See CheckInconsistClass. */ - uint32_t inconsist_cas; + Chk__CheckInconsistClass inconsist_cas; /* * See CheckInconsistAction. */ - uint32_t inconsist_act; + Chk__CheckInconsistAction inconsist_act; }; #define MGMT__CHECK_INCONSIST_POLICY__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_inconsist_policy__descriptor) \ - , 0, 0 } + , CHK__CHECK_INCONSIST_CLASS__CIC_NONE, CHK__CHECK_INCONSIST_ACTION__CIA_DEFAULT } /* * For 'dmg check start'. */ -struct Mgmt__CheckStartReq +struct _Mgmt__CheckStartReq { ProtobufCMessage base; /* @@ -104,7 +105,7 @@ struct Mgmt__CheckStartReq /* * CheckStartResp returns the result of check start. */ -struct Mgmt__CheckStartResp +struct _Mgmt__CheckStartResp { ProtobufCMessage base; /* @@ -120,7 +121,7 @@ struct Mgmt__CheckStartResp /* * For 'dmg check stop'. */ -struct Mgmt__CheckStopReq +struct _Mgmt__CheckStopReq { ProtobufCMessage base; /* @@ -142,7 +143,7 @@ struct Mgmt__CheckStopReq /* * CheckStopResp returns the result of check stop. */ -struct Mgmt__CheckStopResp +struct _Mgmt__CheckStopResp { ProtobufCMessage base; /* @@ -158,7 +159,7 @@ struct Mgmt__CheckStopResp /* * For 'dmg check query'. */ -struct Mgmt__CheckQueryReq +struct _Mgmt__CheckQueryReq { ProtobufCMessage base; /* @@ -180,7 +181,7 @@ struct Mgmt__CheckQueryReq /* * Time information on related component: system, pool or target. */ -struct Mgmt__CheckQueryTime +struct _Mgmt__CheckQueryTime { ProtobufCMessage base; /* @@ -202,7 +203,7 @@ struct Mgmt__CheckQueryTime /* * Inconsistency statistics on related component: system, pool or target. */ -struct Mgmt__CheckQueryInconsist +struct _Mgmt__CheckQueryInconsist { ProtobufCMessage base; /* @@ -230,7 +231,7 @@ struct Mgmt__CheckQueryInconsist /* * Check query result for the pool shard on the target. */ -struct Mgmt__CheckQueryTarget +struct _Mgmt__CheckQueryTarget { ProtobufCMessage base; /* @@ -244,7 +245,7 @@ struct Mgmt__CheckQueryTarget /* * Check instance status on this target - see CheckInstStatus. */ - uint32_t status; + Chk__CheckInstStatus status; /* * Inconsistency statistics during the phases range * [CSP_DTX_RESYNC, OSP_AGGREGATION] for the pool shard on the target. @@ -257,13 +258,13 @@ struct Mgmt__CheckQueryTarget }; #define MGMT__CHECK_QUERY_TARGET__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_query_target__descriptor) \ - , 0, 0, 0, NULL, NULL } + , 0, 0, CHK__CHECK_INST_STATUS__CIS_INIT, NULL, NULL } /* * Check query result for the pool. */ -struct Mgmt__CheckQueryPool +struct _Mgmt__CheckQueryPool { ProtobufCMessage base; /* @@ -273,11 +274,11 @@ struct Mgmt__CheckQueryPool /* * Pool status - see CheckPoolStatus. */ - uint32_t status; + Chk__CheckPoolStatus status; /* * Scan phase - see CheckScanPhase. */ - uint32_t phase; + Chk__CheckScanPhase phase; /* * Inconsistency statistics during the phases range * [CSP_POOL_MBS, CSP_CONT_CLEANUP] for the pool. @@ -295,7 +296,7 @@ struct Mgmt__CheckQueryPool }; #define MGMT__CHECK_QUERY_POOL__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_query_pool__descriptor) \ - , (char *)protobuf_c_empty_string, 0, 0, NULL, NULL, 0,NULL } + , (char *)protobuf_c_empty_string, CHK__CHECK_POOL_STATUS__CPS_UNCHECKED, CHK__CHECK_SCAN_PHASE__CSP_PREPARE, NULL, NULL, 0,NULL } /* @@ -303,7 +304,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; /* @@ -316,14 +317,14 @@ struct Mgmt__CheckQueryResp * Otherwise, in turn with the status of CIS_FAILED, CIS_CRASHED, CIS_PAUSED, * CIS_STOPPED, CIS_COMPLETED. */ - uint32_t ins_status; + Chk__CheckInstStatus ins_status; /* * Scan phase - see CheckScanPhase. Before moving to CSP_POOL_MBS, the check * instance status is maintained on the check leader. And then multiple pools * can be processed in parallel, so the instance phase for different pools may * be different, see CheckQueryPool::phase. */ - uint32_t ins_phase; + Chk__CheckScanPhase ins_phase; /* * Inconsistency statistics during the phases range * [CSP_PREPARE, CSP_POOL_LIST] for the whole system. @@ -338,16 +339,21 @@ struct Mgmt__CheckQueryResp */ size_t n_pools; Mgmt__CheckQueryPool **pools; + /* + * Inconsistency reports to be displayed + */ + size_t n_reports; + Chk__CheckReport **reports; }; #define MGMT__CHECK_QUERY_RESP__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_query_resp__descriptor) \ - , 0, 0, 0, NULL, NULL, 0,NULL } + , 0, CHK__CHECK_INST_STATUS__CIS_INIT, CHK__CHECK_SCAN_PHASE__CSP_PREPARE, NULL, NULL, 0,NULL, 0,NULL } /* * For 'dmg check prop' */ -struct Mgmt__CheckPropReq +struct _Mgmt__CheckPropReq { ProtobufCMessage base; /* @@ -363,7 +369,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; /* @@ -388,7 +394,7 @@ struct Mgmt__CheckPropResp /* * For the admin's decision from DAOS check interaction. */ -struct Mgmt__CheckActReq +struct _Mgmt__CheckActReq { ProtobufCMessage base; /* @@ -402,7 +408,7 @@ struct Mgmt__CheckActReq /* * The decision from RASEvent::extended_info::check_info::chk_opts. */ - uint32_t act; + Chk__CheckInconsistAction act; /* * The same action is applicable to the same type of inconsistency. */ @@ -410,13 +416,13 @@ struct Mgmt__CheckActReq }; #define MGMT__CHECK_ACT_REQ__INIT \ { PROTOBUF_C_MESSAGE_INIT (&mgmt__check_act_req__descriptor) \ - , (char *)protobuf_c_empty_string, 0, 0, 0 } + , (char *)protobuf_c_empty_string, 0, CHK__CHECK_INCONSIST_ACTION__CIA_DEFAULT, 0 } /* * CheckActResp returns the result of executing admin's decision. */ -struct Mgmt__CheckActResp +struct _Mgmt__CheckActResp { ProtobufCMessage base; /* diff --git a/src/mgmt/pool.pb-c.c b/src/mgmt/pool.pb-c.c index c813ea7531e..3e83421cf39 100644 --- a/src/mgmt/pool.pb-c.c +++ b/src/mgmt/pool.pb-c.c @@ -1407,7 +1407,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[1 offsetof(Mgmt__PoolCreateReq, faultdomains), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1443,7 +1443,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[1 offsetof(Mgmt__PoolCreateReq, tierratio), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1467,7 +1467,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[1 offsetof(Mgmt__PoolCreateReq, ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1479,7 +1479,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_req__field_descriptors[1 offsetof(Mgmt__PoolCreateReq, tierbytes), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1541,7 +1541,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_resp__field_descriptors[ offsetof(Mgmt__PoolCreateResp, svc_reps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1553,7 +1553,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_resp__field_descriptors[ offsetof(Mgmt__PoolCreateResp, tgt_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1565,7 +1565,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_create_resp__field_descriptors[ offsetof(Mgmt__PoolCreateResp, tier_bytes), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1642,7 +1642,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_destroy_req__field_descriptors[ offsetof(Mgmt__PoolDestroyReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -1745,7 +1745,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_evict_req__field_descriptors[7] offsetof(Mgmt__PoolEvictReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1924,7 +1924,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_exclude_req__field_descriptors[ offsetof(Mgmt__PoolExcludeReq, targetidx), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -1936,7 +1936,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_exclude_req__field_descriptors[ offsetof(Mgmt__PoolExcludeReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2052,7 +2052,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_drain_req__field_descriptors[5] offsetof(Mgmt__PoolDrainReq, targetidx), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2064,7 +2064,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_drain_req__field_descriptors[5] offsetof(Mgmt__PoolDrainReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2168,7 +2168,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6 offsetof(Mgmt__PoolExtendReq, ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2180,7 +2180,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6 offsetof(Mgmt__PoolExtendReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2192,7 +2192,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6 offsetof(Mgmt__PoolExtendReq, tierbytes), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2204,7 +2204,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_extend_req__field_descriptors[6 offsetof(Mgmt__PoolExtendReq, faultdomains), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2259,7 +2259,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_extend_resp__field_descriptors[ offsetof(Mgmt__PoolExtendResp, tier_bytes), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2334,7 +2334,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_req__field_descript offsetof(Mgmt__PoolReintegrateReq, targetidx), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2346,7 +2346,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_reintegrate_req__field_descript offsetof(Mgmt__PoolReintegrateReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2488,7 +2488,7 @@ static const ProtobufCFieldDescriptor mgmt__list_pools_resp__pool__field_descrip offsetof(Mgmt__ListPoolsResp__Pool, svc_reps), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -2616,7 +2616,7 @@ static const ProtobufCFieldDescriptor mgmt__list_cont_req__field_descriptors[3] offsetof(Mgmt__ListContReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -2769,7 +2769,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_query_req__field_descriptors[5] offsetof(Mgmt__PoolQueryReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { @@ -3339,7 +3339,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_set_prop_req__field_descriptors offsetof(Mgmt__PoolSetPropReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -3454,7 +3454,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_get_prop_req__field_descriptors offsetof(Mgmt__PoolGetPropReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; @@ -3570,7 +3570,7 @@ static const ProtobufCFieldDescriptor mgmt__pool_upgrade_req__field_descriptors[ offsetof(Mgmt__PoolUpgradeReq, svc_ranks), NULL, NULL, - 0, /* flags */ + 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; diff --git a/src/proto/Makefile b/src/proto/Makefile index 9da0bea30b1..f0c036515cf 100644 --- a/src/proto/Makefile +++ b/src/proto/Makefile @@ -15,7 +15,7 @@ C_HEADER_FILES = include/daos/drpc.pb-c.h\ mgmt/server.pb-c.h\ mgmt/svc.pb-c.h\ mgmt/check.pb-c.h\ - chk/check.pb-c.h\ + chk/chk.pb-c.h\ security/auth.pb-c.h\ tests/drpc/drpc_test.pb-c.h C_SOURCE_FILES = common/drpc.pb-c.c\ @@ -28,7 +28,7 @@ C_SOURCE_FILES = common/drpc.pb-c.c\ mgmt/server.pb-c.c\ mgmt/svc.pb-c.c\ mgmt/check.pb-c.c\ - chk/check.pb-c.c\ + chk/chk.pb-c.c\ security/auth.pb-c.c\ tests/drpc/drpc_test.pb-c.c GO_CONTROL_FILES = common/proto/shared/ranks.pb.go\ @@ -50,7 +50,7 @@ GO_CONTROL_FILES = common/proto/shared/ranks.pb.go\ common/proto/ctl/network.pb.go\ common/proto/ctl/firmware.pb.go\ common/proto/ctl/ranks.pb.go\ - common/proto/chk/check.pb.go\ + common/proto/chk/chk.pb.go\ common/proto/srv/srv.pb.go\ drpc/drpc.pb.go\ security/auth/auth.pb.go\ @@ -154,10 +154,10 @@ C_TARGETS = $(addprefix $(DAOS_ROOT)/src/,$(C_HEADER_FILES)) \ proto-c: $(PROTOC_GEN_C) $(C_TARGETS) $(DAOS_ROOT)/src/%.pb-c.h: $(PROTO_SOURCE_DIR)/%.proto - protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) $(DAOS_ROOT)/src/%.pb-c.c: $(PROTO_SOURCE_DIR)/%.proto - protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) $(DAOS_ROOT)/src/engine/event.pb-c.h: $(PROTO_SOURCE_DIR)/shared/event.proto protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) @@ -166,10 +166,10 @@ $(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/%.pb-c.h: $(PROTO_SOURCE_DIR)/srv/%.proto - protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) $(DAOS_ROOT)/src/engine/%.pb-c.c: $(PROTO_SOURCE_DIR)/srv/%.proto - protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) + protoc -I $(dir $<) -I $(PROTO_SOURCE_DIR) --c_out=$(dir $@) $(notdir $<) $(DAOS_ROOT)/src/mgmt/smd.pb-c.h: $(PROTO_SOURCE_DIR)/ctl/smd.proto protoc -I $(dir $<) --c_out=$(dir $@) $(notdir $<) diff --git a/src/proto/chk/check.proto b/src/proto/chk/chk.proto similarity index 81% rename from src/proto/chk/check.proto rename to src/proto/chk/chk.proto index 5a47e1412d2..b9e31786e21 100644 --- a/src/proto/chk/check.proto +++ b/src/proto/chk/chk.proto @@ -181,3 +181,28 @@ enum CheckScanPhase { DSP_DONE = 10; // All done. } + +// DAOS check engine reports the found inconsistency and repair result to control plane. +// If the repair action is CIA_INTERACT, then the control plane will reply current dRPC +// firstly, and then interact with the admin for the repair decision in another section +// and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. +// +// If the CheckReport::msg is not enough to help admin to make the decision, then we +// may have to leverage DAOS debug tools to dump more information from related target. +message CheckReport { + uint64 seq = 1; // DAOS Check event sequence, unique for the instance. + CheckInconsistClass class = 2; // Inconsistency class + CheckInconsistAction action = 3; // The action taken to repair the inconsistency + bool repaired = 4; // Repaired or not, meaningless if the action is CIA_INTERACT. + uint32 rank = 5; // Inconsistency happened on which rank if applicable. + uint32 target = 6; // Inconsistency happened on which target in the rank if applicable. + string pool_uuid = 7; // The consistency is in which pool if applicable. + string cont_uuid = 8; // The consistency is in which container if applicable. + string objid = 9; // The consistency is in which object if applicable. + string dkey = 10; // The consistency is in which dkey if applicable. + string akey = 11; // The consistency is in which akey if applicable. + string timestamp = 12; // The time of report (and repair) the inconsistency. + string msg = 13; // Information to describe the inconsistency in detail. + repeated CheckInconsistAction actions = 14; // Potential actions to be made in interaction mode. + repeated string details = 15; // Details for each potential action (length should match actions) +} diff --git a/src/proto/mgmt/check.proto b/src/proto/mgmt/check.proto index 19be4680d6e..b667b4f6600 100644 --- a/src/proto/mgmt/check.proto +++ b/src/proto/mgmt/check.proto @@ -9,6 +9,8 @@ package mgmt; option go_package = "github.com/daos-stack/daos/src/control/common/proto/mgmt"; +import "chk/chk.proto"; + // Check Protobuf Definitions related to interactions between // DAOS control server and DAOS check via dRPC. @@ -18,8 +20,8 @@ option go_package = "github.com/daos-stack/daos/src/control/common/proto/mgmt"; // to DAOS engine when start check and cannot changed during check scanning, but can be list // via 'dmg check prop' - see CheckPropResp. message CheckInconsistPolicy { - uint32 inconsist_cas = 1; // See CheckInconsistClass. - uint32 inconsist_act = 2; // See CheckInconsistAction. + chk.CheckInconsistClass inconsist_cas = 1; // See CheckInconsistClass. + chk.CheckInconsistAction inconsist_act = 2; // See CheckInconsistAction. } // For 'dmg check start'. @@ -86,7 +88,7 @@ message CheckQueryInconsist { message CheckQueryTarget { uint32 rank = 1; // Rank ID. uint32 target = 2; // Target index in the rank. - uint32 status = 3; // Check instance status on this target - see CheckInstStatus. + chk.CheckInstStatus status = 3; // Check instance status on this target - see CheckInstStatus. // Inconsistency statistics during the phases range // [CSP_DTX_RESYNC, OSP_AGGREGATION] for the pool shard on the target. CheckQueryInconsist inconsistency = 4; @@ -97,8 +99,8 @@ message CheckQueryTarget { // Check query result for the pool. message CheckQueryPool { string uuid = 1; // Pool UUID. - uint32 status = 2; // Pool status - see CheckPoolStatus. - uint32 phase = 3; // Scan phase - see CheckScanPhase. + chk.CheckPoolStatus status = 2; // Pool status - see CheckPoolStatus. + chk.CheckScanPhase phase = 3; // Scan phase - see CheckScanPhase. // Inconsistency statistics during the phases range // [CSP_POOL_MBS, CSP_CONT_CLEANUP] for the pool. CheckQueryInconsist inconsistency = 4; @@ -117,12 +119,12 @@ message CheckQueryResp { // As long as one target is in CIS_RUNNING, then the instance is CIS_RUNNING. // Otherwise, in turn with the status of CIS_FAILED, CIS_CRASHED, CIS_PAUSED, // CIS_STOPPED, CIS_COMPLETED. - uint32 ins_status = 2; + chk.CheckInstStatus ins_status = 2; // Scan phase - see CheckScanPhase. Before moving to CSP_POOL_MBS, the check // instance status is maintained on the check leader. And then multiple pools // can be processed in parallel, so the instance phase for different pools may // be different, see CheckQueryPool::phase. - uint32 ins_phase = 3; + chk.CheckScanPhase ins_phase = 3; // Inconsistency statistics during the phases range // [CSP_PREPARE, CSP_POOL_LIST] for the whole system. CheckQueryInconsist inconsistency = 4; @@ -130,6 +132,8 @@ message CheckQueryResp { CheckQueryTime time = 5; // Per pool based query result for the phases since CSP_POOL_MBS. repeated CheckQueryPool pools = 6; + // Inconsistency reports to be displayed + repeated chk.CheckReport reports = 7; } // For 'dmg check prop' @@ -150,7 +154,7 @@ message CheckActReq { // DAOS RAS event sequence - see RASEvent::extended_info::check_info::chk_inconsist_seq. uint64 seq = 2; // The decision from RASEvent::extended_info::check_info::chk_opts. - uint32 act = 3; + chk.CheckInconsistAction act = 3; bool for_all = 4; // The same action is applicable to the same type of inconsistency. } diff --git a/src/proto/srv/srv.proto b/src/proto/srv/srv.proto index 6f33c771ebc..e157408908c 100644 --- a/src/proto/srv/srv.proto +++ b/src/proto/srv/srv.proto @@ -11,6 +11,8 @@ package srv; option go_package = "github.com/daos-stack/daos/src/control/common/proto/srv"; +import "chk/chk.proto"; + message NotifyReadyReq { string uri = 1; // CaRT URI uint32 nctxs = 2; // Number of CaRT contexts @@ -90,28 +92,8 @@ message CheckDeregPoolResp { int32 status = 1; // DAOS error code. } -// DAOS check engine reports the found inconsistency and repair result to control plane. -// If the repair action is CIA_INTERACT, then the control plane will reply current dRPC -// firstly, and then interact with the admin for the repair decision in another section -// and tell DAOS check engine via another DRPC_METHOD_MGMT_CHK_ACT dRPC call. -// -// If the CheckReportReq::msg is not enough to help admin to make the decision, then we -// may have to leverage DAOS debug tools to dump more information from related target. message CheckReportReq { - uint64 seq = 1; // DAOS Check event sequence, unique for the instance. - uint64 class = 2; // Inconsistency class - see CheckInconsistClass. - uint32 action = 3; // The action to repair the inconsistency - see CheckInconsistAction. - bool repaired = 4; // Repaired or not, meaningless if the action is CIA_INTERACT. - uint32 rank = 5; // Inconsistency happened on which rank if applicable. - uint32 target = 6; // Inconsistency happened on which target in the rank if applicable. - string pool_uuid = 7; // The consistency is in which pool if applicable. - string cont_uuid = 8; // The consistency is in which container if applicable. - string objid = 9; // The consistency is in which object if applicable. - string dkey = 10; // The consistency is in which dkey if applicable. - string akey = 11; // The consistency is in which akey if applicable. - string timestamp = 12; // The time of report (and repair) the inconsistency. - string msg = 13; // Information to describe the inconsistency in detail. - repeated string options = 14; // Options list for interaction mode. + chk.CheckReport report = 1; // Report payload } message CheckReportResp {