add storageclass metrics list api

This commit is contained in:
wnxn
2018-06-13 15:59:14 +08:00
parent b10508f0c4
commit 3820417bb2
2 changed files with 104 additions and 15 deletions

View File

@@ -19,6 +19,11 @@ func Register(ws *restful.WebService, subPath string) {
To(GetScMetrics).Filter(route.RouteLogging)).
Consumes(restful.MIME_JSON, restful.MIME_XML).
Produces(restful.MIME_JSON)
ws.Route(ws.GET(subPath+"/storageclasses/metrics").
To(GetScMetricsList).Filter(route.RouteLogging)).
Consumes(restful.MIME_JSON, restful.MIME_XML).
Produces(restful.MIME_JSON)
}
// List all PersistentVolumeClaims of a specific StorageClass
@@ -34,14 +39,23 @@ func GetPvcListBySc(request *restful.Request, response *restful.Response) {
response.WriteAsJson(result)
}
// Get metrics of a specific StorageClass
// Get StorageClass item
// Extended API URL: "GET /api/v1alpha1/storage/storageclasses/{name}/metrics"
func GetScMetrics(request *restful.Request, response *restful.Response) {
scName := request.PathParameter("storageclass")
metrics, err := models.GetScMetrics(scName)
result, err := models.GetScItemMetrics(scName)
if err != nil {
response.WriteError(http.StatusInternalServerError, err)
}
response.WriteAsJson(result)
}
// Get StorageClass item list
// Extended API URI: "GET /api/v1alpha1/storage/storageclasses/metrics"
func GetScMetricsList(request *restful.Request, response *restful.Response) {
result, err := models.GetScItemMetricsList()
if err != nil {
response.WriteError(http.StatusInternalServerError, err)
}
result := models.ScMetrics{Name: scName, Metrics: metrics}
response.WriteAsJson(result)
}