tenantattr extension for cinder; ExtractInto method for handling custom Volume objects
diff --git a/openstack/blockstorage/v2/volumes/results.go b/openstack/blockstorage/v2/volumes/results.go
index 2ad94cd..0f39fdb 100644
--- a/openstack/blockstorage/v2/volumes/results.go
+++ b/openstack/blockstorage/v2/volumes/results.go
@@ -1,6 +1,8 @@
package volumes
import (
+ "encoding/json"
+
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/pagination"
)
@@ -100,6 +102,22 @@
return s.Volume, err
}
+func (r commonResult) ExtractInto(v interface{}) error {
+ var vol map[string]map[string]interface{}
+ err := r.ExtractInto(&vol)
+ if err != nil {
+ return err
+ }
+
+ b, err := json.Marshal(vol["volume"])
+ if err != nil {
+ return err
+ }
+
+ err = json.Unmarshal(b, &v)
+ return err
+}
+
// CreateResult contains the response body and error from a Create request.
type CreateResult struct {
commonResult