23 lines
515 B
Go
23 lines
515 B
Go
package volumes
|
|
|
|
import (
|
|
"github.com/rackspace/gophercloud"
|
|
)
|
|
|
|
// 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
|
|
})
|
|
}
|