aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvporyadke <zalyalov@ydb.tech>2024-08-29 14:16:13 +0300
committerGitHub <noreply@github.com>2024-08-29 13:16:13 +0200
commitacc98449bb246ee1fcad1cbe3121ceced0df3baa (patch)
tree6191ac7cafa432d4b467a613b514ce2f28bec89b
parent3de3ff5320b4a1114a47255658dafb3d0fc0da56 (diff)
downloadydb-acc98449bb246ee1fcad1cbe3121ceced0df3baa.tar.gz
storage health check fixes (#8291)
-rw-r--r--ydb/core/health_check/health_check.cpp23
-rw-r--r--ydb/core/health_check/health_check_ut.cpp135
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: {