MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / BatchOperate

Method BatchOperate

agent/app/service/agents.go:421–477  ·  view source on GitHub ↗
(req dto.AgentBatchOperateReq)

Source from the content-addressed store, hash-verified

419}
420
421func (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

Callers

nothing calls this directly

Calls 8

DeleteMethod · 0.95
listBatchAgentsFunction · 0.85
buildBatchOperateTaskIDFunction · 0.85
loadBatchAgentInstallFunction · 0.85
batchOperateSkipMessageFunction · 0.85
NewIAppInstalledServiceFunction · 0.85
OperateMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected