Merge pull request #4203 from zhu733756/master
fix API specification for #4194
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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{})).
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user