func()

in cmd/lb_create.go [125:181]


func (o lbCreateOperation) execute() {
	defaultTargetGroupName := fmt.Sprintf(defaultTargetGroupFormat, o.lbName)

	loadBalancerARN, err := o.elbv2.CreateLoadBalancer(
		elbv2.CreateLoadBalancerParameters{
			Name:             o.lbName,
			SecurityGroupIDs: o.securityGroupIDs,
			SubnetIDs:        o.subnetIDs,
			Type:             o.lbType,
			Scheme:           o.lbScheme,
		},
	)

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

	o.output.Debug("Creating target group [Name=%s]", defaultTargetGroupName)
	defaultTargetGroupARN, err := o.elbv2.CreateTargetGroup(
		elbv2.CreateTargetGroupParameters{
			Name:     defaultTargetGroupName,
			Port:     o.ports[0].Number,
			Protocol: o.ports[0].Protocol,
			VPCID:    o.vpcID,
		},
	)

	if err != nil {
		o.output.Fatal(err, "Could not create default target group")
		return
	}

	o.output.Debug("Created target group [ARN=%s]", defaultTargetGroupARN)

	for _, port := range o.ports {
		o.output.Debug("Creating listener [Port=%d Protocol=%s]", port.Number, port.Protocol)
		listenerARN, err := o.elbv2.CreateListener(
			elbv2.CreateListenerParameters{
				CertificateARNs:       o.certificateARNs,
				DefaultTargetGroupARN: defaultTargetGroupARN,
				LoadBalancerARN:       loadBalancerARN,
				Port:                  port.Number,
				Protocol:              port.Protocol,
			},
		)

		if err != nil {
			o.output.Fatal(err, "Could not create listener")
			return
		}

		o.output.Debug("Created listener [ARN=%s]", listenerARN)
	}

	o.output.Info("Created load balancer %s", o.lbName)
}