MCPcopy Create free account
hub / github.com/OpenAtomFoundation/SmartIDE / preRun

Function preRun

cli/cmd/new/global.go:38–81  ·  view source on GitHub ↗
(cmd *cobra.Command, workspaceInfo workspace.WorkspaceInfo, logAction workspace.ActionEnum, k8sUtil *k8s.KubernetesUtil)

Source from the content-addressed store, hash-verified

36var i18nInstance = i18n.GetInstance()
37
38func preRun(cmd *cobra.Command, workspaceInfo workspace.WorkspaceInfo, logAction workspace.ActionEnum, k8sUtil *k8s.KubernetesUtil) func(err error) {
39 mode, _ := cmd.Flags().GetString("mode")
40 isModeServer := strings.ToLower(mode) == "server"
41 // 错误反馈
42 serverFeedback := func(err error) {
43 if !isModeServer {
44 return
45 }
46 if err != nil {
47 errFeedback, ok := err.(*model.FeedbackError)
48 if !ok {
49 tmp := model.CreateFeedbackError(err.Error(), true)
50 errFeedback = &tmp
51 } else { // 不需要重试的错误,直接删除namespace
52 if !errFeedback.IsRetry && k8sUtil != nil && workspaceInfo.Mode == workspace.WorkingMode_K8s {
53 k8sUtil.ExecKubectlCommandCombined("delete namespace --force "+workspaceInfo.K8sInfo.Namespace, "")
54 }
55 }
56 errMsgBits, _ := json.Marshal(errFeedback)
57 smartideServer.Feedback_Finish(smartideServer.FeedbackCommandEnum_New, cmd, false, nil, workspaceInfo, string(errMsgBits), "")
58 common.CheckError(err) // exit
59 }
60 }
61
62 // 日志
63 if apiHost, _ := cmd.Flags().GetString(smartideServer.Flags_ServerHost); apiHost != "" {
64 wsURL := fmt.Sprint(strings.ReplaceAll(strings.ReplaceAll(apiHost, "https", "ws"), "http", "ws"), "/ws/smartide/ws")
65 common.WebsocketStart(wsURL)
66 token, _ := cmd.Flags().GetString(smartideServer.Flags_ServerToken)
67 if token != "" {
68 if workspaceIdStr, _ := cmd.Flags().GetString(smartideServer.Flags_ServerWorkspaceid); workspaceIdStr != "" {
69 if no, _ := workspace.GetWorkspaceNo(workspaceIdStr, token, apiHost); no != "" {
70 if pid, err := workspace.GetParentId(no, logAction, token, apiHost); err == nil && pid > 0 {
71 common.SmartIDELog.Ws_id = no
72 common.SmartIDELog.ParentId = pid
73 }
74 }
75 }
76
77 }
78 }
79
80 return serverFeedback
81}

Callers 2

K8sNew_ServerFunction · 0.70
VmNewFunction · 0.70

Calls 2

ErrorMethod · 0.45

Tested by

no test coverage detected