// the same name in a short (though undetermined) time period. // // It is possible that this will give Terraform the appearance of being slow in // future: I have attempted to mitigate this by logging whenever this happens. We // may want to revisit this with configurable timeouts in the future as clearly // unbounded wait loops is not ideal. It does seem preferable to the current situation // where our polling loop will time out _with an operation in progress_, but no ID // for the resource - so the state will not know about it, and conflicts will occur // on the next run. func pollIndefinitelyAsNeeded(client autorest.Client, response *http.Response, acceptableCodes ...int) (*http.Response, error) { var resp *http.Response var err error for { resp, err = client.PollAsNeeded(response, acceptableCodes...) if err != nil { if resp.StatusCode != http.StatusAccepted { log.Printf("[DEBUG] Starting new polling loop for %q", response.Request.URL.Path) continue } return resp, err } return resp, nil } } // armMutexKV is the instance of MutexKV for ARM resources var armMutexKV = mutexkv.NewMutexKV()
"It's typically used to connect to kinesalite.", } } func providerConfigure(d *schema.ResourceData) (interface{}, error) { config := Config{ AccessKey: d.Get("access_key").(string), SecretKey: d.Get("secret_key").(string), Profile: d.Get("profile").(string), CredsFilename: d.Get("shared_credentials_file").(string), Token: d.Get("token").(string), Region: d.Get("region").(string), MaxRetries: d.Get("max_retries").(int), DynamoDBEndpoint: d.Get("dynamodb_endpoint").(string), KinesisEndpoint: d.Get("kinesis_endpoint").(string), } if v, ok := d.GetOk("allowed_account_ids"); ok { config.AllowedAccountIds = v.(*schema.Set).List() } if v, ok := d.GetOk("forbidden_account_ids"); ok { config.ForbiddenAccountIds = v.(*schema.Set).List() } return config.Client() } // This is a global MutexKV for use within this plugin. var awsMutexKV = mutexkv.NewMutexKV()