diff --git a/go.mod b/go.mod index db42b9b90..1531c87a4 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/digitalocean/godo v1.19.0 github.com/dnaeon/go-vcr v1.0.1 // indirect github.com/dnsimple/dnsimple-go v0.14.0 - github.com/exoscale/egoscale v0.11.0 + github.com/exoscale/egoscale v0.18.1 github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99 github.com/go-resty/resty v1.8.0 // indirect github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b // indirect diff --git a/go.sum b/go.sum index 320d6255f..867d253dc 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,8 @@ github.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1r github.com/envoyproxy/protoc-gen-validate v0.0.14 h1:YBW6/cKy9prEGRYLnaGa4IDhzxZhRCtKsax8srGKDnM= github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exoscale/egoscale v0.11.0 h1:g+UBsxLDouKWW2BK/UTgQFAVnM2aHygheF0Dxj0ycC8= -github.com/exoscale/egoscale v0.11.0/go.mod h1:Ee3U4ZjSDpbbEc9VkQ/jttUU8USE8Nv7L3YzVi03Y1U= +github.com/exoscale/egoscale v0.18.1 h1:1FNZVk8jHUx0AvWhOZxLEDNlacTU0chMXUUNkm9EZaI= +github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99 h1:jmwW6QWvUO2OPe22YfgFvBaaZlSr8Rlrac5lZvG6IdM= github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99/go.mod h1:4mP9w9+vYGw2jUx2+2v03IA+phyQQjNRR4AL3uxlNrs= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= @@ -92,6 +92,8 @@ github.com/go-resty/resty v1.8.0/go.mod h1:n37daLLGIHq2FFYHxg+FYQiwA95FpfNI+A9ux github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b h1:/vQ+oYKu+JoyaMPDsv5FzwuL2wwWBgBbtj/YLCi4LuA= github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b/go.mod h1:Xo4aNUOrJnVruqWQJBtW6+bTBDTniY8yZum5rF3b5jw= +github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= diff --git a/provider/exoscale.go b/provider/exoscale.go index be9fd8316..57906b199 100644 --- a/provider/exoscale.go +++ b/provider/exoscale.go @@ -28,11 +28,11 @@ import ( // EgoscaleClientI for replaceable implementation type EgoscaleClientI interface { - GetRecords(string) ([]egoscale.DNSRecord, error) - GetDomains() ([]egoscale.DNSDomain, error) - CreateRecord(string, egoscale.DNSRecord) (*egoscale.DNSRecord, error) - DeleteRecord(string, int64) error - UpdateRecord(string, egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) + GetRecords(context.Context, string) ([]egoscale.DNSRecord, error) + GetDomains(context.Context) ([]egoscale.DNSDomain, error) + CreateRecord(context.Context, string, egoscale.DNSRecord) (*egoscale.DNSRecord, error) + DeleteRecord(context.Context, string, int64) error + UpdateRecord(context.Context, string, egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) } // ExoscaleProvider initialized as dns provider with no records @@ -68,8 +68,8 @@ func NewExoscaleProviderWithClient(endpoint, apiKey, apiSecret string, client Eg return ep } -func (ep *ExoscaleProvider) getZones() (map[int64]string, error) { - dom, err := ep.client.GetDomains() +func (ep *ExoscaleProvider) getZones(ctx context.Context) (map[int64]string, error) { + dom, err := ep.client.GetDomains(ctx) if err != nil { return nil, err } @@ -92,7 +92,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan return nil } - zones, err := ep.getZones() + zones, err := ep.getZones(ctx) if err != nil { return err } @@ -106,7 +106,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan TTL: int(epoint.RecordTTL), Content: epoint.Targets[0], } - _, err := ep.client.CreateRecord(zones[zoneID], rec) + _, err := ep.client.CreateRecord(ctx, zones[zoneID], rec) if err != nil { return err } @@ -116,7 +116,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan for _, epoint := range changes.UpdateNew { if ep.domain.Match(epoint.DNSName) { if zoneID, name := ep.filter.EndpointZoneID(epoint, zones); zoneID != 0 { - records, err := ep.client.GetRecords(zones[zoneID]) + records, err := ep.client.GetRecords(ctx, zones[zoneID]) if err != nil { return err } @@ -131,7 +131,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan Content: epoint.Targets[0], Prio: r.Prio, } - if _, err := ep.client.UpdateRecord(zones[zoneID], rec); err != nil { + if _, err := ep.client.UpdateRecord(ctx, zones[zoneID], rec); err != nil { return err } break @@ -150,14 +150,14 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan for _, epoint := range changes.Delete { if ep.domain.Match(epoint.DNSName) { if zoneID, name := ep.filter.EndpointZoneID(epoint, zones); zoneID != 0 { - records, err := ep.client.GetRecords(zones[zoneID]) + records, err := ep.client.GetRecords(ctx, zones[zoneID]) if err != nil { return err } for _, r := range records { if r.Name == name { - if err := ep.client.DeleteRecord(zones[zoneID], r.ID); err != nil { + if err := ep.client.DeleteRecord(ctx, zones[zoneID], r.ID); err != nil { return err } break @@ -174,13 +174,13 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan func (ep *ExoscaleProvider) Records() ([]*endpoint.Endpoint, error) { endpoints := make([]*endpoint.Endpoint, 0) - domains, err := ep.client.GetDomains() + domains, err := ep.client.GetDomains(context.TODO()) if err != nil { return nil, err } for _, d := range domains { - record, err := ep.client.GetRecords(d.Name) + record, err := ep.client.GetRecords(context.TODO(), d.Name) if err != nil { return nil, err } diff --git a/provider/exoscale_test.go b/provider/exoscale_test.go index 639040ffa..cc94965e2 100644 --- a/provider/exoscale_test.go +++ b/provider/exoscale_test.go @@ -54,11 +54,11 @@ func NewExoscaleClientStub() EgoscaleClientI { return ep } -func (ep *ExoscaleClientStub) DeleteRecord(name string, recordID int64) error { +func (ep *ExoscaleClientStub) DeleteRecord(ctx context.Context, name string, recordID int64) error { deleteExoscale = append(deleteExoscale, deleteRecordExoscale{name: name, recordID: recordID}) return nil } -func (ep *ExoscaleClientStub) GetRecords(name string) ([]egoscale.DNSRecord, error) { +func (ep *ExoscaleClientStub) GetRecords(ctx context.Context, name string) ([]egoscale.DNSRecord, error) { init := []egoscale.DNSRecord{ {ID: 0, Name: "v4.barfoo.com", RecordType: "ALIAS"}, {ID: 1, Name: "v1.foo.com", RecordType: "TXT"}, @@ -78,15 +78,15 @@ func (ep *ExoscaleClientStub) GetRecords(name string) ([]egoscale.DNSRecord, err return rec, nil } -func (ep *ExoscaleClientStub) UpdateRecord(name string, rec egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) { +func (ep *ExoscaleClientStub) UpdateRecord(ctx context.Context, name string, rec egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) { updateExoscale = append(updateExoscale, updateRecordExoscale{name: name, updateDNSRecord: rec}) return nil, nil } -func (ep *ExoscaleClientStub) CreateRecord(name string, rec egoscale.DNSRecord) (*egoscale.DNSRecord, error) { +func (ep *ExoscaleClientStub) CreateRecord(ctx context.Context, name string, rec egoscale.DNSRecord) (*egoscale.DNSRecord, error) { createExoscale = append(createExoscale, createRecordExoscale{name: name, rec: rec}) return nil, nil } -func (ep *ExoscaleClientStub) GetDomains() ([]egoscale.DNSDomain, error) { +func (ep *ExoscaleClientStub) GetDomains(ctx context.Context) ([]egoscale.DNSDomain, error) { dom := []egoscale.DNSDomain{ {ID: 1, Name: "foo.com"}, {ID: 2, Name: "bar.com"},