Skip to content

Commit 807b758

Browse files
committed
Add unit tests; comments
1 parent 2655060 commit 807b758

19 files changed

+138
-60
lines changed

internal/mode/static/policies/clientsettings/generator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ keepalive_timeout {{ .KeepAlive.Timeout.Server }};
3737
`
3838

3939
// Generate generates configuration as []byte for a ClientSettingsPolicy.
40-
func Generate(policy policies.Policy, _ *policies.GlobalPolicySettings) []byte {
40+
func Generate(policy policies.Policy, _ *policies.GlobalSettings) []byte {
4141
csp := helpers.MustCastObject[*ngfAPI.ClientSettingsPolicy](policy)
4242

4343
return helpers.MustExecuteTemplate(tmpl, csp.Spec)

internal/mode/static/policies/clientsettings/validator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func NewValidator(genericValidator validation.GenericValidator) *Validator {
2525
}
2626

2727
// Validate validates the spec of a ClientSettingsPolicy.
28-
func (v *Validator) Validate(policy policies.Policy, _ *policies.GlobalPolicySettings) []conditions.Condition {
28+
func (v *Validator) Validate(policy policies.Policy, _ *policies.GlobalSettings) []conditions.Condition {
2929
csp := helpers.MustCastObject[*ngfAPI.ClientSettingsPolicy](policy)
3030

3131
targetRefPath := field.NewPath("spec").Child("targetRef")

internal/mode/static/policies/manager.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ import (
1212
)
1313

1414
// GenerateFunc generates config as []byte for an NGF Policy.
15-
type GenerateFunc func(policy Policy, globalSettings *GlobalPolicySettings) []byte
15+
type GenerateFunc func(policy Policy, globalSettings *GlobalSettings) []byte
1616

1717
// Validator validates an NGF Policy.
1818
//
1919
//counterfeiter:generate . Validator
2020
type Validator interface {
2121
// Validate validates an NGF Policy.
22-
Validate(policy Policy, globalSettings *GlobalPolicySettings) []conditions.Condition
22+
Validate(policy Policy, globalSettings *GlobalSettings) []conditions.Condition
2323
// Conflicts returns true if the two Policies conflict.
2424
Conflicts(a, b Policy) bool
2525
}
@@ -62,7 +62,7 @@ func NewManager(
6262
}
6363

6464
// Generate generates config for the policy as a byte array.
65-
func (m *Manager) Generate(policy Policy, globalSettings *GlobalPolicySettings) []byte {
65+
func (m *Manager) Generate(policy Policy, globalSettings *GlobalSettings) []byte {
6666
gvk := m.mustExtractGVK(policy)
6767

6868
generate, ok := m.generators[gvk]
@@ -74,7 +74,7 @@ func (m *Manager) Generate(policy Policy, globalSettings *GlobalPolicySettings)
7474
}
7575

7676
// Validate validates the policy.
77-
func (m *Manager) Validate(policy Policy, globalSettings *GlobalPolicySettings) []conditions.Condition {
77+
func (m *Manager) Validate(policy Policy, globalSettings *GlobalSettings) []conditions.Condition {
7878
gvk := m.mustExtractGVK(policy)
7979

8080
validator, ok := m.validators[gvk]

internal/mode/static/policies/manager_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@ var _ = Describe("Policy Manager", func() {
4242
mustExtractGVK,
4343
policies.ManagerConfig{
4444
Validator: &policiesfakes.FakeValidator{
45-
ValidateStub: func(_ policies.Policy, _ *policies.GlobalPolicySettings) []conditions.Condition {
45+
ValidateStub: func(_ policies.Policy, _ *policies.GlobalSettings) []conditions.Condition {
4646
return []conditions.Condition{staticConds.NewPolicyInvalid("apple error")}
4747
},
4848
ConflictsStub: func(_ policies.Policy, _ policies.Policy) bool { return true },
4949
},
50-
Generator: func(_ policies.Policy, _ *policies.GlobalPolicySettings) []byte {
50+
Generator: func(_ policies.Policy, _ *policies.GlobalSettings) []byte {
5151
return []byte("apple")
5252
},
5353
GVK: appleGVK,
5454
},
5555
policies.ManagerConfig{
5656
Validator: &policiesfakes.FakeValidator{
57-
ValidateStub: func(_ policies.Policy, _ *policies.GlobalPolicySettings) []conditions.Condition {
57+
ValidateStub: func(_ policies.Policy, _ *policies.GlobalSettings) []conditions.Condition {
5858
return []conditions.Condition{staticConds.NewPolicyInvalid("orange error")}
5959
},
6060
ConflictsStub: func(_ policies.Policy, _ policies.Policy) bool { return false },
6161
},
62-
Generator: func(_ policies.Policy, _ *policies.GlobalPolicySettings) []byte {
62+
Generator: func(_ policies.Policy, _ *policies.GlobalSettings) []byte {
6363
return []byte("orange")
6464
},
6565
GVK: orangeGVK,

internal/mode/static/policies/observability/generator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ otel_span_attr "{{ $attr.Key }}" "{{ $attr.Value }}";
3030
`
3131

