(req dto.AgentBatchOperateReq)
| 419 | } |
| 420 | |
| 421 | func (a AgentService) BatchOperate(req dto.AgentBatchOperateReq) ([]dto.AgentBatchOperateResult, error) { |
| 422 | operate := constant.AppOperate(strings.TrimSpace(req.Operate)) |
| 423 | if operate != constant.Start && operate != constant.Stop && operate != constant.Restart && operate != constant.Delete { |
| 424 | return nil, fmt.Errorf("operate %s is not supported", req.Operate) |
| 425 | } |
| 426 | agents, err := listBatchAgents(req.AgentType) |
| 427 | if err != nil { |
| 428 | return nil, err |
| 429 | } |
| 430 | results := make([]dto.AgentBatchOperateResult, 0, len(agents)) |
| 431 | for _, agent := range agents { |
| 432 | result := dto.AgentBatchOperateResult{ |
| 433 | AgentID: agent.ID, |
| 434 | AgentName: agent.Name, |
| 435 | AppInstallID: agent.AppInstallID, |
| 436 | } |
| 437 | if operate == constant.Delete { |
| 438 | if err := a.Delete(dto.AgentDeleteReq{ |
| 439 | ID: agent.ID, |
| 440 | TaskID: buildBatchOperateTaskID(req.TaskID, agent.ID), |
| 441 | ForceDelete: req.ForceDelete, |
| 442 | }); err != nil { |
| 443 | result.Message = err.Error() |
| 444 | } else { |
| 445 | result.Success = true |
| 446 | } |
| 447 | results = append(results, result) |
| 448 | continue |
| 449 | } |
| 450 | ctx, message := loadBatchAgentInstall(agent, req.AgentType) |
| 451 | if message != "" { |
| 452 | result.Message = message |
| 453 | results = append(results, result) |
| 454 | continue |
| 455 | } |
| 456 | install := ctx.install |
| 457 | result.AppInstallID = install.ID |
| 458 | if message := batchOperateSkipMessage(operate, install.Status); message != "" { |
| 459 | result.Success = true |
| 460 | result.Skipped = true |
| 461 | result.Message = message |
| 462 | results = append(results, result) |
| 463 | continue |
| 464 | } |
| 465 | if err := NewIAppInstalledService().Operate(request.AppInstalledOperate{ |
| 466 | InstallId: install.ID, |
| 467 | Operate: operate, |
| 468 | TaskID: buildBatchOperateTaskID(req.TaskID, agent.ID), |
| 469 | }); err != nil { |
| 470 | result.Message = err.Error() |
| 471 | } else { |
| 472 | result.Success = true |
| 473 | } |
| 474 | results = append(results, result) |
| 475 | } |
| 476 | return results, nil |
| 477 | } |
| 478 |
nothing calls this directly
no test coverage detected