github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/gaussdb/v3/util.go (about) 1 package v3 2 3 import ( 4 "fmt" 5 6 "github.com/opentelekomcloud/gophertelekomcloud" 7 ) 8 9 func WaitForGaussJob(client *golangsdk.ServiceClient, jobId string, timeout int) (*GetJobInfoDetail, error) { 10 var res *GetJobInfoDetail 11 12 err := golangsdk.WaitFor(timeout, func() (bool, error) { 13 cur, err := ShowJobInfo(client, jobId) 14 if err != nil { 15 return false, err 16 } 17 res = cur 18 19 if cur.Status == "Completed" { 20 return true, nil 21 } 22 23 if cur.Status == "Failed" { 24 return false, fmt.Errorf("job %s failed: %s", jobId, cur.FailReason) 25 } 26 27 return false, nil 28 }) 29 30 return res, err 31 }