func()

in cmd/lb_alias.go [17:56]


func (o lbAliasOperation) execute() {
	loadBalancer, err := o.findLB(o.lbName)

	if err != nil {
		o.output.Fatal(err, "Could not alias load balancer")
		return
	}

	hostedZones, err := o.route53.ListHostedZones()

	if err != nil {
		o.output.Fatal(err, "Could not alias load balancer")
		return
	}

	if hostedZone, ok := hostedZones.FindSuperDomainOf(o.aliasDomain); ok {
		o.output.Debug("Creating alias record [API=route53 Action=CreateResourceRecordSet]")
		id, err := o.route53.CreateAlias(
			route53.CreateAliasInput{
				HostedZoneID:       hostedZone.ID,
				RecordType:         "A",
				Name:               o.aliasDomain,
				Target:             loadBalancer.DNSName,
				TargetHostedZoneID: loadBalancer.HostedZoneID,
			},
		)

		if err != nil {
			o.output.Fatal(err, "Could not alias load balancer")
			return
		}

		o.output.Debug("Created alias record [ChangeID=%s]", id)
		o.output.Info("Created alias record (%s -> %s)", o.aliasDomain, loadBalancer.DNSName)
	} else {
		o.output.Warn("Could not find hosted zone for %s", o.aliasDomain)
		o.output.Say("If you're hosting this domain elsewhere or in another AWS account, please manually create the alias record:", 1)
		o.output.Say("%s -> %s", 1, o.aliasDomain, loadBalancer.DNSName)
	}
}