From 78f9e1b74d80cb8f64f93e6f10ddd3092a3beb63 Mon Sep 17 00:00:00 2001 From: huanggze Date: Thu, 4 Jul 2019 20:28:58 +0800 Subject: [PATCH] wrap error messages Signed-off-by: huanggze --- pkg/apiserver/logging/logging.go | 30 ++++++++++----------- pkg/apiserver/tenant/tenant.go | 5 ++-- pkg/models/log/logcrd.go | 2 +- pkg/simple/client/elasticsearch/esclient.go | 10 +++---- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/pkg/apiserver/logging/logging.go b/pkg/apiserver/logging/logging.go index 5c75fca9e..9df5a91d3 100644 --- a/pkg/apiserver/logging/logging.go +++ b/pkg/apiserver/logging/logging.go @@ -21,6 +21,7 @@ package logging import ( "github.com/emicklei/go-restful" "github.com/golang/glog" + "kubesphere.io/kubesphere/pkg/errors" "kubesphere.io/kubesphere/pkg/models/log" es "kubesphere.io/kubesphere/pkg/simple/client/elasticsearch" fb "kubesphere.io/kubesphere/pkg/simple/client/fluentbit" @@ -32,7 +33,7 @@ func LoggingQueryCluster(request *restful.Request, response *restful.Response) { res := logQuery(log.QueryLevelCluster, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -43,7 +44,7 @@ func LoggingQueryWorkspace(request *restful.Request, response *restful.Response) res := logQuery(log.QueryLevelWorkspace, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -54,7 +55,7 @@ func LoggingQueryNamespace(request *restful.Request, response *restful.Response) res := logQuery(log.QueryLevelNamespace, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -65,7 +66,7 @@ func LoggingQueryWorkload(request *restful.Request, response *restful.Response) res := logQuery(log.QueryLevelWorkload, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -75,7 +76,7 @@ func LoggingQueryWorkload(request *restful.Request, response *restful.Response) func LoggingQueryPod(request *restful.Request, response *restful.Response) { res := logQuery(log.QueryLevelPod, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } response.WriteAsJson(res) @@ -84,7 +85,7 @@ func LoggingQueryPod(request *restful.Request, response *restful.Response) { func LoggingQueryContainer(request *restful.Request, response *restful.Response) { res := logQuery(log.QueryLevelContainer, request) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } response.WriteAsJson(res) @@ -114,7 +115,7 @@ func LoggingUpdateFluentbitFilters(request *restful.Request, response *restful.R func LoggingQueryFluentbitOutputs(request *restful.Request, response *restful.Response) { res := log.FluentbitOutputsQuery() if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } response.WriteAsJson(res) @@ -128,13 +129,13 @@ func LoggingInsertFluentbitOutput(request *restful.Request, response *restful.Re err := request.ReadEntity(&output) if err != nil { glog.Errorln(err) - res = &log.FluentbitOutputsResult{Status: http.StatusBadRequest} - } else { - res = log.FluentbitOutputInsert(output) + response.WriteHeaderAndEntity(http.StatusBadRequest, errors.Wrap(err)) + return } + res = log.FluentbitOutputInsert(output) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -150,15 +151,14 @@ func LoggingUpdateFluentbitOutput(request *restful.Request, response *restful.Re err := request.ReadEntity(&output) if err != nil { glog.Errorln(err) - res := &log.FluentbitOutputsResult{Status: http.StatusBadRequest} - response.WriteAsJson(res) + response.WriteHeaderAndEntity(http.StatusBadRequest, errors.Wrap(err)) return } res := log.FluentbitOutputUpdate(output, id) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } @@ -173,7 +173,7 @@ func LoggingDeleteFluentbitOutput(request *restful.Request, response *restful.Re res = log.FluentbitOutputDelete(id) if res.Status != http.StatusOK { - response.WriteHeaderAndEntity(res.Status, res.Error) + response.WriteHeaderAndEntity(res.Status, errors.New(res.Error)) return } diff --git a/pkg/apiserver/tenant/tenant.go b/pkg/apiserver/tenant/tenant.go index 488c94cdd..4e7e52d7f 100644 --- a/pkg/apiserver/tenant/tenant.go +++ b/pkg/apiserver/tenant/tenant.go @@ -335,7 +335,7 @@ func LogQuery(req *restful.Request, resp *restful.Response) { clusterRules, err := iam.GetUserClusterRules(username) if err != nil { - resp.WriteError(http.StatusInternalServerError, err) + resp.WriteHeaderAndEntity(http.StatusInternalServerError, errors.Wrap(err)) glog.Errorln(err) return } @@ -348,8 +348,9 @@ func LogQuery(req *restful.Request, resp *restful.Response) { namespaces := make([]string, 0) roles, err := iam.GetUserRoles("", username) if err != nil { - resp.WriteError(http.StatusInternalServerError, err) + resp.WriteHeaderAndEntity(http.StatusInternalServerError, errors.Wrap(err)) glog.Errorln(err) + return } for _, role := range roles { if !sliceutil.HasString(namespaces, role.Namespace) && iam.RulesMatchesRequired(role.Rules, rbacv1.PolicyRule{Verbs: []string{"get"}, Resources: []string{"*"}, APIGroups: []string{"logging.kubesphere.io"}}) { diff --git a/pkg/models/log/logcrd.go b/pkg/models/log/logcrd.go index b4acb2eec..7862313ae 100644 --- a/pkg/models/log/logcrd.go +++ b/pkg/models/log/logcrd.go @@ -232,7 +232,7 @@ func FluentbitOutputsQuery() *FluentbitOutputsResult { outputs, err := GetFluentbitOutputFromConfigMap() if err != nil { - result.Status = http.StatusNotFound + result.Status = http.StatusInternalServerError result.Error = err.Error() return &result } diff --git a/pkg/simple/client/elasticsearch/esclient.go b/pkg/simple/client/elasticsearch/esclient.go index 0e478e972..629c251bf 100644 --- a/pkg/simple/client/elasticsearch/esclient.go +++ b/pkg/simple/client/elasticsearch/esclient.go @@ -557,7 +557,7 @@ func Query(param QueryParameters) *QueryResult { operation, query, err := createQueryRequest(param) if err != nil { queryResult = new(QueryResult) - queryResult.Status = http.StatusNotFound + queryResult.Status = http.StatusInternalServerError queryResult.Error = err.Error() return queryResult } @@ -565,7 +565,7 @@ func Query(param QueryParameters) *QueryResult { es := readESConfigs() if es == nil { queryResult = new(QueryResult) - queryResult.Status = http.StatusNotFound + queryResult.Status = http.StatusInternalServerError queryResult.Error = "Elasticsearch configurations not found. Please check if they are properly configured." return queryResult } @@ -576,7 +576,7 @@ func Query(param QueryParameters) *QueryResult { if err != nil { glog.Errorln(err) queryResult = new(QueryResult) - queryResult.Status = http.StatusNotFound + queryResult.Status = http.StatusInternalServerError queryResult.Error = err.Error() return queryResult } @@ -586,7 +586,7 @@ func Query(param QueryParameters) *QueryResult { if err != nil { glog.Errorln(err) queryResult = new(QueryResult) - queryResult.Status = http.StatusNotFound + queryResult.Status = http.StatusInternalServerError queryResult.Error = err.Error() return queryResult } @@ -596,7 +596,7 @@ func Query(param QueryParameters) *QueryResult { if err != nil { glog.Errorln(err) queryResult = new(QueryResult) - queryResult.Status = http.StatusNotFound + queryResult.Status = http.StatusInternalServerError queryResult.Error = err.Error() return queryResult }