Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
c8ec72e3
Commit
c8ec72e3
authored
Jul 15, 2016
by
Justin Santa Barbara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dnsprovider: Use route53 page functions to avoid truncated results
The List<Type>Pages functions make it pretty easy to avoid result truncation; switch to using them
parent
e967a773
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
20 deletions
+26
-20
rrsets.go
federation/pkg/dnsprovider/providers/aws/route53/rrsets.go
+8
-6
route53api.go
...pkg/dnsprovider/providers/aws/route53/stubs/route53api.go
+10
-6
zones.go
federation/pkg/dnsprovider/providers/aws/route53/zones.go
+8
-8
No files found.
federation/pkg/dnsprovider/providers/aws/route53/rrsets.go
View file @
c8ec72e3
...
@@ -34,15 +34,17 @@ func (rrsets ResourceRecordSets) List() ([]dnsprovider.ResourceRecordSet, error)
...
@@ -34,15 +34,17 @@ func (rrsets ResourceRecordSets) List() ([]dnsprovider.ResourceRecordSet, error)
input
:=
route53
.
ListResourceRecordSetsInput
{
input
:=
route53
.
ListResourceRecordSetsInput
{
HostedZoneId
:
rrsets
.
zone
.
impl
.
Id
,
HostedZoneId
:
rrsets
.
zone
.
impl
.
Id
,
}
}
response
,
err
:=
rrsets
.
zone
.
zones
.
interface_
.
service
.
ListResourceRecordSets
(
&
input
)
// TODO: Handle truncated responses
var
list
[]
dnsprovider
.
ResourceRecordSet
err
:=
rrsets
.
zone
.
zones
.
interface_
.
service
.
ListResourceRecordSetsPages
(
&
input
,
func
(
page
*
route53
.
ListResourceRecordSetsOutput
,
lastPage
bool
)
bool
{
for
_
,
rrset
:=
range
page
.
ResourceRecordSets
{
list
=
append
(
list
,
&
ResourceRecordSet
{
rrset
,
&
rrsets
})
}
return
true
})
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
list
:=
make
([]
dnsprovider
.
ResourceRecordSet
,
len
(
response
.
ResourceRecordSets
))
for
i
,
rrset
:=
range
response
.
ResourceRecordSets
{
list
[
i
]
=
&
ResourceRecordSet
{
rrset
,
&
rrsets
}
}
return
list
,
nil
return
list
,
nil
}
}
...
...
federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go
View file @
c8ec72e3
...
@@ -27,9 +27,9 @@ var _ Route53API = &Route53APIStub{}
...
@@ -27,9 +27,9 @@ var _ Route53API = &Route53APIStub{}
/* Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly. */
/* Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly. */
type
Route53API
interface
{
type
Route53API
interface
{
ListResourceRecordSets
(
*
route53
.
ListResourceRecordSetsInput
)
(
*
route53
.
ListResourceRecordSetsOutput
,
error
)
ListResourceRecordSets
Pages
(
input
*
route53
.
ListResourceRecordSetsInput
,
fn
func
(
p
*
route53
.
ListResourceRecordSetsOutput
,
lastPage
bool
)
(
shouldContinue
bool
))
error
ChangeResourceRecordSets
(
*
route53
.
ChangeResourceRecordSetsInput
)
(
*
route53
.
ChangeResourceRecordSetsOutput
,
error
)
ChangeResourceRecordSets
(
*
route53
.
ChangeResourceRecordSetsInput
)
(
*
route53
.
ChangeResourceRecordSetsOutput
,
error
)
ListHostedZones
(
*
route53
.
ListHostedZonesInput
)
(
*
route53
.
ListHostedZonesOutput
,
error
)
ListHostedZones
Pages
(
input
*
route53
.
ListHostedZonesInput
,
fn
func
(
p
*
route53
.
ListHostedZonesOutput
,
lastPage
bool
)
(
shouldContinue
bool
))
error
CreateHostedZone
(
*
route53
.
CreateHostedZoneInput
)
(
*
route53
.
CreateHostedZoneOutput
,
error
)
CreateHostedZone
(
*
route53
.
CreateHostedZoneInput
)
(
*
route53
.
CreateHostedZoneOutput
,
error
)
DeleteHostedZone
(
*
route53
.
DeleteHostedZoneInput
)
(
*
route53
.
DeleteHostedZoneOutput
,
error
)
DeleteHostedZone
(
*
route53
.
DeleteHostedZoneInput
)
(
*
route53
.
DeleteHostedZoneOutput
,
error
)
}
}
...
@@ -50,7 +50,7 @@ func NewRoute53APIStub() *Route53APIStub {
...
@@ -50,7 +50,7 @@ func NewRoute53APIStub() *Route53APIStub {
}
}
}
}
func
(
r
*
Route53APIStub
)
ListResourceRecordSets
(
input
*
route53
.
ListResourceRecordSetsInput
)
(
*
route53
.
ListResourceRecordSetsOutput
,
error
)
{
func
(
r
*
Route53APIStub
)
ListResourceRecordSets
Pages
(
input
*
route53
.
ListResourceRecordSetsInput
,
fn
func
(
p
*
route53
.
ListResourceRecordSetsOutput
,
lastPage
bool
)
(
shouldContinue
bool
))
error
{
output
:=
route53
.
ListResourceRecordSetsOutput
{}
// TODO: Support optional input args.
output
:=
route53
.
ListResourceRecordSetsOutput
{}
// TODO: Support optional input args.
if
len
(
r
.
recordSets
)
<=
0
{
if
len
(
r
.
recordSets
)
<=
0
{
output
.
ResourceRecordSets
=
[]
*
route53
.
ResourceRecordSet
{}
output
.
ResourceRecordSets
=
[]
*
route53
.
ResourceRecordSet
{}
...
@@ -63,7 +63,9 @@ func (r *Route53APIStub) ListResourceRecordSets(input *route53.ListResourceRecor
...
@@ -63,7 +63,9 @@ func (r *Route53APIStub) ListResourceRecordSets(input *route53.ListResourceRecor
}
}
}
}
}
}
return
&
output
,
nil
lastPage
:=
true
fn
(
&
output
,
lastPage
)
return
nil
}
}
func
(
r
*
Route53APIStub
)
ChangeResourceRecordSets
(
input
*
route53
.
ChangeResourceRecordSetsInput
)
(
*
route53
.
ChangeResourceRecordSetsOutput
,
error
)
{
func
(
r
*
Route53APIStub
)
ChangeResourceRecordSets
(
input
*
route53
.
ChangeResourceRecordSetsInput
)
(
*
route53
.
ChangeResourceRecordSetsOutput
,
error
)
{
...
@@ -93,12 +95,14 @@ func (r *Route53APIStub) ChangeResourceRecordSets(input *route53.ChangeResourceR
...
@@ -93,12 +95,14 @@ func (r *Route53APIStub) ChangeResourceRecordSets(input *route53.ChangeResourceR
return
output
,
nil
// TODO: We should ideally return status etc, but we dont' use that yet.
return
output
,
nil
// TODO: We should ideally return status etc, but we dont' use that yet.
}
}
func
(
r
*
Route53APIStub
)
ListHostedZones
(
*
route53
.
ListHostedZonesInput
)
(
*
route53
.
ListHostedZonesOutput
,
error
)
{
func
(
r
*
Route53APIStub
)
ListHostedZones
Pages
(
input
*
route53
.
ListHostedZonesInput
,
fn
func
(
p
*
route53
.
ListHostedZonesOutput
,
lastPage
bool
)
(
shouldContinue
bool
))
error
{
output
:=
&
route53
.
ListHostedZonesOutput
{}
output
:=
&
route53
.
ListHostedZonesOutput
{}
for
_
,
zone
:=
range
r
.
zones
{
for
_
,
zone
:=
range
r
.
zones
{
output
.
HostedZones
=
append
(
output
.
HostedZones
,
zone
)
output
.
HostedZones
=
append
(
output
.
HostedZones
,
zone
)
}
}
return
output
,
nil
lastPage
:=
true
fn
(
output
,
lastPage
)
return
nil
}
}
func
(
r
*
Route53APIStub
)
CreateHostedZone
(
input
*
route53
.
CreateHostedZoneInput
)
(
*
route53
.
CreateHostedZoneOutput
,
error
)
{
func
(
r
*
Route53APIStub
)
CreateHostedZone
(
input
*
route53
.
CreateHostedZoneInput
)
(
*
route53
.
CreateHostedZoneOutput
,
error
)
{
...
...
federation/pkg/dnsprovider/providers/aws/route53/zones.go
View file @
c8ec72e3
...
@@ -31,18 +31,18 @@ type Zones struct {
...
@@ -31,18 +31,18 @@ type Zones struct {
}
}
func
(
zones
Zones
)
List
()
([]
dnsprovider
.
Zone
,
error
)
{
func
(
zones
Zones
)
List
()
([]
dnsprovider
.
Zone
,
error
)
{
var
zoneList
[]
dnsprovider
.
Zone
input
:=
route53
.
ListHostedZonesInput
{}
input
:=
route53
.
ListHostedZonesInput
{}
response
,
err
:=
zones
.
interface_
.
service
.
ListHostedZones
(
&
input
)
err
:=
zones
.
interface_
.
service
.
ListHostedZonesPages
(
&
input
,
func
(
page
*
route53
.
ListHostedZonesOutput
,
lastPage
bool
)
bool
{
for
_
,
zone
:=
range
page
.
HostedZones
{
zoneList
=
append
(
zoneList
,
&
Zone
{
zone
,
&
zones
})
}
return
true
})
if
err
!=
nil
{
if
err
!=
nil
{
return
[]
dnsprovider
.
Zone
{},
err
return
[]
dnsprovider
.
Zone
{},
err
}
}
hostedZones
:=
response
.
HostedZones
// TODO: Handle result truncation
// https://docs.aws.amazon.com/sdk-for-go/api/service/route53/Route53.html#ListHostedZones-instance_method
zoneList
:=
make
([]
dnsprovider
.
Zone
,
len
(
hostedZones
))
for
i
,
zone
:=
range
hostedZones
{
zoneList
[
i
]
=
&
Zone
{
zone
,
&
zones
}
}
return
zoneList
,
nil
return
zoneList
,
nil
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment