diff options
author | vporyadke <zalyalov@ydb.tech> | 2024-08-29 14:16:13 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-29 13:16:13 +0200 |
commit | acc98449bb246ee1fcad1cbe3121ceced0df3baa (patch) | |
tree | 6191ac7cafa432d4b467a613b514ce2f28bec89b | |
parent | 3de3ff5320b4a1114a47255658dafb3d0fc0da56 (diff) | |
download | ydb-acc98449bb246ee1fcad1cbe3121ceced0df3baa.tar.gz |
storage health check fixes (#8291)
-rw-r--r-- | ydb/core/health_check/health_check.cpp | 23 | ||||
-rw-r--r-- | ydb/core/health_check/health_check_ut.cpp | 135 |
2 files changed, 100 insertions, 58 deletions
diff --git a/ydb/core/health_check/health_check.cpp b/ydb/core/health_check/health_check.cpp index 680336fd68..ddcaa5a3b7 100644 --- a/ydb/core/health_check/health_check.cpp +++ b/ydb/core/health_check/health_check.cpp @@ -251,6 +251,7 @@ public: struct TGroupState { TString ErasureSpecies; std::vector<const NKikimrSysView::TVSlotEntry*> VSlots; + ui32 Generation; }; struct TSelfCheckResult { @@ -1276,12 +1277,17 @@ public: for (const auto& group : Groups->GetEntries()) { auto groupId = group.GetKey().GetGroupId(); auto poolId = group.GetInfo().GetStoragePoolId(); - GroupState[groupId].ErasureSpecies = group.GetInfo().GetErasureSpeciesV2(); + auto& groupState = GroupState[groupId]; + groupState.ErasureSpecies = group.GetInfo().GetErasureSpeciesV2(); + groupState.Generation = group.GetInfo().GetGeneration(); StoragePoolState[poolId].Groups.emplace(groupId); } for (const auto& vSlot : VSlots->GetEntries()) { auto vSlotId = GetVSlotId(vSlot.GetKey()); - GroupState[vSlot.GetInfo().GetGroupId()].VSlots.push_back(&vSlot); + auto groupStateIt = GroupState.find(vSlot.GetInfo().GetGroupId()); + if (groupStateIt != GroupState.end() && vSlot.GetInfo().GetGroupGeneration() == groupStateIt->second.Generation) { + groupStateIt->second.VSlots.push_back(&vSlot); + } } for (const auto& pool : StoragePools->GetEntries()) { // there is no specific pool for static group here ui64 poolId = pool.GetKey().GetStoragePoolId(); @@ -1782,6 +1788,13 @@ public: storageVDiskStatus.set_id(GetVSlotId(vSlot->GetKey())); + if (!vSlot->GetInfo().HasStatusV2()) { + // this should mean that BSC recently restarted and does not have accurate data yet - we should not report to avoid false positives + context.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN); + storageVDiskStatus.set_overall(context.GetOverallStatus()); + return; + } + const auto *descriptor = NKikimrBlobStorage::EVDiskStatus_descriptor(); auto status = descriptor->FindValueByName(vSlot->GetInfo().GetStatusV2()); if (!status) { // this case is not expected because becouse bsc assignes status according EVDiskStatus enum @@ -1801,16 +1814,12 @@ public: storageVDiskStatus.set_overall(context.GetOverallStatus()); return; } - case NKikimrBlobStorage::INIT_PENDING: { // initialization in process - context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, TStringBuilder() << "VDisk is being initialized", ETags::VDiskState); - storageVDiskStatus.set_overall(context.GetOverallStatus()); - return; - } case NKikimrBlobStorage::REPLICATING: { // the disk accepts queries, but not all the data was replicated context.ReportStatus(Ydb::Monitoring::StatusFlag::BLUE, TStringBuilder() << "Replication in progress", ETags::VDiskState); storageVDiskStatus.set_overall(context.GetOverallStatus()); return; } + case NKikimrBlobStorage::INIT_PENDING: case NKikimrBlobStorage::READY: { // the disk is fully operational and does not affect group fault tolerance context.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN); } diff --git a/ydb/core/health_check/health_check_ut.cpp b/ydb/core/health_check/health_check_ut.cpp index 53b3647ad4..e28c968422 100644 --- a/ydb/core/health_check/health_check_ut.cpp +++ b/ydb/core/health_check/health_check_ut.cpp @@ -58,12 +58,29 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { const int GROUP_START_ID = 0x80000000; const int VCARD_START_ID = 55; + const int DEFAULT_GROUP_GENERATION = 3; const TPathId SUBDOMAIN_KEY = {7000000000, 1}; const TPathId SERVERLESS_DOMAIN_KEY = {7000000000, 2}; const TPathId SHARED_DOMAIN_KEY = {7000000000, 3}; const TString STORAGE_POOL_NAME = "/Root:test"; + struct TTestVSlotInfo { + std::optional<NKikimrBlobStorage::EVDiskStatus> Status; + ui32 Generation; + + TTestVSlotInfo(std::optional<NKikimrBlobStorage::EVDiskStatus> status = NKikimrBlobStorage::READY, + ui32 generation = DEFAULT_GROUP_GENERATION) + : Status(status) + , Generation(generation) + { + } + + TTestVSlotInfo(NKikimrBlobStorage::EVDiskStatus status) : Status(status), Generation(DEFAULT_GROUP_GENERATION) {} + }; + + using TVDisks = TVector<TTestVSlotInfo>; + void ChangeDescribeSchemeResult(TEvSchemeShard::TEvDescribeSchemeResult::TPtr* ev, ui64 size = 20000000, ui64 quota = 90000000) { auto record = (*ev)->Get()->MutableRecord(); auto pool = record->mutable_pathdescription()->mutable_domaindescription()->add_storagepools(); @@ -150,6 +167,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { entry->mutable_key()->set_groupid(groupId); entry->mutable_info()->set_erasurespeciesv2(NHealthCheck::TSelfCheckRequest::BLOCK_4_2); entry->mutable_info()->set_storagepoolid(poolId); + entry->mutable_info()->set_generation(DEFAULT_GROUP_GENERATION); }; if (addStatic) { @@ -163,7 +181,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } void AddVSlotsToSysViewResponse(NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr* ev, size_t groupCount, - const TVector<NKikimrBlobStorage::EVDiskStatus>& vdiskStatuses, ui32 groupStartId = GROUP_START_ID) { + const TVDisks& vslots, ui32 groupStartId = GROUP_START_ID) { auto& record = (*ev)->Get()->Record; auto entrySample = record.entries(0); record.clear_entries(); @@ -172,13 +190,16 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { const auto *descriptor = NKikimrBlobStorage::EVDiskStatus_descriptor(); for (size_t i = 0; i < groupCount; ++i) { auto vslotId = VCARD_START_ID; - for (auto status: vdiskStatuses) { + for (const auto& vslot : vslots) { auto* entry = record.add_entries(); entry->CopyFrom(entrySample); entry->mutable_key()->set_vslotid(vslotId); entry->mutable_info()->set_groupid(groupId); entry->mutable_info()->set_failrealm(vslotId); - entry->mutable_info()->set_statusv2(descriptor->FindValueByNumber(status)->name()); + if (vslot.Status) { + entry->mutable_info()->set_statusv2(descriptor->FindValueByNumber(*vslot.Status)->name()); + } + entry->mutable_info()->set_groupgeneration(vslot.Generation); entry->mutable_info()->set_vdisk(vslotId); ++vslotId; } @@ -195,7 +216,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } void AddGroupVSlotInControllerConfigResponseWithStaticGroup(TEvBlobStorage::TEvControllerConfigResponse::TPtr* ev, - const NKikimrBlobStorage::TGroupStatus::E groupStatus, const TVector<NKikimrBlobStorage::EVDiskStatus>& vdiskStatuses) + const NKikimrBlobStorage::TGroupStatus::E groupStatus, const TVDisks& vslots) { auto& pbRecord = (*ev)->Get()->Record; auto pbConfig = pbRecord.mutable_response()->mutable_status(0)->mutable_baseconfig(); @@ -216,6 +237,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { staticGroup->set_storagepoolid(0); staticGroup->set_operatingstatus(groupStatus); staticGroup->set_erasurespecies(NHealthCheck::TSelfCheckRequest::BLOCK_4_2); + staticGroup->set_groupgeneration(DEFAULT_GROUP_GENERATION); auto group = pbConfig->add_group(); group->CopyFrom(groupSample); @@ -223,11 +245,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { group->set_storagepoolid(1); group->set_operatingstatus(groupStatus); group->set_erasurespecies(NHealthCheck::TSelfCheckRequest::BLOCK_4_2); + group->set_groupgeneration(DEFAULT_GROUP_GENERATION); group->clear_vslotid(); auto vslotId = VCARD_START_ID; - for (auto status: vdiskStatuses) { + for (const auto& vslotInfo : vslots) { auto vslot = pbConfig->add_vslot(); vslot->CopyFrom(vslotSample); vslot->set_vdiskidx(vslotId); @@ -239,8 +262,11 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { slotId->CopyFrom(vslotIdSample); slotId->set_vslotid(vslotId); - const auto *descriptor = NKikimrBlobStorage::EVDiskStatus_descriptor(); - vslot->set_status(descriptor->FindValueByNumber(status)->name()); + if (vslotInfo.Status) { + const auto *descriptor = NKikimrBlobStorage::EVDiskStatus_descriptor(); + vslot->set_status(descriptor->FindValueByNumber(*vslotInfo.Status)->name()); + } + vslot->set_groupgeneration(vslotInfo.Generation); vslotId++; } @@ -329,7 +355,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - AddVSlotsToSysViewResponse(x, groupNumber, {vdiscPerGroupNumber, NKikimrBlobStorage::EVDiskStatus::ERROR}); + AddVSlotsToSysViewResponse(x, groupNumber, TVDisks{vdiscPerGroupNumber, NKikimrBlobStorage::EVDiskStatus::ERROR}); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -389,7 +415,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { CheckHcResult(result, groupNumber, vdiscPerGroupNumber, isMergeRecords); } - Ydb::Monitoring::SelfCheckResult RequestHcWithVdisks(const NKikimrBlobStorage::TGroupStatus::E groupStatus, const TVector<NKikimrBlobStorage::EVDiskStatus>& vdiskStatuses, bool forStaticGroup = false) { + Ydb::Monitoring::SelfCheckResult RequestHcWithVdisks(const NKikimrBlobStorage::TGroupStatus::E groupStatus, const TVDisks& vdisks, bool forStaticGroup = false) { TPortManager tp; ui16 port = tp.GetPort(2134); ui16 grpcPort = tp.GetPort(2135); @@ -419,15 +445,15 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, groupStatus, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, groupStatus, vdisks); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); if (forStaticGroup) { - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses, 0); + AddVSlotsToSysViewResponse(x, 1, vdisks, 0); } else { - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, vdisks); } break; } @@ -444,9 +470,9 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { case NNodeWhiteboard::TEvWhiteboard::EvVDiskStateResponse: { auto *x = reinterpret_cast<NNodeWhiteboard::TEvWhiteboard::TEvVDiskStateResponse::TPtr*>(&ev); if (forStaticGroup) { - AddVSlotInVDiskStateResponse(x, 1, vdiskStatuses.size(), 0); + AddVSlotInVDiskStateResponse(x, 1, vdisks.size(), 0); } else { - AddVSlotInVDiskStateResponse(x, 1, vdiskStatuses.size()); + AddVSlotInVDiskStateResponse(x, 1, vdisks.size()); } break; } @@ -595,31 +621,54 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } Y_UNIT_TEST(YellowGroupIssueWhenPartialGroupStatus) { - auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, {NKikimrBlobStorage::ERROR}); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, TVDisks{NKikimrBlobStorage::ERROR}); CheckHcResultHasIssuesWithStatus(result, "STORAGE_GROUP", Ydb::Monitoring::StatusFlag::YELLOW, 1); } Y_UNIT_TEST(BlueGroupIssueWhenPartialGroupStatusAndReplicationDisks) { - auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, {NKikimrBlobStorage::REPLICATING}); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, TVDisks{NKikimrBlobStorage::REPLICATING}); CheckHcResultHasIssuesWithStatus(result, "STORAGE_GROUP", Ydb::Monitoring::StatusFlag::BLUE, 1); } Y_UNIT_TEST(OrangeGroupIssueWhenDegradedGroupStatus) { - auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::DEGRADED, {2, NKikimrBlobStorage::ERROR}); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::DEGRADED, TVDisks{2, NKikimrBlobStorage::ERROR}); CheckHcResultHasIssuesWithStatus(result, "STORAGE_GROUP", Ydb::Monitoring::StatusFlag::ORANGE, 1); } Y_UNIT_TEST(RedGroupIssueWhenDisintegratedGroupStatus) { - auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::DISINTEGRATED, {3, NKikimrBlobStorage::ERROR}); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::DISINTEGRATED, TVDisks{3, NKikimrBlobStorage::ERROR}); CheckHcResultHasIssuesWithStatus(result, "STORAGE_GROUP", Ydb::Monitoring::StatusFlag::RED, 1); } Y_UNIT_TEST(StaticGroupIssue) { - auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, {NKikimrBlobStorage::ERROR}, /*forStatic*/ true); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, TVDisks{NKikimrBlobStorage::ERROR}, /*forStatic*/ true); Cerr << result.ShortDebugString() << Endl; CheckHcResultHasIssuesWithStatus(result, "STORAGE_GROUP", Ydb::Monitoring::StatusFlag::YELLOW, 1, "static"); } + Y_UNIT_TEST(GreenStatusWhenCreatingGroup) { + std::optional<NKikimrBlobStorage::EVDiskStatus> emptyStatus; + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, TVDisks{8, emptyStatus}); + Cerr << result.ShortDebugString() << Endl; + UNIT_ASSERT_VALUES_EQUAL(result.self_check_result(), Ydb::Monitoring::SelfCheck::GOOD); + } + + Y_UNIT_TEST(GreenStatusWhenInitPending) { + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, TVDisks{8, NKikimrBlobStorage::INIT_PENDING}); + Cerr << result.ShortDebugString() << Endl; + UNIT_ASSERT_VALUES_EQUAL(result.self_check_result(), Ydb::Monitoring::SelfCheck::GOOD); + } + + Y_UNIT_TEST(IgnoreOtherGenerations) { + TVDisks vdisks; + vdisks.emplace_back(NKikimrBlobStorage::ERROR, DEFAULT_GROUP_GENERATION - 1); + vdisks.emplace_back(NKikimrBlobStorage::READY, DEFAULT_GROUP_GENERATION); + vdisks.emplace_back(NKikimrBlobStorage::ERROR, DEFAULT_GROUP_GENERATION + 1); + auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::PARTIAL, vdisks); + Cerr << result.ShortDebugString() << Endl; + UNIT_ASSERT_VALUES_EQUAL(result.self_check_result(), Ydb::Monitoring::SelfCheck::GOOD); + } + /* HC currently infers group status on its own, so it's never unknown Y_UNIT_TEST(RedGroupIssueWhenUnknownGroupStatus) { auto result = RequestHcWithVdisks(NKikimrBlobStorage::TGroupStatus::UNKNOWN, {}); @@ -799,14 +848,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -901,14 +948,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1014,14 +1059,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1116,14 +1159,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1211,14 +1252,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1324,14 +1363,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1470,14 +1507,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { @@ -1623,14 +1658,12 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvBlobStorage::EvControllerConfigResponse: { auto *x = reinterpret_cast<TEvBlobStorage::TEvControllerConfigResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, vdiskStatuses); + AddGroupVSlotInControllerConfigResponseWithStaticGroup(x, NKikimrBlobStorage::TGroupStatus::FULL, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetVSlotsResponse: { auto* x = reinterpret_cast<NSysView::TEvSysView::TEvGetVSlotsResponse::TPtr*>(&ev); - TVector<NKikimrBlobStorage::EVDiskStatus> vdiskStatuses = { NKikimrBlobStorage::EVDiskStatus::READY }; - AddVSlotsToSysViewResponse(x, 1, vdiskStatuses); + AddVSlotsToSysViewResponse(x, 1, TVDisks(1)); break; } case NSysView::TEvSysView::EvGetGroupsResponse: { |