Handle string capacity
Change-Id: I64b34974fd1910be49d9208764f0ad9466c59f97
Related-PROD: PROD-25085 (PROD:25085)
diff --git a/openstack/blockstorage/extensions/schedulerstats/results.go b/openstack/blockstorage/extensions/schedulerstats/results.go
index e176c61..95eaaed 100644
--- a/openstack/blockstorage/extensions/schedulerstats/results.go
+++ b/openstack/blockstorage/extensions/schedulerstats/results.go
@@ -60,12 +60,19 @@
// value, "unknown", or "infinite"
parseCapacity := func(capacity interface{}) float64 {
if capacity != nil {
- switch capacity.(type) {
+ switch t := capacity.(type) {
case float64:
- return capacity.(float64)
+ return t
case string:
- if capacity.(string) == "infinite" {
+ switch t {
+ case "infinite":
return math.Inf(1)
+ default:
+ c, err := strconv.ParseFloat(t, 64)
+ if err != nil {
+ return 0.0
+ }
+ return c
}
}
}