vinyldns / go-vinyldns

Go client package for VinylDNS
Apache License 2.0
7 stars 25 forks source link

Add retry logic to RecordSetChangesListAll and RecordSetsListAll #88

Open jhg03a opened 2 years ago

jhg03a commented 2 years ago

Prerequisites

Description

As a user trying to obtain all recordset changes on a large zone, I'd like to have retry logic introduced inside the code handling pagination of changes. I can implement my own retry logic, but for large zones it means I have to start over each time amplifying server load rather than letting the pagination aspects handle it on my behalf to pick up. This specifically is from cases where the vinyldns API returns a 503 and response body of The server was not able to produce a timely response to your request. regardless of the timeouts set in the vinyldns client http.Client.

Versions

github.com/vinyldns/go-vinyldns v0.9.16

jhg03a commented 2 years ago

With RecordSetChangesListAll I can effectively reimplement the function with retry logic because the underlying RecordSetChanges function is exported. This is not the case however with RecordSetsListAll and the underlying recordSetsList function.