MCPcopy
hub / github.com/cubefs/cubefs / TestServiceAPI

Function TestServiceAPI

blobstore/scheduler/service_test.go:179–298  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

177}
178
179func 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",

Callers

nothing calls this directly

Calls 15

EXPECTMethod · 0.95
NewMockClientAPIFunction · 0.92
ClusterIDTypeAlias · 0.92
DiskIDTypeAlias · 0.92
VidTypeAlias · 0.92
GenMigrateTaskIDFunction · 0.92
GenMigrateTaskPrefixFunction · 0.92
DetectStatusCodeFunction · 0.92
VuidTypeAlias · 0.92
runMockServiceFunction · 0.70
newMockServiceFunction · 0.70
GetServiceMethod · 0.65

Tested by

no test coverage detected