blob: 39e561882c548d4ee05d7578371bbf6b21be5840 [file] [log] [blame]
package testing
import (
"fmt"
"math"
"net/http"
"testing"
"gerrit.mcp.mirantis.net/debian/gophercloud.git/openstack/blockstorage/extensions/schedulerstats"
"gerrit.mcp.mirantis.net/debian/gophercloud.git/testhelper"
"gerrit.mcp.mirantis.net/debian/gophercloud.git/testhelper/client"
)
const StoragePoolsListBody = `
{
"pools": [
{
"name": "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd"
},
{
"name": "rbd:cinder.volumes.hdd@cinder.volumes#cinder.volumes.hdd"
}
]
}
`
const StoragePoolsListBodyDetail = `
{
"pools": [
{
"capabilities": {
"driver_version": "1.2.0",
"filter_function": null,
"free_capacity_gb": 64765,
"goodness_function": null,
"multiattach": false,
"reserved_percentage": 0,
"storage_protocol": "ceph",
"timestamp": "2016-11-24T10:33:51.248360",
"total_capacity_gb": 787947.93,
"vendor_name": "Open Source",
"volume_backend_name": "cinder.volumes.ssd"
},
"name": "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd"
},
{
"capabilities": {
"driver_version": "1.2.0",
"filter_function": null,
"free_capacity_gb": "unknown",
"goodness_function": null,
"multiattach": false,
"reserved_percentage": 0,
"storage_protocol": "ceph",
"timestamp": "2016-11-24T10:33:43.138628",
"total_capacity_gb": "infinite",
"vendor_name": "Open Source",
"volume_backend_name": "cinder.volumes.hdd"
},
"name": "rbd:cinder.volumes.hdd@cinder.volumes.hdd#cinder.volumes.hdd"
}
]
}
`
var (
StoragePoolFake1 = schedulerstats.StoragePool{
Name: "rbd:cinder.volumes.ssd@cinder.volumes.ssd#cinder.volumes.ssd",
Capabilities: schedulerstats.Capabilities{
DriverVersion: "1.2.0",
FreeCapacityGB: 64765,
StorageProtocol: "ceph",
TotalCapacityGB: 787947.93,
VendorName: "Open Source",
VolumeBackendName: "cinder.volumes.ssd",
},
}
StoragePoolFake2 = schedulerstats.StoragePool{
Name: "rbd:cinder.volumes.hdd@cinder.volumes.hdd#cinder.volumes.hdd",
Capabilities: schedulerstats.Capabilities{
DriverVersion: "1.2.0",
FreeCapacityGB: 0.0,
StorageProtocol: "ceph",
TotalCapacityGB: math.Inf(1),
VendorName: "Open Source",
VolumeBackendName: "cinder.volumes.hdd",
},
}
)
func HandleStoragePoolsListSuccessfully(t *testing.T) {
testhelper.Mux.HandleFunc("/scheduler-stats/get_pools", func(w http.ResponseWriter, r *http.Request) {
testhelper.TestMethod(t, r, "GET")
testhelper.TestHeader(t, r, "X-Auth-Token", client.TokenID)
w.Header().Add("Content-Type", "application/json")
r.ParseForm()
if r.FormValue("detail") == "true" {
fmt.Fprintf(w, StoragePoolsListBodyDetail)
} else {
fmt.Fprintf(w, StoragePoolsListBody)
}
})
}