@@ -21,6 +21,7 @@ package logging
|
|||||||
import (
|
import (
|
||||||
"github.com/emicklei/go-restful"
|
"github.com/emicklei/go-restful"
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"kubesphere.io/kubesphere/pkg/errors"
|
||||||
"kubesphere.io/kubesphere/pkg/models/log"
|
"kubesphere.io/kubesphere/pkg/models/log"
|
||||||
es "kubesphere.io/kubesphere/pkg/simple/client/elasticsearch"
|
es "kubesphere.io/kubesphere/pkg/simple/client/elasticsearch"
|
||||||
fb "kubesphere.io/kubesphere/pkg/simple/client/fluentbit"
|
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)
|
res := logQuery(log.QueryLevelCluster, request)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ func LoggingQueryWorkspace(request *restful.Request, response *restful.Response)
|
|||||||
res := logQuery(log.QueryLevelWorkspace, request)
|
res := logQuery(log.QueryLevelWorkspace, request)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +55,7 @@ func LoggingQueryNamespace(request *restful.Request, response *restful.Response)
|
|||||||
res := logQuery(log.QueryLevelNamespace, request)
|
res := logQuery(log.QueryLevelNamespace, request)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ func LoggingQueryWorkload(request *restful.Request, response *restful.Response)
|
|||||||
res := logQuery(log.QueryLevelWorkload, request)
|
res := logQuery(log.QueryLevelWorkload, request)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ func LoggingQueryWorkload(request *restful.Request, response *restful.Response)
|
|||||||
func LoggingQueryPod(request *restful.Request, response *restful.Response) {
|
func LoggingQueryPod(request *restful.Request, response *restful.Response) {
|
||||||
res := logQuery(log.QueryLevelPod, request)
|
res := logQuery(log.QueryLevelPod, request)
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
response.WriteAsJson(res)
|
response.WriteAsJson(res)
|
||||||
@@ -84,7 +85,7 @@ func LoggingQueryPod(request *restful.Request, response *restful.Response) {
|
|||||||
func LoggingQueryContainer(request *restful.Request, response *restful.Response) {
|
func LoggingQueryContainer(request *restful.Request, response *restful.Response) {
|
||||||
res := logQuery(log.QueryLevelContainer, request)
|
res := logQuery(log.QueryLevelContainer, request)
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
response.WriteAsJson(res)
|
response.WriteAsJson(res)
|
||||||
@@ -114,7 +115,7 @@ func LoggingUpdateFluentbitFilters(request *restful.Request, response *restful.R
|
|||||||
func LoggingQueryFluentbitOutputs(request *restful.Request, response *restful.Response) {
|
func LoggingQueryFluentbitOutputs(request *restful.Request, response *restful.Response) {
|
||||||
res := log.FluentbitOutputsQuery()
|
res := log.FluentbitOutputsQuery()
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
response.WriteAsJson(res)
|
response.WriteAsJson(res)
|
||||||
@@ -128,13 +129,13 @@ func LoggingInsertFluentbitOutput(request *restful.Request, response *restful.Re
|
|||||||
err := request.ReadEntity(&output)
|
err := request.ReadEntity(&output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
res = &log.FluentbitOutputsResult{Status: http.StatusBadRequest}
|
response.WriteHeaderAndEntity(http.StatusBadRequest, errors.Wrap(err))
|
||||||
} else {
|
return
|
||||||
res = log.FluentbitOutputInsert(output)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
res = log.FluentbitOutputInsert(output)
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,15 +151,14 @@ func LoggingUpdateFluentbitOutput(request *restful.Request, response *restful.Re
|
|||||||
err := request.ReadEntity(&output)
|
err := request.ReadEntity(&output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
res := &log.FluentbitOutputsResult{Status: http.StatusBadRequest}
|
response.WriteHeaderAndEntity(http.StatusBadRequest, errors.Wrap(err))
|
||||||
response.WriteAsJson(res)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
res := log.FluentbitOutputUpdate(output, id)
|
res := log.FluentbitOutputUpdate(output, id)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ func LoggingDeleteFluentbitOutput(request *restful.Request, response *restful.Re
|
|||||||
res = log.FluentbitOutputDelete(id)
|
res = log.FluentbitOutputDelete(id)
|
||||||
|
|
||||||
if res.Status != http.StatusOK {
|
if res.Status != http.StatusOK {
|
||||||
response.WriteHeaderAndEntity(res.Status, res.Error)
|
response.WriteHeaderAndEntity(res.Status, errors.New(res.Error))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ func LogQuery(req *restful.Request, resp *restful.Response) {
|
|||||||
|
|
||||||
clusterRules, err := iam.GetUserClusterRules(username)
|
clusterRules, err := iam.GetUserClusterRules(username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.WriteError(http.StatusInternalServerError, err)
|
resp.WriteHeaderAndEntity(http.StatusInternalServerError, errors.Wrap(err))
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -348,8 +348,9 @@ func LogQuery(req *restful.Request, resp *restful.Response) {
|
|||||||
namespaces := make([]string, 0)
|
namespaces := make([]string, 0)
|
||||||
roles, err := iam.GetUserRoles("", username)
|
roles, err := iam.GetUserRoles("", username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.WriteError(http.StatusInternalServerError, err)
|
resp.WriteHeaderAndEntity(http.StatusInternalServerError, errors.Wrap(err))
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
for _, role := range roles {
|
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"}}) {
|
if !sliceutil.HasString(namespaces, role.Namespace) && iam.RulesMatchesRequired(role.Rules, rbacv1.PolicyRule{Verbs: []string{"get"}, Resources: []string{"*"}, APIGroups: []string{"logging.kubesphere.io"}}) {
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ func FluentbitOutputsQuery() *FluentbitOutputsResult {
|
|||||||
|
|
||||||
outputs, err := GetFluentbitOutputFromConfigMap()
|
outputs, err := GetFluentbitOutputFromConfigMap()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result.Status = http.StatusNotFound
|
result.Status = http.StatusInternalServerError
|
||||||
result.Error = err.Error()
|
result.Error = err.Error()
|
||||||
return &result
|
return &result
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -557,7 +557,7 @@ func Query(param QueryParameters) *QueryResult {
|
|||||||
operation, query, err := createQueryRequest(param)
|
operation, query, err := createQueryRequest(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
queryResult = new(QueryResult)
|
queryResult = new(QueryResult)
|
||||||
queryResult.Status = http.StatusNotFound
|
queryResult.Status = http.StatusInternalServerError
|
||||||
queryResult.Error = err.Error()
|
queryResult.Error = err.Error()
|
||||||
return queryResult
|
return queryResult
|
||||||
}
|
}
|
||||||
@@ -565,7 +565,7 @@ func Query(param QueryParameters) *QueryResult {
|
|||||||
es := readESConfigs()
|
es := readESConfigs()
|
||||||
if es == nil {
|
if es == nil {
|
||||||
queryResult = new(QueryResult)
|
queryResult = new(QueryResult)
|
||||||
queryResult.Status = http.StatusNotFound
|
queryResult.Status = http.StatusInternalServerError
|
||||||
queryResult.Error = "Elasticsearch configurations not found. Please check if they are properly configured."
|
queryResult.Error = "Elasticsearch configurations not found. Please check if they are properly configured."
|
||||||
return queryResult
|
return queryResult
|
||||||
}
|
}
|
||||||
@@ -576,7 +576,7 @@ func Query(param QueryParameters) *QueryResult {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
queryResult = new(QueryResult)
|
queryResult = new(QueryResult)
|
||||||
queryResult.Status = http.StatusNotFound
|
queryResult.Status = http.StatusInternalServerError
|
||||||
queryResult.Error = err.Error()
|
queryResult.Error = err.Error()
|
||||||
return queryResult
|
return queryResult
|
||||||
}
|
}
|
||||||
@@ -586,7 +586,7 @@ func Query(param QueryParameters) *QueryResult {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
queryResult = new(QueryResult)
|
queryResult = new(QueryResult)
|
||||||
queryResult.Status = http.StatusNotFound
|
queryResult.Status = http.StatusInternalServerError
|
||||||
queryResult.Error = err.Error()
|
queryResult.Error = err.Error()
|
||||||
return queryResult
|
return queryResult
|
||||||
}
|
}
|
||||||
@@ -596,7 +596,7 @@ func Query(param QueryParameters) *QueryResult {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorln(err)
|
glog.Errorln(err)
|
||||||
queryResult = new(QueryResult)
|
queryResult = new(QueryResult)
|
||||||
queryResult.Status = http.StatusNotFound
|
queryResult.Status = http.StatusInternalServerError
|
||||||
queryResult.Error = err.Error()
|
queryResult.Error = err.Error()
|
||||||
return queryResult
|
return queryResult
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user