dnsprovider: Expose route53 constructor

This enables testing when the dnsprovider is used externally (with a
mock Route53 API, as we do in kops), and also might be useful for
constructing with a particular client instance with extra options.
This commit is contained in:
Justin Santa Barbara 2016-12-11 13:39:59 -05:00
parent 4474263a26
commit 6e3eab491f
3 changed files with 5 additions and 5 deletions

View File

@ -28,9 +28,9 @@ type Interface struct {
service stubs.Route53API
}
// newInterfaceWithStub facilitates stubbing out the underlying AWS Route53
// library for testing purposes. It returns an provider-independent interface.
func newInterfaceWithStub(service stubs.Route53API) *Interface {
// New builds an Interface, with a specified Route53API implementation.
// This is useful for testing purposes, but also if we want an instance with with custom AWS options.
func New(service stubs.Route53API) *Interface {
return &Interface{service}
}

View File

@ -40,5 +40,5 @@ func init() {
func newRoute53(config io.Reader) (*Interface, error) {
// Connect to AWS Route53 - TODO: Do more sophisticated auth
svc := route53.New(session.New())
return newInterfaceWithStub(svc), nil
return New(svc), nil
}

View File

@ -40,7 +40,7 @@ func newTestInterface() (dnsprovider.Interface, error) {
func newFakeInterface() (dnsprovider.Interface, error) {
var service route53testing.Route53API
service = route53testing.NewRoute53APIStub()
iface := newInterfaceWithStub(service)
iface := New(service)
// Add a fake zone to test against.
params := &route53.CreateHostedZoneInput{
CallerReference: aws.String("Nonce"), // Required