(cmd *cobra.Command, workspaceInfo workspace.WorkspaceInfo, logAction workspace.ActionEnum, k8sUtil *k8s.KubernetesUtil)
| 36 | var i18nInstance = i18n.GetInstance() |
| 37 | |
| 38 | func 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 | } |
no test coverage detected