(t *testing.T)
| 177 | } |
| 178 | |
| 179 | func TestServiceAPI(t *testing.T) { |
| 180 | runMockService(newMockService(t)) |
| 181 | ctr := gomock.NewController(t) |
| 182 | clusterMgrCli := mocks.NewMockClientAPI(ctr) |
| 183 | clusterMgrCli.EXPECT().GetService(any, any).AnyTimes().Return( |
| 184 | cmapi.ServiceInfo{Nodes: []cmapi.ServiceNode{{ClusterID: 1, Host: schedulerServer.URL}}}, nil) |
| 185 | |
| 186 | ctx := context.Background() |
| 187 | cli := api.New(&api.Config{}, clusterMgrCli, proto.ClusterID(1)) |
| 188 | idc := "z0" |
| 189 | diskID := proto.DiskID(1) |
| 190 | volumeID := proto.Vid(1) |
| 191 | taskTypes := []proto.TaskType{ |
| 192 | proto.TaskTypeBalance, proto.TaskTypeDiskDrop, |
| 193 | proto.TaskTypeDiskRepair, proto.TaskTypeManualMigrate, |
| 194 | } |
| 195 | // acquire task |
| 196 | task, err := cli.AcquireTask(ctx, &api.AcquireArgs{IDC: idc}) |
| 197 | require.NoError(t, err) |
| 198 | require.Equal(t, proto.TaskTypeDiskRepair, task.TaskType) |
| 199 | |
| 200 | for _, taskType := range taskTypes { |
| 201 | require.NoError(t, cli.ReclaimTask(ctx, &api.OperateTaskArgs{ |
| 202 | IDC: idc, TaskType: taskType, TaskID: client.GenMigrateTaskID(taskType, diskID, volumeID), |
| 203 | Src: []proto.VunitLocation{{Vuid: 1, Host: "127.0.0.1:xx", DiskID: 1}}, |
| 204 | })) |
| 205 | require.NoError(t, cli.CancelTask(ctx, &api.OperateTaskArgs{IDC: idc, TaskType: taskType, TaskID: client.GenMigrateTaskID(taskType, diskID, volumeID)})) |
| 206 | require.NoError(t, cli.CompleteTask(ctx, &api.OperateTaskArgs{IDC: idc, TaskType: taskType, TaskID: client.GenMigrateTaskID(taskType, diskID, volumeID)})) |
| 207 | require.NoError(t, cli.ReportTask(ctx, &api.TaskReportArgs{TaskType: taskType, TaskID: client.GenMigrateTaskID(taskType, diskID, volumeID)})) |
| 208 | } |
| 209 | |
| 210 | require.Error(t, cli.ReclaimTask(ctx, &api.OperateTaskArgs{IDC: idc, TaskType: "task"})) |
| 211 | require.Error(t, cli.CancelTask(ctx, &api.OperateTaskArgs{IDC: idc, TaskType: "task"})) |
| 212 | require.Error(t, cli.CompleteTask(ctx, &api.OperateTaskArgs{IDC: idc, TaskType: "task"})) |
| 213 | |
| 214 | // renewal task |
| 215 | _, err = cli.RenewalTask(ctx, &api.TaskRenewalArgs{ |
| 216 | IDC: "z0", |
| 217 | IDs: map[proto.TaskType][]string{ |
| 218 | proto.TaskTypeBalance: { |
| 219 | client.GenMigrateTaskPrefix(proto.TaskTypeBalance) + "1", |
| 220 | client.GenMigrateTaskPrefix(proto.TaskTypeBalance) + "2", |
| 221 | client.GenMigrateTaskPrefix(proto.TaskTypeBalance) + "3", |
| 222 | }, |
| 223 | proto.TaskTypeDiskRepair: { |
| 224 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskRepair) + "1", |
| 225 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskRepair) + "2", |
| 226 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskRepair) + "3", |
| 227 | }, |
| 228 | proto.TaskTypeDiskDrop: { |
| 229 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskDrop) + "1", |
| 230 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskDrop) + "2", |
| 231 | client.GenMigrateTaskPrefix(proto.TaskTypeDiskDrop) + "3", |
| 232 | }, |
| 233 | proto.TaskTypeManualMigrate: { |
| 234 | client.GenMigrateTaskPrefix(proto.TaskTypeManualMigrate) + "1", |
| 235 | client.GenMigrateTaskPrefix(proto.TaskTypeManualMigrate) + "2", |
| 236 | client.GenMigrateTaskPrefix(proto.TaskTypeManualMigrate) + "3", |
nothing calls this directly
no test coverage detected