Skip to content

Commit 8e18d44

Browse files
authored
EXT-1518 Set and show pdisk maintenance status in dstool (#25313)
Show maintenance and decommit status in blobstorage controller internal table. (cherry picked from commit 7d826b7)
1 parent 91d4b00 commit 8e18d44

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

ydb/apps/dstool/lib/dstool_cmd_pdisk_list.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def do(args):
2626
'Type',
2727
'Status',
2828
'DecommitStatus',
29+
'MaintenanceStatus',
2930
'Kind',
3031
'BoxId',
3132
'Guid',
@@ -48,6 +49,7 @@ def do(args):
4849
'Type',
4950
'Status',
5051
'DecommitStatus',
52+
'MaintenanceStatus',
5153
]
5254
col_units = {
5355
'Usage': '%',
@@ -83,6 +85,7 @@ def do(args):
8385
row['Path'] = pdisk.Path
8486
row['Status'] = kikimr_bsconfig.EDriveStatus.Name(pdisk.DriveStatus)
8587
row['DecommitStatus'] = kikimr_bsconfig.EDecommitStatus.Name(pdisk.DecommitStatus)
88+
row['MaintenanceStatus'] = kikimr_bsconfig.TMaintenanceStatus.E.Name(pdisk.MaintenanceStatus)
8689
row['Type'] = common.EPDiskType.Name(pdisk.Type)
8790
row['BoxId'] = pdisk.BoxId
8891
row['Kind'] = pdisk.Kind

ydb/apps/dstool/lib/dstool_cmd_pdisk_set.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ def add_options(p):
1212
g.add_argument('--status', type=str, choices=statuses, help='Set status')
1313
decommit_statuses = kikimr_bsconfig.EDecommitStatus.keys()
1414
g.add_argument('--decommit-status', type=str, choices=decommit_statuses, help='Set decomission status')
15+
maintenance_statuses = kikimr_bsconfig.TMaintenanceStatus.E.keys()
16+
g.add_argument('--maintenance-status', type=str, choices=maintenance_statuses, help='Set maintenance status')
1517
common.add_allow_unusable_pdisks_option(p)
1618
p.add_argument('--allow-working-disks', action='store_true', help='Allow settlement even if any of enlisted PDisks is still working')
1719
common.add_ignore_degraded_group_check_option(p)
@@ -34,6 +36,8 @@ def create_request(args, pdisks, node_id_to_host):
3436
cmd.Status = kikimr_bsconfig.EDriveStatus.Value(args.status)
3537
if args.decommit_status is not None:
3638
cmd.DecommitStatus = kikimr_bsconfig.EDecommitStatus.Value(args.decommit_status)
39+
if args.maintenance_status is not None:
40+
cmd.MaintenanceStatus = kikimr_bsconfig.TMaintenanceStatus.E.Value(args.maintenance_status)
3741

3842
return request
3943

ydb/core/mind/bscontroller/monitoring.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,6 +1083,8 @@ void TBlobStorageController::RenderInternalTables(IOutputStream& out, const TStr
10831083
TABLEH() { out << "Total Size"; }
10841084
TABLEH() { out << "Status"; }
10851085
TABLEH() { out << "State"; }
1086+
TABLEH() { out << "Decommit status"; }
1087+
TABLEH() { out << "Maintenance status"; }
10861088
TABLEH() { out << "ExpectedSerial"; }
10871089
TABLEH() { out << "LastSeenSerial"; }
10881090
TABLEH() { out << "LastSeenPath"; }
@@ -1106,6 +1108,8 @@ void TBlobStorageController::RenderInternalTables(IOutputStream& out, const TStr
11061108
out << NKikimrBlobStorage::TPDiskState::E_Name(m.GetState());
11071109
}
11081110
}
1111+
TABLED() { out << NKikimrBlobStorage::EDecommitStatus_Name(pdisk->DecommitStatus); }
1112+
TABLED() { out << NKikimrBlobStorage::TMaintenanceStatus::E_Name(pdisk->MaintenanceStatus); }
11091113
TABLED() { out << pdisk->ExpectedSerial.Quote(); }
11101114
TABLED() {
11111115
TString color = pdisk->ExpectedSerial == pdisk->LastSeenSerial ? "green" : "red";

ydb/core/protos/blobstorage_config.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ message TMaintenanceStatus {
230230
enum E {
231231
NOT_SET = 0; // unset status, default value
232232
NO_REQUEST = 1; // no active maintenance request
233-
LONG_TERM_MAINTENANCE_PLANNED = 2; // maintence requested, VDisks should be moved asynchronously from PDisk
233+
LONG_TERM_MAINTENANCE_PLANNED = 2; // maintenance requested, VDisks should be moved asynchronously from PDisk
234234
NO_NEW_VDISKS = 3; // no new VDisks should be allocated on this PDisk, but existing ones are not moved
235235
}
236236
}

0 commit comments

Comments
 (0)