fix record missing for zone with many of records (#4328)

* fix record missing for zone with many of records

* Update debug log

* Update debug mesg

* update test_clouddns
This commit is contained in:
luanphantiki
2021-01-12 19:38:18 +07:00
committed by GitHub
parent 0f307cf728
commit ed891c5c4e
3 changed files with 18 additions and 8 deletions

View File

@@ -1,10 +1,14 @@
package clouddns
import gcp "google.golang.org/api/dns/v1"
import (
"context"
gcp "google.golang.org/api/dns/v1"
)
type gcpDNS interface {
zoneExists(projectName, hostedZoneName string) error
listRRSets(projectName, hostedZoneName string) (*gcp.ResourceRecordSetsListResponse, error)
listRRSets(ctx context.Context, projectName, hostedZoneName string) (*gcp.ResourceRecordSetsListResponse, error)
}
type gcpClient struct {
@@ -23,10 +27,16 @@ func (c gcpClient) zoneExists(projectName, hostedZoneName string) error {
// listRRSets is a wrapper method around `gcp.Service.ResourceRecordSets.List`
// it fetches and returns the record sets for a hosted zone.
func (c gcpClient) listRRSets(projectName, hostedZoneName string) (*gcp.ResourceRecordSetsListResponse, error) {
rr, err := c.ResourceRecordSets.List(projectName, hostedZoneName).Do()
if err != nil {
func (c gcpClient) listRRSets(ctx context.Context, projectName, hostedZoneName string) (*gcp.ResourceRecordSetsListResponse, error) {
req := c.ResourceRecordSets.List(projectName, hostedZoneName)
var rs []*gcp.ResourceRecordSet
if err := req.Pages(ctx, func(page *gcp.ResourceRecordSetsListResponse) error {
for _, rr := range page.Rrsets {
rs = append(rs, rr)
}
return nil
}); err != nil {
return nil, err
}
return rr, nil
return &gcp.ResourceRecordSetsListResponse{Rrsets: rs}, nil
}