Merge pull request #1062 from hashicorp/configure-wait-checks
providers/digitalocean: Configure wait checks
This commit is contained in:
commit
5c74a63f3d
|
@ -366,6 +366,11 @@ func WaitForDropletAttribute(
|
|||
Timeout: 60 * time.Minute,
|
||||
Delay: 10 * time.Second,
|
||||
MinTimeout: 3 * time.Second,
|
||||
|
||||
// This is a hack around DO API strangeness.
|
||||
// https://github.com/hashicorp/terraform/issues/481
|
||||
//
|
||||
NotFoundChecks: 60,
|
||||
}
|
||||
|
||||
return stateConf.WaitForState()
|
||||
|
|
|
@ -22,12 +22,13 @@ type StateRefreshFunc func() (result interface{}, state string, err error)
|
|||
|
||||
// StateChangeConf is the configuration struct used for `WaitForState`.
|
||||
type StateChangeConf struct {
|
||||
Delay time.Duration // Wait this time before starting checks
|
||||
Pending []string // States that are "allowed" and will continue trying
|
||||
Refresh StateRefreshFunc // Refreshes the current state
|
||||
Target string // Target state
|
||||
Timeout time.Duration // The amount of time to wait before timeout
|
||||
MinTimeout time.Duration // Smallest time to wait before refreshes
|
||||
Delay time.Duration // Wait this time before starting checks
|
||||
Pending []string // States that are "allowed" and will continue trying
|
||||
Refresh StateRefreshFunc // Refreshes the current state
|
||||
Target string // Target state
|
||||
Timeout time.Duration // The amount of time to wait before timeout
|
||||
MinTimeout time.Duration // Smallest time to wait before refreshes
|
||||
NotFoundChecks int // Number of times to allow not found
|
||||
}
|
||||
|
||||
// WaitForState watches an object and waits for it to achieve the state
|
||||
|
@ -38,6 +39,11 @@ func (conf *StateChangeConf) WaitForState() (interface{}, error) {
|
|||
|
||||
notfoundTick := 0
|
||||
|
||||
// Set a default for times to check for not found
|
||||
if conf.NotFoundChecks == 0 {
|
||||
conf.NotFoundChecks = 20
|
||||
}
|
||||
|
||||
var result interface{}
|
||||
var resulterr error
|
||||
|
||||
|
@ -78,7 +84,7 @@ func (conf *StateChangeConf) WaitForState() (interface{}, error) {
|
|||
// If we didn't find the resource, check if we have been
|
||||
// not finding it for awhile, and if so, report an error.
|
||||
notfoundTick += 1
|
||||
if notfoundTick > 20 {
|
||||
if notfoundTick > conf.NotFoundChecks {
|
||||
resulterr = errors.New("couldn't find resource")
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue