(req dto.AgentPluginUpgradeReq)
| 398 | } |
| 399 | |
| 400 | func (a AgentService) UpgradePlugin(req dto.AgentPluginUpgradeReq) error { |
| 401 | agent, install, err := a.loadAgentAndInstall(req.AgentID) |
| 402 | if err != nil { |
| 403 | return err |
| 404 | } |
| 405 | if err := task.CheckScopeTaskIsExecuting(task.TaskScopeAI, req.AgentID); err != nil { |
| 406 | return err |
| 407 | } |
| 408 | spec, pluginID, err := resolvePluginMeta(req.Type) |
| 409 | if err != nil { |
| 410 | return err |
| 411 | } |
| 412 | upgradeTask, err := task.NewTaskWithOps(req.Type, task.TaskUpgrade, task.TaskScopeAI, req.TaskID, req.AgentID) |
| 413 | if err != nil { |
| 414 | return err |
| 415 | } |
| 416 | upgradeTask.AddSubTask("Upgrade OpenClaw plugin", func(t *task.Task) error { |
| 417 | mgr := cmd.NewCommandMgr(cmd.WithTask(*t), cmd.WithContext(t.TaskCtx), cmd.WithTimeout(10*time.Minute)) |
| 418 | if err := uninstallOpenclawPlugin(mgr, install.ContainerName, pluginID); err != nil { |
| 419 | return err |
| 420 | } |
| 421 | time.Sleep(2 * time.Second) |
| 422 | if err := installOpenclawPlugin(mgr, install.ContainerName, spec, pluginID); err != nil { |
| 423 | return err |
| 424 | } |
| 425 | conf, err := readOpenclawConfig(agent.ConfigPath) |
| 426 | if err != nil { |
| 427 | return err |
| 428 | } |
| 429 | appendPluginAllow(conf, pluginID) |
| 430 | return writeOpenclawConfigRaw(agent.ConfigPath, conf) |
| 431 | }, nil) |
| 432 | go func() { |
| 433 | if err := upgradeTask.Execute(); err != nil { |
| 434 | global.LOG.Errorf("upgrade openclaw plugin failed: %v", err) |
| 435 | } |
| 436 | }() |
| 437 | return nil |
| 438 | } |
| 439 | |
| 440 | func (a AgentService) UninstallPlugin(req dto.AgentPluginUninstallReq) error { |
| 441 | agent, install, err := a.loadAgentAndInstall(req.AgentID) |
nothing calls this directly
no test coverage detected