diff --git a/cli/cmd/predict.go b/cli/cmd/predict.go index dfaeb90dca..af7b55b5d9 100644 --- a/cli/cmd/predict.go +++ b/cli/cmd/predict.go @@ -27,7 +27,6 @@ import ( "github.com/cortexlabs/cortex/pkg/lib/errors" "github.com/cortexlabs/cortex/pkg/lib/files" "github.com/cortexlabs/cortex/pkg/lib/json" - libstrings "github.com/cortexlabs/cortex/pkg/lib/strings" s "github.com/cortexlabs/cortex/pkg/lib/strings" libtime "github.com/cortexlabs/cortex/pkg/lib/time" "github.com/cortexlabs/cortex/pkg/lib/urls" @@ -83,7 +82,7 @@ var predictCmd = &cobra.Command{ predictResponse, err := makePredictRequest(apiURL, samplesJSONPath) if err != nil { if strings.Contains(err.Error(), "503 Service Temporarily Unavailable") || strings.Contains(err.Error(), "502 Bad Gateway") { - errors.Exit(ErrorAPINotReady(apiName, resource.StatusAPIUpdating.Message())) + errors.Exit(ErrorAPINotReady(apiName, resource.StatusUpdating.Message())) } errors.Exit(err) } @@ -120,7 +119,7 @@ var predictCmd = &cobra.Command{ json, _ := json.Marshal(prediction.PredictedValueReversed) fmt.Println(s.TrimPrefixAndSuffix(string(json), "\"")) } else { - fmt.Println(libstrings.Round(prediction.PredictedValue, 2, true)) + fmt.Println(s.Round(prediction.PredictedValue, 2, true)) } } } diff --git a/pkg/operator/api/resource/status.go b/pkg/operator/api/resource/status.go index f400246710..92fc92352e 100644 --- a/pkg/operator/api/resource/status.go +++ b/pkg/operator/api/resource/status.go @@ -90,27 +90,24 @@ const ( StatusSkipped StatusParentFailed StatusParentKilled + StatusKilledOOM // Data statuses - StatusDataRunning - StatusDataSucceeded - StatusDataFailed - StatusDataKilled + StatusRunning + StatusSucceeded + StatusFailed + StatusKilled // API statuses - StatusAPIUpdating - StatusAPIReady - StatusAPIStopping - StatusAPIStopped - StatusAPIError + StatusUpdating + StatusReady + StatusStopping + StatusStopped + StatusError // Additional API group statuses (i.e. aggregated API status) - StatusAPIGroupPendingUpdate - StatusAPIGroupParentFailed - StatusAPIGroupParentKilled - StatusAPIGroupUpdateSkipped - - StatusDataKilledOOM + StatusPendingUpdate + StatusUpdateSkipped ) var statusCodes = []string{ @@ -122,37 +119,35 @@ var statusCodes = []string{ "status_skipped", "status_parent_failed", "status_parent_killed", + "status_killed_oom", - "status_data_running", - "status_data_succeeded", - "status_data_failed", - "status_data_killed", - - "status_api_updating", - "status_api_ready", - "status_api_stopping", - "status_api_stopped", - "status_api_error", + "status_running", + "status_succeeded", + "status_failed", + "status_killed", - "status_api_group_pending_update", - "status_api_group_parent_failed", - "status_api_group_parent_killed", - "status_api_group_update_skipped", + "status_updating", + "status_ready", + "status_stopping", + "status_stopped", + "status_error", - "status_data_oom", + "status_pending_update", + "status_update_skipped", } -var _ = [1]int{}[int(StatusDataKilledOOM)-(len(statusCodes)-1)] // Ensure list length matches +var _ = [1]int{}[int(StatusUpdateSkipped)-(len(statusCodes)-1)] // Ensure list length matches var statusCodeMessages = []string{ "unknown", // StatusUnknown - "pending", // StatusPending - "compute unavailable", // StatusPendingCompute - "pending", // StatusWaiting - "skipped", // StatusSkipped - "upstream error", // StatusParentFailed - "upstream termination", // StatusParentKilled + "pending", // StatusPending + "compute unavailable", // StatusPendingCompute + "pending", // StatusWaiting + "skipped", // StatusSkipped + "upstream error", // StatusParentFailed + "upstream termination", // StatusParentKilled + "terminated (out of mem)", // StatusDataOOM "running", // StatusDataRunning "ready", // StatusDataSucceeded @@ -165,15 +160,12 @@ var statusCodeMessages = []string{ "stopped", // StatusAPIStopped "error", // StatusAPIError - "update pending", // StatusAPIGroupPendingUpdate - "upstream error", // StatusAPIGroupParentFailed - "upstream termination", // StatusAPIGroupParentKilled - "update skipped", // StatusAPIGroupUpdateSkipped + "update pending", // StatusAPIGroupPendingUpdate + "update skipped", // StatusAPIGroupUpdateSkipped - "terminated (out of mem)", // StatusDataOOM } -var _ = [1]int{}[int(StatusDataKilledOOM)-(len(statusCodeMessages)-1)] // Ensure list length matches +var _ = [1]int{}[int(StatusUpdateSkipped)-(len(statusCodeMessages)-1)] // Ensure list length matches // StatusDataRunning aliases const ( @@ -193,27 +185,24 @@ var statusSortBuckets = []int{ 2, // StatusSkipped 2, // StatusParentFailed 2, // StatusParentKilled + 1, // StatusKilledOOM - 3, // StatusDataRunning - 0, // StatusDataSucceeded - 1, // StatusDataFailed - 1, // StatusDataKilled - - 3, // StatusAPIUpdating - 0, // StatusAPIReady - 3, // StatusAPIStopping - 1, // StatusAPIStopped - 1, // StatusAPIError + 3, // StatusRunning + 0, // StatusSucceeded + 1, // StatusFailed + 1, // StatusKilled - 0, // StatusAPIGroupPendingUpdate - 2, // StatusAPIGroupParentFailed - 2, // StatusAPIGroupParentKilled - 2, // StatusAPIGroupUpdateSkipped + 3, // StatusUpdating + 0, // StatusReady + 3, // StatusStopping + 1, // StatusStopped + 1, // StatusError - 1, // StatusDataKilledOOM + 0, // StatusPendingUpdate + 2, // StatusUpdateSkipped } -var _ = [1]int{}[int(StatusDataKilledOOM)-(len(statusSortBuckets)-1)] // Ensure list length matches +var _ = [1]int{}[int(StatusUpdateSkipped)-(len(statusSortBuckets)-1)] // Ensure list length matches func (code StatusCode) String() string { if int(code) < 0 || int(code) >= len(statusCodes) { @@ -237,7 +226,7 @@ func (code StatusCode) SortBucket() int { } func (status *DataStatus) Message() string { - if status.Code == StatusDataRunning { + if status.Code == StatusRunning { switch status.ResourceType { case RawColumnType: return RawColumnRunningMessage diff --git a/pkg/operator/workloads/api_status.go b/pkg/operator/workloads/api_status.go index 268d7470ce..56187a386f 100644 --- a/pkg/operator/workloads/api_status.go +++ b/pkg/operator/workloads/api_status.go @@ -164,22 +164,22 @@ func getReplicaCountsMap(podList []corev1.Pod, ctx *context.Context) map[string] func apiStatusCode(apiStatus *resource.APIStatus, failedWorkloadIDs strset.Set) resource.StatusCode { if failedWorkloadIDs.Has(apiStatus.WorkloadID) { - return resource.StatusAPIError + return resource.StatusError } if apiStatus.RequestedReplicas == 0 { if apiStatus.TotalReady() > 0 { - return resource.StatusAPIStopping + return resource.StatusStopping } - return resource.StatusAPIStopped + return resource.StatusStopped } if apiStatus.ReadyUpdated == apiStatus.RequestedReplicas { - return resource.StatusAPIReady + return resource.StatusReady } if apiStatus.FailedUpdated > 0 { - return resource.StatusAPIError + return resource.StatusError } if apiStatus.TotalReady() > 0 { - return resource.StatusAPIUpdating + return resource.StatusUpdating } return resource.StatusPending @@ -195,15 +195,15 @@ func updateAPIStatusCodeByParents(apiStatus *resource.APIStatus, dataStatuses ma parentSkipped := false for dependency := range allDependencies { switch dataStatuses[dependency].Code { - case resource.StatusDataKilled, resource.StatusDataKilledOOM: + case resource.StatusKilled, resource.StatusKilledOOM: apiStatus.Code = resource.StatusParentKilled return - case resource.StatusDataFailed: + case resource.StatusFailed: apiStatus.Code = resource.StatusParentFailed return case resource.StatusSkipped: parentSkipped = true - case resource.StatusDataSucceeded: + case resource.StatusSucceeded: numSucceeded++ } } @@ -214,7 +214,7 @@ func updateAPIStatusCodeByParents(apiStatus *resource.APIStatus, dataStatuses ma } if numSucceeded == len(allDependencies) { - apiStatus.Code = resource.StatusAPIUpdating + apiStatus.Code = resource.StatusUpdating } } @@ -276,7 +276,7 @@ func getActiveAPIStatus(apiStatuses []*resource.APIStatus, ctx *context.Context) func apiGroupStatusCode(apiStatuses []*resource.APIStatus, ctx *context.Context) resource.StatusCode { if len(apiStatuses) == 0 { - return resource.StatusAPIStopped + return resource.StatusStopped } apiName := apiStatuses[0].APIName @@ -285,10 +285,10 @@ func apiGroupStatusCode(apiStatuses []*resource.APIStatus, ctx *context.Context) if ctxAPI == nil { for _, apiStatus := range apiStatuses { if apiStatus.TotalReady() > 0 { - return resource.StatusAPIStopping + return resource.StatusStopping } } - return resource.StatusAPIStopped + return resource.StatusStopped } var ctxAPIStatus *resource.APIStatus @@ -306,30 +306,18 @@ func apiGroupStatusCode(apiStatuses []*resource.APIStatus, ctx *context.Context) } switch ctxAPIStatus.Code { - case resource.StatusUnknown: - return resource.StatusUnknown + case resource.StatusUnknown, resource.StatusPendingCompute, + resource.StatusParentFailed, resource.StatusParentKilled, resource.StatusUpdating, + resource.StatusReady, resource.StatusStopping, resource.StatusError: + return ctxAPIStatus.Code case resource.StatusPending: - return resource.StatusAPIGroupPendingUpdate - case resource.StatusPendingCompute: - return resource.StatusPendingCompute + return resource.StatusPendingUpdate case resource.StatusWaiting: - return resource.StatusAPIUpdating + return resource.StatusUpdating case resource.StatusSkipped: - return resource.StatusAPIGroupUpdateSkipped - case resource.StatusParentFailed: - return resource.StatusAPIGroupParentFailed - case resource.StatusParentKilled: - return resource.StatusAPIGroupParentKilled - case resource.StatusAPIUpdating: - return resource.StatusAPIUpdating - case resource.StatusAPIReady: - return resource.StatusAPIReady - case resource.StatusAPIStopping: - return resource.StatusAPIStopping - case resource.StatusAPIStopped: - return resource.StatusAPIGroupPendingUpdate - case resource.StatusAPIError: - return resource.StatusAPIError + return resource.StatusUpdateSkipped + case resource.StatusStopped: + return resource.StatusPendingUpdate } return resource.StatusUnknown @@ -346,7 +334,7 @@ func setInsufficientComputeAPIStatusCodes(apiStatuses map[string]*resource.APISt } for _, apiStatus := range apiStatuses { - if apiStatus.Code == resource.StatusPending || apiStatus.Code == resource.StatusWaiting || apiStatus.Code == resource.StatusAPIUpdating { + if apiStatus.Code == resource.StatusPending || apiStatus.Code == resource.StatusWaiting || apiStatus.Code == resource.StatusUpdating { if _, ok := stalledWorkloads[apiStatus.WorkloadID]; ok { apiStatus.Code = resource.StatusPendingCompute } diff --git a/pkg/operator/workloads/data_status.go b/pkg/operator/workloads/data_status.go index eccc8c2dc2..a6baa1eacc 100644 --- a/pkg/operator/workloads/data_status.go +++ b/pkg/operator/workloads/data_status.go @@ -67,18 +67,18 @@ func dataStatusCode(dataSavedStatus *resource.DataSavedStatus) resource.StatusCo return resource.StatusPending } if dataSavedStatus.End == nil { - return resource.StatusDataRunning + return resource.StatusRunning } switch dataSavedStatus.ExitCode { case resource.ExitCodeDataSucceeded: - return resource.StatusDataSucceeded + return resource.StatusSucceeded case resource.ExitCodeDataFailed: - return resource.StatusDataFailed + return resource.StatusFailed case resource.ExitCodeDataKilled: - return resource.StatusDataKilled + return resource.StatusKilled case resource.ExitCodeDataOOM: - return resource.StatusDataKilledOOM + return resource.StatusKilledOOM } return resource.StatusUnknown @@ -93,15 +93,15 @@ func updateDataStatusCodeByParents(dataStatus *resource.DataStatus, dataStatuses parentSkipped := false for dependency := range allDependencies { switch dataStatuses[dependency].Code { - case resource.StatusDataKilled, resource.StatusDataKilledOOM: + case resource.StatusKilled, resource.StatusKilledOOM: dataStatus.Code = resource.StatusParentKilled return - case resource.StatusDataFailed: + case resource.StatusFailed: dataStatus.Code = resource.StatusParentFailed return case resource.StatusSkipped: parentSkipped = true - case resource.StatusDataSucceeded: + case resource.StatusSucceeded: numSucceeded++ } } @@ -150,7 +150,7 @@ func didSparkShortCircuit(dataStatuses map[string]*resource.DataStatus, ctx *con if _, ok := sparkResources[dataStatus.ResourceID]; !ok { continue } - if dataStatus.Code == resource.StatusDataFailed || dataStatus.Code == resource.StatusDataKilled { + if dataStatus.Code == resource.StatusFailed || dataStatus.Code == resource.StatusKilled { return true } }