github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/blockstorage/v3/snapshots/util.go (about) 1 package snapshots 2 3 import ( 4 "github.com/huaweicloud/golangsdk" 5 ) 6 7 // WaitForStatus will continually poll the resource, checking for a particular 8 // status. It will do this for the amount of seconds defined. 9 func WaitForStatus(c *golangsdk.ServiceClient, id, status string, secs int) error { 10 return golangsdk.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 }