mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-04 17:51:11 +00:00
add another retry if iam read returns nil (#2629)
<!-- This change is generated by MagicModules. --> /cc @danawillow
This commit is contained in:
parent
7a3f96ad28
commit
4d9a003bec
@ -71,7 +71,11 @@ func iamPolicyReadModifyWrite(updater ResourceIamUpdater, modify iamPolicyModify
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
fetchBackoff := 1 * time.Second
|
fetchBackoff := 1 * time.Second
|
||||||
for successfulFetches := 0; successfulFetches < 3; {
|
for successfulFetches := 0; successfulFetches < 3; {
|
||||||
|
if fetchBackoff > 30*time.Second {
|
||||||
|
return fmt.Errorf("Error applying IAM policy to %s: Waited too long for propagation.\n", updater.DescribeResource())
|
||||||
|
}
|
||||||
time.Sleep(fetchBackoff)
|
time.Sleep(fetchBackoff)
|
||||||
|
log.Printf("[DEBUG]: Retrieving policy for %s\n", updater.DescribeResource())
|
||||||
new_p, err := updater.GetResourceIamPolicy()
|
new_p, err := updater.GetResourceIamPolicy()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Quota for Read is pretty limited, so watch out for running out of quota.
|
// Quota for Read is pretty limited, so watch out for running out of quota.
|
||||||
@ -81,6 +85,12 @@ func iamPolicyReadModifyWrite(updater ResourceIamUpdater, modify iamPolicyModify
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.Printf("[DEBUG]: Retrieved policy for %s: %+v\n", updater.DescribeResource(), p)
|
||||||
|
if new_p == nil {
|
||||||
|
// https://github.com/terraform-providers/terraform-provider-google/issues/2625
|
||||||
|
fetchBackoff = fetchBackoff * 2
|
||||||
|
continue
|
||||||
|
}
|
||||||
modified_p := new_p
|
modified_p := new_p
|
||||||
// This relies on the fact that `modify` is idempotent: since other changes might have
|
// This relies on the fact that `modify` is idempotent: since other changes might have
|
||||||
// happened between the call to set the policy and now, we just need to make sure that
|
// happened between the call to set the policy and now, we just need to make sure that
|
||||||
@ -94,9 +104,6 @@ func iamPolicyReadModifyWrite(updater ResourceIamUpdater, modify iamPolicyModify
|
|||||||
successfulFetches += 1
|
successfulFetches += 1
|
||||||
} else {
|
} else {
|
||||||
fetchBackoff = fetchBackoff * 2
|
fetchBackoff = fetchBackoff * 2
|
||||||
if fetchBackoff > 30*time.Second {
|
|
||||||
return fmt.Errorf("Error applying IAM policy to %s: Waited too long for propagation.\n", updater.DescribeResource())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user