1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
package testing
import (
"fmt"
"math"
"net/http"
"testing"
"github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/schedulerstats"
"github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/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)
}
})
}
|