Skip to content

Commit 3a5b776

Browse files
committed
Refactored rule and rules into rs
1 parent bd27819 commit 3a5b776

File tree

11 files changed

+371
-371
lines changed

11 files changed

+371
-371
lines changed

pkg/alb/lb/loadbalancer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ func (l *LoadBalancer) Reconcile(rOpts *ReconcileOptions) []error {
237237
errors = append(errors, err)
238238
return errors
239239
}
240+
lbc = l.lb.current
240241
rOpts.Eventf(api.EventTypeNormal, "CREATE", "%s created", *lbc.LoadBalancerName)
241242
l.logger.Infof("Completed ELBV2 (ALB) creation. Name: %s | ARN: %s",
242243
*lbc.LoadBalancerName,

pkg/alb/ls/listener.go

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package ls
33
import (
44
"github.com/aws/aws-sdk-go/aws"
55
"github.com/aws/aws-sdk-go/service/elbv2"
6-
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rules"
6+
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rs"
77
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/annotations"
88
albelbv2 "github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/aws/elbv2"
99
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/util/log"
@@ -88,7 +88,7 @@ func (l *Listener) Reconcile(rOpts *ReconcileOptions) error {
8888
*l.ls.current.ListenerArn, *l.ls.current.Port,
8989
*l.ls.current.Protocol)
9090

91-
case l.NeedsModification(l.ls.desired, rOpts): // current and desired diff; needs mod
91+
case l.needsModification(l.ls.desired, rOpts): // current and desired diff; needs mod
9292
l.logger.Infof("Start Listener modification.")
9393
if err := l.modify(rOpts); err != nil {
9494
return err
@@ -109,10 +109,9 @@ func (l *Listener) create(rOpts *ReconcileOptions) error {
109109
l.ls.desired.LoadBalancerArn = rOpts.LoadBalancerArn
110110

111111
// Set the listener default action to the targetgroup from the default rule.
112-
for _, rule := range l.rules {
113-
if *rule.Desired.IsDefault {
114-
l.ls.desired.DefaultActions[0].TargetGroupArn = rule.TargetGroupArn(rOpts.TargetGroups)
115-
}
112+
defaultRule := l.rules.DefaultRule()
113+
if defaultRule != nil {
114+
l.ls.desired.DefaultActions[0].TargetGroupArn = defaultRule.TargetGroupArn(rOpts.TargetGroups)
116115
}
117116

118117
// Attempt listener creation.
@@ -185,18 +184,15 @@ func (l *Listener) delete(rOpts *ReconcileOptions) error {
185184

186185
// NeedsModification returns true when the current and desired listener state are not the same.
187186
// representing that a modification to the listener should be attempted.
188-
func (l *Listener) NeedsModification(target *elbv2.Listener, rOpts *ReconcileOptions) bool {
187+
func (l *Listener) needsModification(target *elbv2.Listener, rOpts *ReconcileOptions) bool {
189188
lsc := l.ls.current
190189
lsd := l.ls.desired
191190

192191
// Set the listener default action to the targetgroup from the default rule.
193-
for _, rule := range l.rules {
194-
// rule code have no desired (going to be deleted, if so, skip)
195-
if rule.Desired == nil {
196-
continue
197-
}
198-
if *rule.Desired.IsDefault {
199-
target.DefaultActions[0].TargetGroupArn = rule.TargetGroupArn(rOpts.TargetGroups)
192+
if rOpts != nil {
193+
defaultRule := l.rules.DefaultRule()
194+
if defaultRule != nil {
195+
target.DefaultActions[0].TargetGroupArn = defaultRule.TargetGroupArn(rOpts.TargetGroups)
200196
}
201197
}
202198

@@ -219,31 +215,6 @@ func (l *Listener) NeedsModification(target *elbv2.Listener, rOpts *ReconcileOpt
219215
return false
220216
}
221217

222-
// NeedsModifiationCheck is intended for non-reconciliation checks that need to know whether
223-
// a Listener will need modification.
224-
func (l *Listener) NeedsModificationCheck(target *elbv2.Listener) bool {
225-
lsc := l.ls.current
226-
lsd := l.ls.desired
227-
228-
switch {
229-
case lsc == nil && lsd == nil:
230-
return false
231-
case lsc == nil:
232-
return true
233-
case !util.DeepEqual(lsc.Port, target.Port):
234-
return true
235-
case !util.DeepEqual(lsc.Protocol, target.Protocol):
236-
return true
237-
case !util.DeepEqual(lsc.Certificates, target.Certificates):
238-
return true
239-
case !util.DeepEqual(lsc.DefaultActions, target.DefaultActions):
240-
return true
241-
case !util.DeepEqual(lsc.SslPolicy, target.SslPolicy):
242-
return true
243-
}
244-
return false
245-
}
246-
247218
// StripDesiredState removes the desired state from the listener.
248219
func (l *Listener) StripDesiredState() {
249220
l.ls.desired = nil
@@ -256,6 +227,6 @@ func (l *Listener) stripCurrentState() {
256227
l.rules.StripCurrentState()
257228
}
258229

259-
func (l *Listener) GetRules() rules.Rules {
230+
func (l *Listener) GetRules() rs.Rules {
260231
return l.rules
261232
}

pkg/alb/ls/listener_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func TestModificationNeeds(t *testing.T) {
254254
},
255255
}
256256

257-
if !lPortNeedsMod.NeedsModificationCheck(lPortNeedsMod.ls.desired) {
257+
if !lPortNeedsMod.needsModification(lPortNeedsMod.ls.desired, nil) {
258258
t.Error("Listener reported no modification needed. Ports were different and should" +
259259
"require modification")
260260
}
@@ -267,7 +267,7 @@ func TestModificationNeeds(t *testing.T) {
267267
},
268268
}
269269

270-
if lNoMod.NeedsModificationCheck(lNoMod.ls.desired) {
270+
if lNoMod.needsModification(lNoMod.ls.desired, nil) {
271271
t.Error("Listener reported modification needed. Desired and Current were the same")
272272
}
273273

@@ -279,7 +279,7 @@ func TestModificationNeeds(t *testing.T) {
279279
},
280280
}
281281

282-
if !lCertNeedsMod.NeedsModificationCheck(lCertNeedsMod.ls.desired) {
282+
if !lCertNeedsMod.needsModification(lCertNeedsMod.ls.desired, nil) {
283283
t.Error("Listener reported no modification needed. Certificates were different and" +
284284
"should require modification")
285285
}

pkg/alb/ls/listeners.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import (
88

99
extensions "k8s.io/api/extensions/v1beta1"
1010

11-
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rule"
12-
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rules"
11+
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rs"
1312
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/tg"
1413
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/annotations"
1514
albelbv2 "github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/aws/elbv2"
@@ -19,7 +18,7 @@ import (
1918
// Find returns the position of the listener, returning -1 if unfound.
2019
func (ls Listeners) Find(l *elbv2.Listener) int {
2120
for p, v := range ls {
22-
if !v.NeedsModificationCheck(l) {
21+
if !v.needsModification(l, nil) {
2322
return p
2423
}
2524
}
@@ -37,7 +36,7 @@ func (ls Listeners) Reconcile(rOpts *ReconcileOptions) (Listeners, error) {
3736
}
3837

3938
if l.ls.current != nil {
40-
rsOpts := &rules.ReconcileOptions{
39+
rsOpts := &rs.ReconcileOptions{
4140
Eventf: rOpts.Eventf,
4241
ListenerArn: l.ls.current.ListenerArn,
4342
TargetGroups: rOpts.TargetGroups,
@@ -87,7 +86,7 @@ func NewCurrentListeners(o *NewCurrentListenersOptions) (Listeners, error) {
8786

8887
for _, l := range o.Listeners {
8988
o.Logger.Infof("Fetching Rules for Listener %s", *l.ListenerArn)
90-
rs, err := albelbv2.ELBV2svc.DescribeRules(&elbv2.DescribeRulesInput{ListenerArn: l.ListenerArn})
89+
rules, err := albelbv2.ELBV2svc.DescribeRules(&elbv2.DescribeRulesInput{ListenerArn: l.ListenerArn})
9190
if err != nil {
9291
return nil, err
9392
}
@@ -97,14 +96,14 @@ func NewCurrentListeners(o *NewCurrentListenersOptions) (Listeners, error) {
9796
Logger: o.Logger,
9897
})
9998

100-
for _, r := range rs.Rules {
99+
for _, r := range rules.Rules {
101100
// TODO LOOKUP svcName based on TG
102101
i, tg := o.TargetGroups.FindCurrentByARN(*r.Actions[0].TargetGroupArn)
103102
if i < 0 {
104103
return nil, fmt.Errorf("failed to find a target group associated with a rule. This should not be possible. Rule: %s", awsutil.Prettify(r.RuleArn))
105104
}
106105
o.Logger.Debugf("Assembling rule for: %s", log.Prettify(r.Conditions))
107-
newRule := rule.NewCurrentRule(&rule.NewCurrentRuleOptions{
106+
newRule := rs.NewCurrentRule(&rs.NewCurrentRuleOptions{
108107
SvcName: tg.SvcName,
109108
Rule: r,
110109
Logger: o.Logger,
@@ -160,7 +159,7 @@ func NewDesiredListeners(o *NewDesiredListenersOptions) (Listeners, error) {
160159
for _, rule := range o.IngressRules {
161160
var err error
162161

163-
newListener.rules, p, err = rules.NewDesiredRules(&rules.NewDesiredRulesOptions{
162+
newListener.rules, p, err = rs.NewDesiredRules(&rs.NewDesiredRulesOptions{
164163
Priority: p,
165164
Logger: o.Logger,
166165
ListenerRules: newListener.rules,

pkg/alb/ls/listeners_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,12 @@ func TestMultipleListeners(t *testing.T) {
172172
// t.Errorf("Invalid protocol was %s should have been %s", *ls[i].ls.desired.Protocol, expProto)
173173
case len(ls[i].rules) != len(ports)+1:
174174
t.Errorf("Quantity of rules attached to listener is invalid. Was %d, expected %d.", len(ls[i].rules), len(ports)+1)
175-
case !*ls[i].rules[0].Desired.IsDefault:
175+
case !ls[i].rules[0].IsDesiredDefault():
176176
fmt.Println(awsutil.Prettify(ls[i].rules))
177177
t.Errorf("1st rule wasn't marked as default rule.")
178-
case *ls[i].rules[1].Desired.IsDefault:
178+
case ls[i].rules[1].IsDesiredDefault():
179179
fmt.Println(awsutil.Prettify(ls[i].rules))
180180
t.Errorf("2nd rule was marked as default, should only be the first")
181-
182181
}
183182
}
184183
}

pkg/alb/ls/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package ls
22

33
import (
44
"github.com/aws/aws-sdk-go/service/elbv2"
5-
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rules"
5+
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/rs"
66
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/alb/tg"
77
"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/util/log"
88
)
@@ -13,7 +13,7 @@ type Listeners []*Listener
1313
// Listener contains the relevant ID, Rules, and current/desired Listeners
1414
type Listener struct {
1515
ls ls
16-
rules rules.Rules
16+
rules rs.Rules
1717
deleted bool
1818
logger *log.Logger
1919
}

0 commit comments

Comments
 (0)