@@ -835,8 +835,83 @@ func (p *AWSProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoi
835835}
836836
837837func (p * AWSProvider ) adjustEndpointAndNewAaaaIfNeeded (ep * endpoint.Endpoint ) * endpoint.Endpoint {
838- // TODO: implement new logic here
839- return p .oldAdjustEndpointAndNewAaaaIfNeeded (ep )
838+ setAliasConf := func (ep * endpoint.Endpoint ) {
839+ if ep .RecordTTL .IsConfigured () {
840+ log .Debugf ("Modifying endpoint: %v, setting ttl=%v" , ep , defaultTTL )
841+ ep .RecordTTL = defaultTTL
842+ }
843+ if prop , ok := ep .GetProviderSpecificProperty (providerSpecificEvaluateTargetHealth ); ok {
844+ if prop != "true" && prop != "false" {
845+ ep .SetProviderSpecificProperty (providerSpecificEvaluateTargetHealth , "false" )
846+ }
847+ } else {
848+ ep .SetProviderSpecificProperty (providerSpecificEvaluateTargetHealth , strconv .FormatBool (p .evaluateTargetHealth ))
849+ }
850+ }
851+ cnameAliasCase := func (ep * endpoint.Endpoint ) * endpoint.Endpoint {
852+ setAliasConf (ep )
853+ result := & endpoint.Endpoint {
854+ DNSName : ep .DNSName ,
855+ Targets : ep .Targets ,
856+ RecordType : endpoint .RecordTypeAAAA ,
857+ RecordTTL : ep .RecordTTL ,
858+ Labels : ep .Labels ,
859+ ProviderSpecific : ep .ProviderSpecific ,
860+ SetIdentifier : ep .SetIdentifier ,
861+ }
862+ ep .RecordType = endpoint .RecordTypeA
863+ return result
864+ }
865+
866+ var additionalAAAA * endpoint.Endpoint
867+ switch ep .RecordType {
868+ case endpoint .RecordTypeA , endpoint .RecordTypeAAAA :
869+ aliasString , ok := ep .GetProviderSpecificProperty (providerSpecificAlias )
870+ switch aliasString {
871+ case "true" :
872+ setAliasConf (ep )
873+ case "" :
874+ if ok {
875+ ep .DeleteProviderSpecificProperty (providerSpecificAlias )
876+ }
877+ ep .DeleteProviderSpecificProperty (providerSpecificEvaluateTargetHealth )
878+ default :
879+ ep .DeleteProviderSpecificProperty (providerSpecificAlias )
880+ ep .DeleteProviderSpecificProperty (providerSpecificEvaluateTargetHealth )
881+ }
882+ case endpoint .RecordTypeCNAME :
883+ aliasString , _ := ep .GetProviderSpecificProperty (providerSpecificAlias )
884+ switch aliasString {
885+ case "true" :
886+ additionalAAAA = cnameAliasCase (ep )
887+ case "" :
888+ alias := useAlias (ep , p .preferCNAME )
889+ log .Debugf ("Modifying endpoint: %v, setting %s=%v" , ep , providerSpecificAlias , alias )
890+ ep .SetProviderSpecificProperty (providerSpecificAlias , strconv .FormatBool (alias ))
891+ if alias {
892+ additionalAAAA = cnameAliasCase (ep )
893+ } else {
894+ ep .DeleteProviderSpecificProperty (providerSpecificEvaluateTargetHealth )
895+ }
896+ default :
897+ ep .SetProviderSpecificProperty (providerSpecificAlias , "false" )
898+ ep .DeleteProviderSpecificProperty (providerSpecificEvaluateTargetHealth )
899+ }
900+ default :
901+ // TODO fix
902+ aliasString , _ := ep .GetProviderSpecificProperty (providerSpecificAlias )
903+ switch aliasString {
904+ case "true" :
905+ ep .DeleteProviderSpecificProperty (providerSpecificAlias )
906+ setAliasConf (ep )
907+ default :
908+ ep .DeleteProviderSpecificProperty (providerSpecificAlias )
909+ ep .DeleteProviderSpecificProperty (providerSpecificEvaluateTargetHealth )
910+ }
911+ }
912+
913+ adjustGeoProximityLocationEndpoint (ep )
914+ return additionalAAAA
840915}
841916
842917func (p * AWSProvider ) oldAdjustEndpointAndNewAaaaIfNeeded (ep * endpoint.Endpoint ) * endpoint.Endpoint {
0 commit comments