Merge pull request #4203 from zhu733756/master

fix API specification for #4194
This commit is contained in:
KubeSphere CI Bot
2021-09-02 11:45:13 +08:00
committed by GitHub
4 changed files with 14 additions and 8 deletions

View File

@@ -1,3 +1,3 @@
#! /bin/bash
curl -d '{"grafanaDashboardName":"test2","grafanaDashboardUrl":"https://grafana.com/api/dashboards/7362/revisions/5/download"}' -H "Content-Type: application/json" localhost:9090/kapis/monitoring.kubesphere.io/v1alpha3/dashboard/template
curl -d '{"grafanaDashboardUrl":"https://grafana.com/api/dashboards/7362/revisions/5/download", "description":"this is a test dashboard."}' -H "Content-Type: application/json" localhost:9090/kapis/monitoring.kubesphere.io/v1alpha3/clusterdashboards/test1/template

View File

@@ -328,7 +328,9 @@ func (h handler) handleGrafanaDashboardImport(req *restful.Request, resp *restfu
return
}
if entity.GrafanaDashboardName == "" {
grafanaDashboardName := req.PathParameter("grafanaDashboardName")
if grafanaDashboardName == "" {
err := errors.New("the requested parameter grafanaDashboardName cannot be empty")
api.HandleBadRequest(resp, nil, err)
return
@@ -375,19 +377,22 @@ func (h handler) handleGrafanaDashboardImport(req *restful.Request, resp *restfu
}
c := converter.NewConverter()
convertedDashboard, err := c.ConvertToDashboard(grafanaDashboardContent, true, "", entity.GrafanaDashboardName)
convertedDashboard, err := c.ConvertToDashboard(grafanaDashboardContent, true, "", grafanaDashboardName)
if err != nil {
api.HandleBadRequest(resp, nil, err)
return
}
annotation := map[string]string{"kubesphere.io/description": entity.Description}
dashboard := monitoringdashboardv1alpha2.ClusterDashboard{
TypeMeta: v1.TypeMeta{
APIVersion: convertedDashboard.APIVersion,
Kind: convertedDashboard.Kind,
},
ObjectMeta: v1.ObjectMeta{
Name: convertedDashboard.Metadata["name"],
Name: convertedDashboard.Metadata["name"],
Annotations: annotation,
},
Spec: *convertedDashboard.Spec,
}
@@ -406,7 +411,7 @@ func (h handler) handleGrafanaDashboardImport(req *restful.Request, resp *restfu
DoRaw(ctx)
if err == nil {
api.HandleBadRequest(resp, nil, errors.New("a dashboard with the same name already exists!"))
api.HandleBadRequest(resp, nil, errors.New("a dashboard with the same name already exists."))
return
}

View File

@@ -506,9 +506,10 @@ func AddToContainer(c *restful.Container, k8sClient kubernetes.Interface, monito
Returns(http.StatusOK, respOK, monitoring.Metric{})).
Produces(restful.MIME_JSON)
ws.Route(ws.POST("/dashboard/template").
ws.Route(ws.POST("/clusterdashboards/{grafanaDashboardName}/template").
To(h.handleGrafanaDashboardImport).
Doc("Convert Grafana templates to KubeSphere dashboards.").
Doc("Convert Grafana templates to KubeSphere clusterdashboards.").
Param(ws.PathParameter("grafanaDashboardName", "The name of the Grafana template to be converted").DataType("string").Required(true)).
Metadata(restfulspec.KeyOpenAPITags, []string{constants.DashboardTag}).
Writes(monitoringdashboardv1alpha2.ClusterDashboard{}).
Returns(http.StatusOK, respOK, monitoringdashboardv1alpha2.ClusterDashboard{})).

View File

@@ -50,9 +50,9 @@ type MetricData struct {
}
type DashboardEntity struct {
GrafanaDashboardName string `json:"grafanaDashboardName"`
GrafanaDashboardUrl string `json:"grafanaDashboardUrl,omitempty"`
GrafanaDashboardContent string `json:"grafanaDashboardContent,omitempty"`
Description string `json:"description,omitempty"`
}
// The first element is the timestamp, the second is the metric value.