fix: provide possibility to have a soft error mode to only log error and not fatal

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
This commit is contained in:
Sandor Szücs 2024-01-09 22:06:02 +01:00
parent 1ee6c0a77d
commit e5f7e91c0c
No known key found for this signature in database
GPG Key ID: 2D7B996673E41107
2 changed files with 8 additions and 8 deletions

View File

@ -324,10 +324,10 @@ func (p *AWSProvider) Zones(ctx context.Context) (map[string]*route53.HostedZone
err := p.client.ListHostedZonesPagesWithContext(ctx, &route53.ListHostedZonesInput{}, f) err := p.client.ListHostedZonesPagesWithContext(ctx, &route53.ListHostedZonesInput{}, f)
if err != nil { if err != nil {
return nil, provider.WrapSoftError(fmt.Errorf("failed to list hosted zones: %w", err)) return nil, provider.NewSoftError(fmt.Errorf("failed to list hosted zones: %w", err))
} }
if tagErr != nil { if tagErr != nil {
return nil, provider.WrapSoftError(fmt.Errorf("failed to list zones tags: %w", tagErr)) return nil, provider.NewSoftError(fmt.Errorf("failed to list zones tags: %w", tagErr))
} }
for _, zone := range zones { for _, zone := range zones {
@ -352,7 +352,7 @@ func wildcardUnescape(s string) string {
func (p *AWSProvider) Records(ctx context.Context) (endpoints []*endpoint.Endpoint, _ error) { func (p *AWSProvider) Records(ctx context.Context) (endpoints []*endpoint.Endpoint, _ error) {
zones, err := p.Zones(ctx) zones, err := p.Zones(ctx)
if err != nil { if err != nil {
return nil, provider.WrapSoftError(fmt.Errorf("records retrieval failed: %w", err)) return nil, provider.NewSoftError(fmt.Errorf("records retrieval failed: %w", err))
} }
return p.records(ctx, zones) return p.records(ctx, zones)
@ -444,7 +444,7 @@ func (p *AWSProvider) records(ctx context.Context, zones map[string]*route53.Hos
} }
if err := p.client.ListResourceRecordSetsPagesWithContext(ctx, params, f); err != nil { if err := p.client.ListResourceRecordSetsPagesWithContext(ctx, params, f); err != nil {
return nil, provider.WrapSoftError(fmt.Errorf("failed to list resource records sets for zone %s: %w", *z.Id, err)) return nil, provider.NewSoftError(fmt.Errorf("failed to list resource records sets for zone %s: %w", *z.Id, err))
} }
} }
@ -529,7 +529,7 @@ func (p *AWSProvider) GetDomainFilter() endpoint.DomainFilter {
func (p *AWSProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error { func (p *AWSProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error {
zones, err := p.Zones(ctx) zones, err := p.Zones(ctx)
if err != nil { if err != nil {
return provider.WrapSoftError(fmt.Errorf("failed to list zones, not applying changes: %w", err)) return provider.NewSoftError(fmt.Errorf("failed to list zones, not applying changes: %w", err))
} }
updateChanges := p.createUpdateChanges(changes.UpdateNew, changes.UpdateOld) updateChanges := p.createUpdateChanges(changes.UpdateNew, changes.UpdateOld)
@ -631,7 +631,7 @@ func (p *AWSProvider) submitChanges(ctx context.Context, changes Route53Changes,
} }
if len(failedZones) > 0 { if len(failedZones) > 0 {
return provider.WrapSoftError(fmt.Errorf("failed to submit all changes for the following zones: %v", failedZones)) return provider.NewSoftError(fmt.Errorf("failed to submit all changes for the following zones: %v", failedZones))
} }
return nil return nil
@ -846,7 +846,7 @@ func (p *AWSProvider) tagsForZone(ctx context.Context, zoneID string) (map[strin
ResourceId: aws.String(zoneID), ResourceId: aws.String(zoneID),
}) })
if err != nil { if err != nil {
return nil, provider.WrapSoftError(fmt.Errorf("failed to list tags for zone %s: %w", zoneID, err)) return nil, provider.NewSoftError(fmt.Errorf("failed to list tags for zone %s: %w", zoneID, err))
} }
tagMap := map[string]string{} tagMap := map[string]string{}
for _, tag := range response.ResourceTagSet.Tags { for _, tag := range response.ResourceTagSet.Tags {

View File

@ -28,7 +28,7 @@ import (
var SoftError error = errors.New("soft error") var SoftError error = errors.New("soft error")
func WrapSoftError(err error) error { func NewSoftError(err error) error {
return errors.Join(SoftError, err) return errors.Join(SoftError, err)
} }