@@ -130,7 +130,6 @@ class TStorageGroups : public TViewerPipeClient {
130
130
131
131
// BSC
132
132
bool FallbackToWhiteboard = false ;
133
- bool FillDisksFromWhiteboard = false ;
134
133
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetGroupsResponse>> GetGroupsResponse;
135
134
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetStoragePoolsResponse>> GetStoragePoolsResponse;
136
135
std::optional<TRequestResponse<NSysView::TEvSysView::TEvGetVSlotsResponse>> GetVSlotsResponse;
@@ -657,7 +656,6 @@ class TStorageGroups : public TViewerPipeClient {
657
656
FieldsRequired |= FieldsBsVSlots;
658
657
FieldsRequired |= FieldsBsPDisks;
659
658
}
660
- FillDisksFromWhiteboard = FromStringWithDefault<bool >(params.Get (" fill_disks_from_whiteboard" ), FillDisksFromWhiteboard);
661
659
TString fieldsRequired = params.Get (" fields_required" );
662
660
if (!fieldsRequired.empty ()) {
663
661
if (fieldsRequired == " all" ) {
@@ -1169,6 +1167,13 @@ class TStorageGroups : public TViewerPipeClient {
1169
1167
NKikimrBlobStorage::EVDiskStatus_Parse (info.GetStatusV2 (), &vDisk.VDiskStatus );
1170
1168
}
1171
1169
1170
+ bool AreBSControllerRequestsDone () const {
1171
+ return (!GetGroupsResponse || GetGroupsResponse->IsDone ()) &&
1172
+ (!GetStoragePoolsResponse || GetStoragePoolsResponse->IsDone ()) &&
1173
+ (!GetVSlotsResponse || GetVSlotsResponse->IsDone ()) &&
1174
+ (!GetPDisksResponse || GetPDisksResponse->IsDone ());
1175
+ }
1176
+
1172
1177
void ProcessBSControllerResponses () {
1173
1178
int requestsDone = 0 ;
1174
1179
if (GetGroupsResponse && GetGroupsResponse->IsOk () && FieldsNeeded (FieldsBsGroups)) {
@@ -1306,7 +1311,7 @@ class TStorageGroups : public TViewerPipeClient {
1306
1311
}
1307
1312
}
1308
1313
}
1309
- if (NoMoreRequests (requestsDone ) && FieldsNeeded (FieldsWbDisks)) {
1314
+ if (AreBSControllerRequestsDone ( ) && FieldsNeeded (FieldsWbDisks)) {
1310
1315
for (TGroup& group : Groups) {
1311
1316
for (TNodeId nodeId : group.VDiskNodeIds ) {
1312
1317
SendWhiteboardDisksRequest (nodeId);
@@ -2019,6 +2024,31 @@ class TStorageGroups : public TViewerPipeClient {
2019
2024
* `State`
2020
2025
required: false
2021
2026
type: string
2027
+ - name: fields_required
2028
+ in: query
2029
+ description: >
2030
+ list of fields required in response (the more - the heavier could be request):
2031
+ * `GroupId` (always required)
2032
+ * `PoolName`
2033
+ * `Kind`
2034
+ * `MediaType`
2035
+ * `Erasure`
2036
+ * `MissingDisks`
2037
+ * `State`
2038
+ * `Usage`
2039
+ * `Used`
2040
+ * `Limit`
2041
+ * `Usage`
2042
+ * `Available`
2043
+ * `DiskSpaceUsage`
2044
+ * `Encryption`
2045
+ * `AllocationUnits`
2046
+ * `Read`
2047
+ * `Write`
2048
+ * `PDisk`
2049
+ * `VDisk`
2050
+ required: false
2051
+ type: string
2022
2052
- name: offset
2023
2053
in: query
2024
2054
description: skip N nodes
0 commit comments