Cluster update operations can take a pretty long time, especially multiregion clusters. We had an SE bump into the timeout, even though it was still chugging along. Bumped it to 2 hours. Dropped the endpoint connection timeout to 10 minutes (usually completes in ~30s). Left cluster and endpoint service creation unchanged.
Generally refactored timeout constants, and also a couple unrelated cluster state constants that were hard coded and at risk of going out of sync with the API.
Also opportunistically fixed a fixed a segfault that happened if a call to GetCluster fails in the wait loop, trying to copy the value of a nil cluster pointer.
Add a description of the problem this PR addresses and an overview of how this PR works.
Cluster update operations can take a pretty long time, especially multiregion clusters. We had an SE bump into the timeout, even though it was still chugging along. Bumped it to 2 hours. Dropped the endpoint connection timeout to 10 minutes (usually completes in ~30s). Left cluster and endpoint service creation unchanged.
Generally refactored timeout constants, and also a couple unrelated cluster state constants that were hard coded and at risk of going out of sync with the API.
Also opportunistically fixed a fixed a segfault that happened if a call to GetCluster fails in the wait loop, trying to copy the value of a nil cluster pointer.
Add a description of the problem this PR addresses and an overview of how this PR works.