3232
// Generate generates configuration as []byte for an ObservabilityPolicy.
33-
func Generate(policy policies.Policy, globalSettings *policies.GlobalPolicySettings) []byte {
33+
func Generate(policy policies.Policy, globalSettings *policies.GlobalSettings) []byte {
3434
obs := helpers.MustCastObject[*ngfAPI.ObservabilityPolicy](policy)
3535

3636
var strategy string

internal/mode/static/policies/observability/generator_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestGenerate(t *testing.T) {
2222
tests := []struct {
2323
name string
2424
policy policies.Policy
25-
globalSettings *policies.GlobalPolicySettings
25+
globalSettings *policies.GlobalSettings
2626
expStrings []string
2727
}{
2828
{
@@ -138,7 +138,7 @@ func TestGenerate(t *testing.T) {
138138
Tracing: &ngfAPI.Tracing{},
139139
},
140140
},
141-
globalSettings: &policies.GlobalPolicySettings{
141+
globalSettings: &policies.GlobalSettings{
142142
TracingSpanAttributes: []ngfAPI.SpanAttribute{
143143
{Key: "test-global-key", Value: "test-global-value"},
144144
},
@@ -162,7 +162,7 @@ func TestGenerate(t *testing.T) {
162162
},
163163
},
164164
},
165-
globalSettings: &policies.GlobalPolicySettings{
165+
globalSettings: &policies.GlobalSettings{
166166
TracingSpanAttributes: []ngfAPI.SpanAttribute{
167167
{Key: "test-global-key", Value: "test-global-value"},
168168
},

internal/mode/static/policies/observability/validator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func NewValidator(genericValidator validation.GenericValidator) *Validator {
2727
// Validate validates the spec of an ObservabilityPolicy.
2828
func (v *Validator) Validate(
2929
policy policies.Policy,
30-
globalSettings *policies.GlobalPolicySettings,
30+
globalSettings *policies.GlobalSettings,
3131
) []conditions.Condition {
3232
obs := helpers.MustCastObject[*ngfAPI.ObservabilityPolicy](policy)
3333

internal/mode/static/policies/observability/validator_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ func createModifiedPolicy(mod policyModFunc) *ngfAPI.ObservabilityPolicy {
5252
}
5353

5454
func TestValidator_Validate(t *testing.T) {
55-
globalSettings := &policies.GlobalPolicySettings{
55+
globalSettings := &policies.GlobalSettings{
5656
NginxProxyValid: true,
5757
TelemetryEnabled: true,
5858
}
5959

6060
tests := []struct {
6161
name string
6262
policy *ngfAPI.ObservabilityPolicy
63-
globalSettings *policies.GlobalPolicySettings
63+
globalSettings *policies.GlobalSettings
6464
expConditions []conditions.Condition
6565
}{
6666
{
@@ -73,15 +73,15 @@ func TestValidator_Validate(t *testing.T) {
7373
{
7474
name: "validation context is invalid",
7575
policy: createValidPolicy(),
76-
globalSettings: &policies.GlobalPolicySettings{NginxProxyValid: false},
76+
globalSettings: &policies.GlobalSettings{NginxProxyValid: false},
7777
expConditions: []conditions.Condition{
7878
staticConds.NewPolicyNotAcceptedNginxProxyNotSet(staticConds.PolicyMessageNginxProxyInvalid),
7979
},
8080
},
8181
{
8282
name: "telemetry is not enabled",
8383
policy: createValidPolicy(),
84-
globalSettings: &policies.GlobalPolicySettings{NginxProxyValid: true, TelemetryEnabled: false},
84+
globalSettings: &policies.GlobalSettings{NginxProxyValid: true, TelemetryEnabled: false},
8585
expConditions: []conditions.Condition{
8686
staticConds.NewPolicyNotAcceptedNginxProxyNotSet(staticConds.PolicyMessageTelemetryNotEnabled),
8787
},

internal/mode/static/policies/policiesfakes/fake_config_generator.go

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/mode/static/policies/policiesfakes/fake_validator.go

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/mode/static/policies/policy.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,18 @@ type Policy interface {
2727
//
2828
//counterfeiter:generate . ConfigGenerator
2929
type ConfigGenerator interface {
30-
Generate(policy Policy, globalSettings *GlobalPolicySettings) []byte
30+
Generate(policy Policy, globalSettings *GlobalSettings) []byte
3131
}
3232

33-
// GlobalPolicySettings contains global settings from the current state of the graph that may be
33+
// GlobalSettings contains global settings from the current state of the graph that may be
3434
// needed for policy validation or generation if certain policies rely on those global settings.
35-
type GlobalPolicySettings struct {
35+
type GlobalSettings struct {
36+
// TracingSpanAttributes contain the attributes specified in the NginxProxy resource.
3637
TracingSpanAttributes []ngfAPI.SpanAttribute
37-
NginxProxyValid bool
38-
TelemetryEnabled bool
38+
// NginxProxyValid is whether or not the NginxProxy resource is valid.
39+
NginxProxyValid bool
40+
// TelemetryEnabled is whether or not telemetry is enabled in the NginxProxy resource.
41+
TelemetryEnabled bool
3942
}
4043

4144
// ValidateTargetRef validates a policy's targetRef for the proper group and kind.

internal/mode/static/state/dataplane/configuration.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func buildServers(g *graph.Graph, generator policies.ConfigGenerator) (http, ssl
218218
rulesForProtocol[l.Source.Protocol][l.Source.Port] = rules
219219
}
220220

221-
rules.upsertListener(l, g.GlobalPolicySettings)
221+
rules.upsertListener(l, g.GlobalSettings)
222222
}
223223
}
224224

@@ -227,7 +227,7 @@ func buildServers(g *graph.Graph, generator policies.ConfigGenerator) (http, ssl
227227

228228
httpServers, sslServers := httpRules.buildServers(), sslRules.buildServers()
229229

230-
additions := buildAdditions(g.Gateway.Policies, g.GlobalPolicySettings, generator)
230+
additions := buildAdditions(g.Gateway.Policies, g.GlobalSettings, generator)
231231

232232
for i := range httpServers {
233233
httpServers[i].Additions = additions
@@ -281,7 +281,7 @@ func newHostPathRules(generator policies.ConfigGenerator) *hostPathRules {
281281
}
282282
}
283283

284-
func (hpr *hostPathRules) upsertListener(l *graph.Listener, globalSettings *policies.GlobalPolicySettings) {
284+
func (hpr *hostPathRules) upsertListener(l *graph.Listener, globalSettings *policies.GlobalSettings) {
285285
hpr.listenersExist = true
286286
hpr.port = int32(l.Source.Port)
287287

@@ -301,7 +301,7 @@ func (hpr *hostPathRules) upsertListener(l *graph.Listener, globalSettings *poli
301301
func (hpr *hostPathRules) upsertRoute(
302302
route *graph.L7Route,
303303
listener *graph.Listener,
304-
globalSettings *policies.GlobalPolicySettings,
304+
globalSettings *policies.GlobalSettings,
305305
) {
306306
var hostnames []string
307307
GRPC := route.RouteType == graph.RouteTypeGRPC
@@ -674,7 +674,7 @@ func buildBaseHTTPConfig(g *graph.Graph) BaseHTTPConfig {
674674

675675
func buildAdditions(
676676
policies []*graph.Policy,
677-
globalSettings *policies.GlobalPolicySettings,
677+
globalSettings *policies.GlobalSettings,
678678
generator policies.ConfigGenerator,
679679
) []Addition {
680680
if len(policies) == 0 {

0 commit comments

Comments
 (0)