Adding BlockStorage v3 version support

Change-Id: Ia0c304731f2f1f35d80a9168cd9bb2ca3a8a08b9
diff --git a/openstack/blockstorage/v3/volumes/util.go b/openstack/blockstorage/v3/volumes/util.go
new file mode 100644
index 0000000..4267633
--- /dev/null
+++ b/openstack/blockstorage/v3/volumes/util.go
@@ -0,0 +1,22 @@
+package volumes
+
+import (
+	"gerrit.mcp.mirantis.net/debian/gophercloud.git"
+)
+
+// WaitForStatus will continually poll the resource, checking for a particular
+// status. It will do this for the amount of seconds defined.
+func WaitForStatus(c *gophercloud.ServiceClient, id, status string, secs int) error {
+	return gophercloud.WaitFor(secs, func() (bool, error) {
+		current, err := Get(c, id).Extract()
+		if err != nil {
+			return false, err
+		}
+
+		if current.Status == status {
+			return true, nil
+		}
+
+		return false, nil
+	})
+}