Skip to content

Commit 91c61a7

Browse files
authored
correctly check WB requests requirement, improve swagger description (#7521)
1 parent 47a1e06 commit 91c61a7

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

ydb/core/viewer/storage_groups.h

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ class TStorageGroups : public TViewerPipeClient {
130130

131131
// BSC
132132
bool FallbackToWhiteboard = false;
133-
bool FillDisksFromWhiteboard = false;
134133
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse>> GetGroupsResponse;
135134
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse>> GetStoragePoolsResponse;
136135
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse>> GetVSlotsResponse;
@@ -657,7 +656,6 @@ class TStorageGroups : public TViewerPipeClient {
657656
FieldsRequired |= FieldsBsVSlots;
658657
FieldsRequired |= FieldsBsPDisks;
659658
}
660-
FillDisksFromWhiteboard = FromStringWithDefault<bool>(params.Get("fill_disks_from_whiteboard"), FillDisksFromWhiteboard);
661659
TString fieldsRequired = params.Get("fields_required");
662660
if (!fieldsRequired.empty()) {
663661
if (fieldsRequired == "all") {
@@ -1169,6 +1167,13 @@ class TStorageGroups : public TViewerPipeClient {
11691167
NKikimrBlobStorage::EVDiskStatus_Parse(info.GetStatusV2(), &vDisk.VDiskStatus);
11701168
}
11711169

1170+
bool AreBSControllerRequestsDone() const {
1171+
return (!GetGroupsResponse || GetGroupsResponse->IsDone()) &&
1172+
(!GetStoragePoolsResponse || GetStoragePoolsResponse->IsDone()) &&
1173+
(!GetVSlotsResponse || GetVSlotsResponse->IsDone()) &&
1174+
(!GetPDisksResponse || GetPDisksResponse->IsDone());
1175+
}
1176+
11721177
void ProcessBSControllerResponses() {
11731178
int requestsDone = 0;
11741179
if (GetGroupsResponse && GetGroupsResponse->IsOk() && FieldsNeeded(FieldsBsGroups)) {
@@ -1306,7 +1311,7 @@ class TStorageGroups : public TViewerPipeClient {
13061311
}
13071312
}
13081313
}
1309-
if (NoMoreRequests(requestsDone) && FieldsNeeded(FieldsWbDisks)) {
1314+
if (AreBSControllerRequestsDone() && FieldsNeeded(FieldsWbDisks)) {
13101315
for (TGroup& group : Groups) {
13111316
for (TNodeId nodeId : group.VDiskNodeIds) {
13121317
SendWhiteboardDisksRequest(nodeId);
@@ -1748,9 +1753,11 @@ class TStorageGroups : public TViewerPipeClient {
17481753
void HandleTimeout(TEvents::TEvWakeup::TPtr& ev) {
17491754
switch (ev->Get()->Tag) {
17501755
case TimeoutBSC:
1751-
OnBscError("timeout");
1752-
Problems.emplace_back("bsc-timeout");
1753-
RequestDone(FailPipeConnect(GetBSControllerId()));
1756+
if (!AreBSControllerRequestsDone()) {
1757+
OnBscError("timeout");
1758+
Problems.emplace_back("bsc-timeout");
1759+
RequestDone(FailPipeConnect(GetBSControllerId()));
1760+
}
17541761
break;
17551762
case TimeoutFinal:
17561763
// bread crumbs
@@ -1762,6 +1769,12 @@ class TStorageGroups : public TViewerPipeClient {
17621769
Problems.emplace_back("wb-incomplete-disks");
17631770
ProcessWhiteboardDisks();
17641771
}
1772+
if (HiveStorageStatsInFlight > 0) {
1773+
Problems.emplace_back("hive-incomplete");
1774+
}
1775+
if (!AreBSControllerRequestsDone()) {
1776+
Problems.emplace_back("bsc-incomplete");
1777+
}
17651778
ReplyAndPassAway();
17661779
break;
17671780
}
@@ -2019,6 +2032,31 @@ class TStorageGroups : public TViewerPipeClient {
20192032
* `State`
20202033
required: false
20212034
type: string
2035+
- name: fields_required
2036+
in: query
2037+
description: >
2038+
list of fields required in response (the more - the heavier could be request):
2039+
* `GroupId` (always required)
2040+
* `PoolName`
2041+
* `Kind`
2042+
* `MediaType`
2043+
* `Erasure`
2044+
* `MissingDisks`
2045+
* `State`
2046+
* `Usage`
2047+
* `Used`
2048+
* `Limit`
2049+
* `Usage`
2050+
* `Available`
2051+
* `DiskSpaceUsage`
2052+
* `Encryption`
2053+
* `AllocationUnits`
2054+
* `Read`
2055+
* `Write`
2056+
* `PDisk`
2057+
* `VDisk`
2058+
required: false
2059+
type: string
20222060
- name: offset
20232061
in: query
20242062
description: skip N nodes

0 commit comments

Comments
 (0)