fix(master): when querying the decommission progress of disks or nodes, display the weight and decommission type.

close: #1000362788

Signed-off-by: shuqiang-zheng <zhengshuqiang@oppo.com>
This commit is contained in:
shuqiang-zheng 2025-09-26 17:10:56 +08:00 committed by 朱明泽
parent 61e58f7098
commit ef8d06e97e
3 changed files with 28 additions and 8 deletions

View File

@ -1340,6 +1340,7 @@ func formatDiskDataPartitionTableRow(view *proto.DataPartitionReport) string {
func formatDataNodeDecommissionProgress(progress *proto.DataDecommissionProgress) string {
sb := strings.Builder{}
sb.WriteString(fmt.Sprintf("Status : %v\n", progress.StatusMessage))
sb.WriteString(fmt.Sprintf("Weight : %v\n", progress.Weight))
sb.WriteString(fmt.Sprintf("Progress : %v\n", progress.Progress))
sb.WriteString(fmt.Sprintf("TotalDpCnt : %v\n", progress.TotalDpCnt))
sb.WriteString(fmt.Sprintf("RemainingDpCnt: %v\n", progress.RemainingDpCnt))
@ -1362,6 +1363,8 @@ func formatDataNodeDecommissionProgress(progress *proto.DataDecommissionProgress
func formatDecommissionProgress(progress *proto.DecommissionProgress) string {
sb := strings.Builder{}
sb.WriteString(fmt.Sprintf("Status : %v\n", progress.StatusMessage))
sb.WriteString(fmt.Sprintf("Type : %v\n", progress.DecommissionType))
sb.WriteString(fmt.Sprintf("Weight : %v\n", progress.Weight))
sb.WriteString(fmt.Sprintf("Progress : %v\n", progress.Progress))
sb.WriteString(fmt.Sprintf("TotalDpCnt : %v\n", progress.TotalDpCnt))
sb.WriteString(fmt.Sprintf("RemainingDpCnt: %v\n", progress.RemainingDpCnt))
@ -1391,6 +1394,7 @@ func formatDataPartitionDecommissionProgress(info *proto.DecommissionDataPartiti
sb := strings.Builder{}
sb.WriteString(fmt.Sprintf("Status: %v\n", info.Status))
sb.WriteString(fmt.Sprintf("SpecialStep: %v\n", info.SpecialStep))
sb.WriteString(fmt.Sprintf("Progress: %v\n", info.Progress))
sb.WriteString(fmt.Sprintf("DiskRetryMap: %v\n", info.DiskRetryMap))
sb.WriteString(fmt.Sprintf("Retry: %v\n", info.Retry))
sb.WriteString(fmt.Sprintf("RaftForce: %v\n", info.RaftForce))

View File

@ -2329,6 +2329,8 @@ func (m *Server) queryDataPartitionDecommissionStatus(w http.ResponseWriter, r *
err error
replicas []string
diskRetryMap map[string]int
dataReplica *DataReplica
progress string
)
if partitionID, err = parseRequestToLoadDataPartition(r); err != nil {
@ -2344,11 +2346,18 @@ func (m *Server) queryDataPartitionDecommissionStatus(w http.ResponseWriter, r *
replicas = append(replicas, replica.Addr)
}
diskRetryMap = dp.cloneDecommissionDiskRetryMap()
if dp.DecommissionDstAddr != "" {
if dataReplica, err = dp.getReplica(dp.DecommissionDstAddr); err == nil {
progress = fmt.Sprintf("%.2f%%", dataReplica.DecommissionRepairProgress*float64(100))
}
}
info := &proto.DecommissionDataPartitionInfo{
PartitionId: partitionID,
ReplicaNum: dp.ReplicaNum,
Status: GetDecommissionStatusMessage(dp.GetDecommissionStatus()),
SpecialStep: GetSpecialDecommissionStatusMessage(dp.GetSpecialReplicaDecommissionStep()),
Progress: progress,
DiskRetryMap: diskRetryMap,
Retry: dp.DecommissionRetry,
RaftForce: dp.DecommissionRaftForce,
@ -5042,6 +5051,8 @@ func (m *Server) queryDiskDecoProgress(w http.ResponseWriter, r *http.Request) {
resp := &proto.DecommissionProgress{
Progress: fmt.Sprintf("%.2f%%", progress*float64(100)),
StatusMessage: GetDecommissionStatusMessage(status),
DecommissionType: GetDecommissionTypeMessage(disk.Type),
Weight: disk.DecommissionWeight,
TotalDpCnt: disk.GetDecommissionTotalDpCnt(m.cluster),
IgnoreDps: disk.IgnoreDecommissionDps,
ResidualDps: disk.residualDecommissionDpsGetAll(),
@ -5117,6 +5128,8 @@ func (m *Server) queryAllDecommissionDisk(w http.ResponseWriter, r *http.Request
decommissionProgress := proto.DecommissionProgress{
Progress: fmt.Sprintf("%.2f%%", progress*float64(100)),
StatusMessage: GetDecommissionStatusMessage(status),
DecommissionType: GetDecommissionTypeMessage(disk.Type),
Weight: disk.DecommissionWeight,
TotalDpCnt: disk.GetDecommissionTotalDpCnt(m.cluster),
IgnoreDps: disk.IgnoreDecommissionDps,
ResidualDps: disk.residualDecommissionDpsGetAll(),
@ -5136,10 +5149,9 @@ func (m *Server) queryAllDecommissionDisk(w http.ResponseWriter, r *http.Request
retryOverLimitDps := disk.GetDecommissionDiskRetryOverLimitDP(m.cluster)
decommissionProgress.RetryOverLimitDps = retryOverLimitDps
resp.Infos = append(resp.Infos, proto.DecommissionDiskInfo{
SrcAddr: disk.SrcAddr,
DiskPath: disk.DiskPath,
DecommissionWeight: disk.DecommissionWeight,
ProgressInfo: decommissionProgress,
SrcAddr: disk.SrcAddr,
DiskPath: disk.DiskPath,
ProgressInfo: decommissionProgress,
})
}
return true
@ -6869,6 +6881,7 @@ func (m *Server) queryDataNodeDecoProgress(w http.ResponseWriter, r *http.Reques
progress, _ = FormatFloatFloor(progress, 4)
resp := &proto.DataDecommissionProgress{
Status: status,
Weight: dn.DecommissionWeight,
Progress: fmt.Sprintf("%.2f%%", progress*float64(100)),
StatusMessage: GetDecommissionStatusMessage(status),
TotalDpCnt: dn.DecommissionDpTotal,

View File

@ -451,6 +451,8 @@ type IgnoreDecommissionDP struct {
type DecommissionProgress struct {
StatusMessage string
DecommissionType string
Weight int
Progress string
TotalDpCnt int
RemainingDpCnt int
@ -466,6 +468,7 @@ type DecommissionProgress struct {
type DataDecommissionProgress struct {
Status uint32
StatusMessage string
Weight int
Progress string
TotalDpCnt int
RemainingDpCnt int
@ -599,10 +602,9 @@ type DecommissionDiskLimitDetail struct {
}
type DecommissionDiskInfo struct {
SrcAddr string
DiskPath string
DecommissionWeight int
ProgressInfo DecommissionProgress
SrcAddr string
DiskPath string
ProgressInfo DecommissionProgress
}
type DecommissionDisksResponse struct {
@ -614,6 +616,7 @@ type DecommissionDataPartitionInfo struct {
ReplicaNum uint8
Status string
SpecialStep string
Progress string
DiskRetryMap map[string]int
Retry int
RaftForce bool