Simplify exoscale provider

This commit is contained in:
Predrag Janosevic 2023-11-28 16:16:07 +01:00
parent 4d0411349d
commit a5cd0d6f5c
2 changed files with 5 additions and 27 deletions

View File

@ -33,7 +33,6 @@ import (
type EgoscaleClientI interface {
ListDNSDomainRecords(context.Context, string, string) ([]egoscale.DNSDomainRecord, error)
ListDNSDomains(context.Context, string) ([]egoscale.DNSDomain, error)
GetDNSDomainRecord(context.Context, string, string, string) (*egoscale.DNSDomainRecord, error)
CreateDNSDomainRecord(context.Context, string, string, *egoscale.DNSDomainRecord) (*egoscale.DNSDomainRecord, error)
DeleteDNSDomainRecord(context.Context, string, string, *egoscale.DNSDomainRecord) error
UpdateDNSDomainRecord(context.Context, string, string, *egoscale.DNSDomainRecord) error
@ -160,16 +159,11 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan
return err
}
for _, r := range records {
if *r.Name != name {
for _, record := range records {
if *record.Name != name {
continue
}
record, err := ep.client.GetDNSDomainRecord(ctx, ep.apiZone, zoneID, *r.ID)
if err != nil {
return err
}
record.Type = &epoint.RecordType
record.Content = &epoint.Targets[0]
if epoint.RecordTTL != 0 {
@ -177,7 +171,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan
record.TTL = &ttl
}
err = ep.client.UpdateDNSDomainRecord(ctx, ep.apiZone, zoneID, record)
err = ep.client.UpdateDNSDomainRecord(ctx, ep.apiZone, zoneID, &record)
if err != nil {
return err
}
@ -240,11 +234,7 @@ func (ep *ExoscaleProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
return nil, err
}
for _, r := range records {
record, err := ep.client.GetDNSDomainRecord(ctx, ep.apiZone, *domain.ID, *r.ID)
if err != nil {
return nil, err
}
for _, record := range records {
switch *record.Type {
case "A", "CNAME", "TXT":
break
@ -252,7 +242,7 @@ func (ep *ExoscaleProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
continue
}
e := endpoint.NewEndpointWithTTL((*record.Name)+"."+(*domain.UnicodeName), *record.Type, endpoint.TTL(*r.TTL), *record.Content)
e := endpoint.NewEndpointWithTTL((*record.Name)+"."+(*domain.UnicodeName), *record.Type, endpoint.TTL(*record.TTL), *record.Content)
endpoints = append(endpoints, e)
}
}

View File

@ -18,7 +18,6 @@ package exoscale
import (
"context"
"errors"
"testing"
egoscale "github.com/exoscale/egoscale/v2"
@ -93,17 +92,6 @@ func (ep *ExoscaleClientStub) ListDNSDomainRecords(ctx context.Context, _, domai
return groups[domainID], nil
}
func (ep *ExoscaleClientStub) GetDNSDomainRecord(ctx context.Context, _, domainID, recordID string) (*egoscale.DNSDomainRecord, error) {
group := groups[domainID]
for _, record := range group {
if *record.ID == recordID {
return &record, nil
}
}
return nil, errors.New("not found")
}
func (ep *ExoscaleClientStub) CreateDNSDomainRecord(ctx context.Context, _, domainID string, record *egoscale.DNSDomainRecord) (*egoscale.DNSDomainRecord, error) {
createExoscale = append(createExoscale, createRecordExoscale{domainID: domainID, record: record})
return record, nil