open-nomad/vendor/github.com/nicolai86/scaleway-sdk/dashboard.go

43 lines
1,007 B
Go
Raw Normal View History

2018-04-30 15:47:39 +00:00
package api
import (
"encoding/json"
"net/http"
"net/url"
)
// DashboardResp represents a dashboard received from the API
type DashboardResp struct {
Dashboard Dashboard
2018-04-30 15:47:39 +00:00
}
// Dashboard represents a dashboard
type Dashboard struct {
2018-04-30 15:47:39 +00:00
VolumesCount int `json:"volumes_count"`
RunningServersCount int `json:"running_servers_count"`
ImagesCount int `json:"images_count"`
SnapshotsCount int `json:"snapshots_count"`
ServersCount int `json:"servers_count"`
IPsCount int `json:"ips_count"`
}
// GetDashboard returns the dashboard
func (s *API) GetDashboard() (*Dashboard, error) {
2018-04-30 15:47:39 +00:00
resp, err := s.GetResponsePaginate(s.computeAPI, "dashboard", url.Values{})
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := s.handleHTTPError([]int{http.StatusOK}, resp)
if err != nil {
return nil, err
}
var dashboard DashboardResp
2018-04-30 15:47:39 +00:00
if err = json.Unmarshal(body, &dashboard); err != nil {
return nil, err
}
return &dashboard.Dashboard, nil
}