Skip to content

Commit

Permalink
More tidying
Browse files Browse the repository at this point in the history
  • Loading branch information
justinsb committed Feb 15, 2024
1 parent 236532a commit 4ae3c03
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 88 deletions.
15 changes: 7 additions & 8 deletions upup/pkg/fi/cloudup/awstasks/dnsname.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ limitations under the License.
package awstasks

import (
"context"
"fmt"
"strings"

Expand Down Expand Up @@ -119,7 +118,7 @@ func (e *DNSName) Find(c *fi.CloudupContext) (*DNSName, error) {
dnsName := aws.StringValue(found.AliasTarget.DNSName)
klog.Infof("AliasTarget for %q is %q", aws.StringValue(found.Name), dnsName)
if dnsName != "" {
if actual.TargetLoadBalancer, err = findDNSTarget(ctx, cloud, found.AliasTarget, dnsName, e.ResourceName); err != nil {
if actual.TargetLoadBalancer, err = findDNSTarget(cloud, found.AliasTarget, dnsName, e.ResourceName); err != nil {
return nil, err
}
}
Expand All @@ -128,15 +127,15 @@ func (e *DNSName) Find(c *fi.CloudupContext) (*DNSName, error) {
return actual, nil
}

func findDNSTarget(ctx context.Context, cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
func findDNSTarget(cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
// TODO: I would like to search dnsName for presence of ".elb" or ".nlb" to simply searching, however both nlb and elb have .elb. in the name at present
if ELB, err := findDNSTargetELB(ctx, cloud, aliasTarget, dnsName, targetDNSName); err != nil {
if ELB, err := findDNSTargetELB(cloud, aliasTarget, dnsName, targetDNSName); err != nil {
return nil, err
} else if ELB != nil {
return ELB, nil
}

if NLB, err := findDNSTargetNLB(ctx, cloud, aliasTarget, dnsName, targetDNSName); err != nil {
if NLB, err := findDNSTargetNLB(cloud, aliasTarget, dnsName, targetDNSName); err != nil {
return nil, err
} else if NLB != nil {
return NLB, nil
Expand All @@ -145,8 +144,8 @@ func findDNSTarget(ctx context.Context, cloud awsup.AWSCloud, aliasTarget *route
return nil, nil
}

func findDNSTargetNLB(ctx context.Context, cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
lb, err := findNetworkLoadBalancerByAlias(ctx, cloud, aliasTarget)
func findDNSTargetNLB(cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
lb, err := findNetworkLoadBalancerByAlias(cloud, aliasTarget)
if err != nil {
return nil, fmt.Errorf("error mapping DNSName %q to LoadBalancer: %v", dnsName, err)
}
Expand All @@ -167,7 +166,7 @@ func findDNSTargetNLB(ctx context.Context, cloud awsup.AWSCloud, aliasTarget *ro
return nil, nil
}

func findDNSTargetELB(ctx context.Context, cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
func findDNSTargetELB(cloud awsup.AWSCloud, aliasTarget *route53.AliasTarget, dnsName string, targetDNSName *string) (DNSTarget, error) {
lb, err := findLoadBalancerByAlias(cloud, aliasTarget)
if err != nil {
return nil, fmt.Errorf("error mapping DNSName %q to LoadBalancer: %v", dnsName, err)
Expand Down
37 changes: 2 additions & 35 deletions upup/pkg/fi/cloudup/awstasks/network_load_balancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
"time"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/elb"
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/aws/aws-sdk-go/service/route53"
Expand Down Expand Up @@ -106,41 +105,9 @@ func (e *NetworkLoadBalancer) CompareWithID() *string {
return e.Name
}

// The load balancer name 'api.renamenlbcluster.k8s.local' can only contain characters that are alphanumeric characters and hyphens(-)\n\tstatus code: 400,
func findNetworkLoadBalancerByLoadBalancerName(ctx context.Context, cloud awsup.AWSCloud, loadBalancerName string) (*elbv2.LoadBalancer, error) {
request := &elbv2.DescribeLoadBalancersInput{
Names: []*string{&loadBalancerName},
}
found, err := describeNetworkLoadBalancers(ctx, cloud, request, func(lb *elbv2.LoadBalancer) bool {
if aws.StringValue(lb.LoadBalancerName) == loadBalancerName {
return true
}

klog.Warningf("Got NLB with unexpected name: %q", aws.StringValue(lb.LoadBalancerName))
return false
})
if err != nil {
if awsError, ok := err.(awserr.Error); ok {
if awsError.Code() == "LoadBalancerNotFound" {
return nil, nil
}
}

return nil, fmt.Errorf("error listing NLBs: %v", err)
}

if len(found) == 0 {
return nil, nil
}

if len(found) != 1 {
return nil, fmt.Errorf("Found multiple NLBs with name %q", loadBalancerName)
}

return found[0], nil
}
func findNetworkLoadBalancerByAlias(cloud awsup.AWSCloud, alias *route53.AliasTarget) (*elbv2.LoadBalancer, error) {
ctx := context.TODO()

func findNetworkLoadBalancerByAlias(ctx context.Context, cloud awsup.AWSCloud, alias *route53.AliasTarget) (*elbv2.LoadBalancer, error) {
// TODO: Any way to avoid listing all NLBs?
request := &elbv2.DescribeLoadBalancersInput{}

Expand Down
47 changes: 2 additions & 45 deletions upup/pkg/fi/cloudup/awstasks/targetgroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ func (e *TargetGroup) CompareWithID() *string {
return e.Name
}

func (e *TargetGroup) findLatestTargetGroup(ctx context.Context, cloud awsup.AWSCloud) (*awsup.TargetGroupInfo, error) {
func (e *TargetGroup) findLatestTargetGroupByName(ctx context.Context, cloud awsup.AWSCloud) (*awsup.TargetGroupInfo, error) {
name := fi.ValueOf(e.Name)

targetGroups, err := awsup.ListELBV2TargetGroups(ctx, cloud)
Expand Down Expand Up @@ -211,7 +211,7 @@ func (e *TargetGroup) Find(c *fi.CloudupContext) (*TargetGroup, error) {
var targetGroupInfo *awsup.TargetGroupInfo

if e.ARN == nil {
tgi, err := e.findTargetGroupByName(ctx, cloud)
tgi, err := e.findLatestTargetGroupByName(ctx, cloud)
if err != nil {
return nil, err
}
Expand All @@ -230,49 +230,6 @@ func (e *TargetGroup) Find(c *fi.CloudupContext) (*TargetGroup, error) {

tg := targetGroupInfo.TargetGroup

tagResponse, err := cloud.ELBV2().DescribeTagsWithContext(ctx, &elbv2.DescribeTagsInput{
ResourceArns: []*string{tg.TargetGroupArn},
})
if err != nil {
return nil, err
}

info := &awsup.TargetGroupInfo{
TargetGroup: tg,
}

for _, t := range tagResponse.TagDescriptions {
info.Tags = append(info.Tags, t.Tags...)
}

return info, nil
}

func (e *TargetGroup) Find(c *fi.CloudupContext) (*TargetGroup, error) {
ctx := c.Context()
cloud := c.T.Cloud.(awsup.AWSCloud)

var targetGroupInfo *awsup.TargetGroupInfo

if e.ARN == nil {
var err error
targetGroupInfo, err = e.findLatestTargetGroup(ctx, cloud)
if err != nil {
return nil, err
}
} else {
var err error
targetGroupInfo, err = e.findTargetGroupByARN(ctx, cloud)
if err != nil {
return nil, err
}
}

if targetGroupInfo == nil {
return nil, nil
}

tg := targetGroupInfo.TargetGroup
actual := &TargetGroup{
Name: tg.TargetGroupName,
Port: tg.Port,
Expand Down

0 comments on commit 4ae3c03

Please sign in to comment.