Bez popisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

stop_instance.go 901B

123456789101112131415161718192021222324252627
  1. package api
  2. import (
  3. "fmt"
  4. "log"
  5. "git.x2erp.com/qdy/go-base/ctx"
  6. "git.x2erp.com/qdy/go-base/model/response"
  7. "git.x2erp.com/qdy/go-svc-code/internal/opencode/container"
  8. )
  9. // StopInstanceHandler 停止项目OpenCode实例
  10. // 路由: POST /api/opencode/projects/:id/stop
  11. func StopInstanceHandler(manager *container.InstanceManager) func(string, *ctx.RequestContext) (*response.QueryResult[interface{}], error) {
  12. return func(id string, reqCtx *ctx.RequestContext) (*response.QueryResult[interface{}], error) {
  13. log.Printf("停止项目实例请求: 项目ID=%s", id)
  14. // 停止实例
  15. if err := manager.StopInstance(id); err != nil {
  16. log.Printf("停止实例失败: 项目=%s, 错误=%v", id, err)
  17. return ErrorResponse(fmt.Errorf("停止实例失败: %v", err))
  18. }
  19. log.Printf("实例停止成功: 项目=%s", id)
  20. return SuccessResponseWithMessage(true, "实例停止成功")
  21. }
  22. }