package com.alibaba.doris.admin.service.common.migrate.status; import com.alibaba.doris.admin.service.common.migrate.manager.MigrateManager; import com.alibaba.doris.common.MigrateStatusEnum; /** * 迁移状态查看器,查看迁移进度 * * @author frank */ public class MigrateStatusWatcher { private static MigrateStatusWatcher instance = new MigrateStatusWatcher(); private MigrateManager manager = MigrateManager.getInstance(); private MigrateStatusWatcher() { } public static MigrateStatusWatcher getInstance() { return instance; } /** * 获得物理节点的迁移进程 * * @param physicalId 节点的物理编号 * @return 0 没有迁移进度; 100 迁移完成 */ public int getMigerateProgress(String physicalId) { MigrateStatus migerateStatus = manager.getMigerateStatus(physicalId); if (migerateStatus == null) { return 0; } return migerateStatus.getSchedule(); } /** * 获得物理节点的迁移状态 * * @param physicalId 节点的物理编号 * @return 迁移状态枚举值 */ public MigrateStatusEnum getMigerateStatus(String physicalId) { MigrateStatus migerateStatus = manager.getMigerateStatus(physicalId); if (migerateStatus == null) { return null; } return migerateStatus.getMigerateStatus(); } /** * 获得物理节点的迁移状态详细信息 * * @param physicalId 节点物理编号 * @return 迁移状态详细信息 */ public String getMigerateStatusDetail(String physicalId) { MigrateStatus migerateStatus = manager.getMigerateStatus(physicalId); if (migerateStatus == null) { return null; } return migerateStatus.toString(); } }