blob: e86c1b4b4ee580271635bf0c3a0335a8e4394c59 [file] [log] [blame]
feiskyda546142015-09-17 12:28:23 +08001package volumes
2
3import (
jrperritt9b7b9e62016-07-11 22:30:50 -05004 "github.com/gophercloud/gophercloud"
feiskyda546142015-09-17 12:28:23 +08005)
6
7// WaitForStatus will continually poll the resource, checking for a particular
8// status. It will do this for the amount of seconds defined.
9func WaitForStatus(c *gophercloud.ServiceClient, id, status string, secs int) error {
10 return gophercloud.WaitFor(secs, func() (bool, error) {
11 current, err := Get(c, id).Extract()
12 if err != nil {
13 return false, err
14 }
15
16 if current.Status == status {
17 return true, nil
18 }
19
20 return false, nil
21 })
22}