mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
fix(scheduler): record DiskDrop and ManualMigrate task in cache
with: #1000088302 Signed-off-by: xiejian <xiejian3@oppo.com>
This commit is contained in:
parent
05c3635ff4
commit
39622270c8
@ -886,7 +886,7 @@ func (mgr *MigrateMgr) DeletedTasks() []DeletedTask {
|
||||
|
||||
func (mgr *MigrateMgr) addMigratingVuid(diskID proto.DiskID, vuid proto.Vuid, taskID string) {
|
||||
switch mgr.taskType {
|
||||
case proto.TaskTypeBalance: // only balance task need to add
|
||||
case proto.TaskTypeBalance, proto.TaskTypeDiskDrop, proto.TaskTypeManualMigrate:
|
||||
mgr.diskMigratingVuids.addMigratingVuid(diskID, vuid, taskID)
|
||||
default:
|
||||
}
|
||||
@ -894,7 +894,7 @@ func (mgr *MigrateMgr) addMigratingVuid(diskID proto.DiskID, vuid proto.Vuid, ta
|
||||
|
||||
func (mgr *MigrateMgr) deleteMigratingVuid(diskID proto.DiskID, vuid proto.Vuid) {
|
||||
switch mgr.taskType {
|
||||
case proto.TaskTypeBalance: // only balance task need to add
|
||||
case proto.TaskTypeBalance, proto.TaskTypeDiskDrop, proto.TaskTypeManualMigrate:
|
||||
mgr.diskMigratingVuids.deleteMigratingVuid(diskID, vuid)
|
||||
default:
|
||||
}
|
||||
|
||||
@ -515,13 +515,13 @@ func TestAddMigrateTask(t *testing.T) {
|
||||
t1 := mockGenMigrateTask(proto.TaskTypeDiskDrop, "z0", 4, 100, proto.MigrateStateInited, MockMigrateVolInfoMap)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().AddMigrateTask(any, any).Return(nil)
|
||||
mgr.AddTask(ctx, t1)
|
||||
require.False(t, mgr.IsMigratingDisk(proto.DiskID(4)))
|
||||
require.True(t, mgr.IsMigratingDisk(proto.DiskID(4)))
|
||||
|
||||
mgr.taskType = proto.TaskTypeManualMigrate
|
||||
t1 = mockGenMigrateTask(proto.TaskTypeManualMigrate, "z0", 4, 100, proto.MigrateStateInited, MockMigrateVolInfoMap)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().AddMigrateTask(any, any).Return(nil)
|
||||
mgr.AddTask(ctx, t1)
|
||||
require.False(t, mgr.IsMigratingDisk(proto.DiskID(4)))
|
||||
require.True(t, mgr.IsMigratingDisk(proto.DiskID(4)))
|
||||
}
|
||||
{
|
||||
ctx := context.Background()
|
||||
@ -675,3 +675,31 @@ func TestMigrateAction(t *testing.T) {
|
||||
|
||||
mgr.Close()
|
||||
}
|
||||
|
||||
func TestMigrateDiskVuidMap(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
mgr := newMigrateMgr(t)
|
||||
mgr.taskType = proto.TaskTypeManualMigrate
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().AddMigrateTask(any, any).Return(nil)
|
||||
|
||||
// add
|
||||
t1 := mockGenMigrateTask(proto.TaskTypeManualMigrate, "z0", 4, 100, proto.MigrateStateInited, MockMigrateVolInfoMap)
|
||||
mgr.AddTask(ctx, t1)
|
||||
require.True(t, mgr.IsTaskExist(t1.SourceDiskID, t1.SourceVuid))
|
||||
|
||||
// delete
|
||||
t1.State = proto.MigrateStateWorkCompleted
|
||||
mgr.finishQueue.PushTask(t1.TaskID, t1)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().UpdateMigrateTask(any, any).Return(nil)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().DeleteMigrateTask(any, any).Return(nil)
|
||||
mgr.taskLogger.(*mocks.MockRecordLogEncoder).EXPECT().Encode(any).Return(nil)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().UpdateVolume(any, any, any, any).Return(nil)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().ReleaseVolumeUnit(any, any, any).Return(nil)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().GetVolumeInfo(any, any).Return(MockMigrateVolInfoMap[100], nil)
|
||||
mgr.clusterMgrCli.(*MockClusterMgrAPI).EXPECT().UnlockVolume(any, any, any).Return(nil)
|
||||
mgr.volumeUpdater.(*MockTaskAPI).EXPECT().UpdateLeaderVolumeCache(any, any).Return(nil)
|
||||
err := mgr.finishTask()
|
||||
require.NoError(t, err)
|
||||
|
||||
require.False(t, mgr.IsTaskExist(t1.SourceDiskID, t1.SourceVuid))
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user