Skip to content

Commit 13dc025

Browse files
authored
Refactor codebase using generic GetPointer function (#1006)
Problem: We were still using typed GetPointer functions even after we had created a generic GetPointer function. Solution: Replaced all uses of typed GetPointer functions with the generic GetPointer function and removed typed GetPointer functions from the codebase.
1 parent 854ebdc commit 13dc025

File tree

10 files changed

+79
-120
lines changed

10 files changed

+79
-120
lines changed

internal/framework/helpers/helpers.go

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66

77
"github.com/google/go-cmp/cmp"
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9-
"sigs.k8s.io/gateway-api/apis/v1beta1"
109
)
1110

1211
// Diff prints the diff between two structs.
@@ -21,46 +20,6 @@ func Diff(want, got any) string {
2120
return r
2221
}
2322

24-
// GetStringPointer takes a string and returns a pointer to it.
25-
func GetStringPointer(s string) *string {
26-
return &s
27-
}
28-
29-
// GetIntPointer takes an int and returns a pointer to it.
30-
func GetIntPointer(i int) *int {
31-
return &i
32-
}
33-
34-
// GetInt32Pointer takes an int32 and returns a pointer to it.
35-
func GetInt32Pointer(i int32) *int32 {
36-
return &i
37-
}
38-
39-
// GetHTTPMethodPointer takes an HTTPMethod and returns a pointer to it.
40-
func GetHTTPMethodPointer(m v1beta1.HTTPMethod) *v1beta1.HTTPMethod {
41-
return &m
42-
}
43-
44-
// GetHeaderMatchTypePointer takes an HeaderMatchType and returns a pointer to it.
45-
func GetHeaderMatchTypePointer(t v1beta1.HeaderMatchType) *v1beta1.HeaderMatchType {
46-
return &t
47-
}
48-
49-
// GetQueryParamMatchTypePointer takes an QueryParamMatchType and returns a pointer to it.
50-
func GetQueryParamMatchTypePointer(t v1beta1.QueryParamMatchType) *v1beta1.QueryParamMatchType {
51-
return &t
52-
}
53-
54-
// GetTLSModePointer takes a TLSModeType and returns a pointer to it.
55-
func GetTLSModePointer(t v1beta1.TLSModeType) *v1beta1.TLSModeType {
56-
return &t
57-
}
58-
59-
// GetBoolPointer takes a bool and returns a pointer to it.
60-
func GetBoolPointer(b bool) *bool {
61-
return &b
62-
}
63-
6423
// GetPointer takes a value of any type and returns a pointer to it.
6524
func GetPointer[T any](v T) *T {
6625
return &v

internal/framework/status/updater_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,9 @@ var _ = Describe("Updater", func() {
210210
{
211211
ControllerName: v1beta1.GatewayController(gatewayCtrlName),
212212
ParentRef: v1beta1.ParentReference{
213-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("test")),
213+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("test")),
214214
Name: "gateway",
215-
SectionName: (*v1beta1.SectionName)(helpers.GetStringPointer("http")),
215+
SectionName: (*v1beta1.SectionName)(helpers.GetPointer("http")),
216216
},
217217
Conditions: status.CreateExpectedAPIConditions("Test", 5, fakeClockTime),
218218
},

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestBuildConfiguration(t *testing.T) {
3232
Matches: []v1beta1.HTTPRouteMatch{
3333
{
3434
Path: &v1beta1.HTTPPathMatch{
35-
Value: helpers.GetStringPointer(p.path),
35+
Value: helpers.GetPointer(p.path),
3636
Type: helpers.GetPointer(p.pathType),
3737
},
3838
},
@@ -48,9 +48,9 @@ func TestBuildConfiguration(t *testing.T) {
4848
CommonRouteSpec: v1beta1.CommonRouteSpec{
4949
ParentRefs: []v1beta1.ParentReference{
5050
{
51-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("test")),
51+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("test")),
5252
Name: "gateway",
53-
SectionName: (*v1beta1.SectionName)(helpers.GetStringPointer(listenerName)),
53+
SectionName: (*v1beta1.SectionName)(helpers.GetPointer(listenerName)),
5454
},
5555
},
5656
},
@@ -218,7 +218,7 @@ func TestBuildConfiguration(t *testing.T) {
218218
redirect := v1beta1.HTTPRouteFilter{
219219
Type: v1beta1.HTTPRouteFilterRequestRedirect,
220220
RequestRedirect: &v1beta1.HTTPRequestRedirectFilter{
221-
Hostname: (*v1beta1.PreciseHostname)(helpers.GetStringPointer("foo.example.com")),
221+
Hostname: (*v1beta1.PreciseHostname)(helpers.GetPointer("foo.example.com")),
222222
},
223223
}
224224
addFilters(hr5, []v1beta1.HTTPRouteFilter{redirect})
@@ -347,10 +347,10 @@ func TestBuildConfiguration(t *testing.T) {
347347
Port: 443,
348348
Protocol: v1beta1.HTTPSProtocolType,
349349
TLS: &v1beta1.GatewayTLSConfig{
350-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
350+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
351351
CertificateRefs: []v1beta1.SecretObjectReference{
352352
{
353-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Secret")),
353+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Secret")),
354354
Namespace: helpers.GetPointer(v1beta1.Namespace(secret1NsName.Namespace)),
355355
Name: v1beta1.ObjectName(secret1NsName.Name),
356356
},
@@ -364,10 +364,10 @@ func TestBuildConfiguration(t *testing.T) {
364364
Port: 8443,
365365
Protocol: v1beta1.HTTPSProtocolType,
366366
TLS: &v1beta1.GatewayTLSConfig{
367-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
367+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
368368
CertificateRefs: []v1beta1.SecretObjectReference{
369369
{
370-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Secret")),
370+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Secret")),
371371
Namespace: helpers.GetPointer(v1beta1.Namespace(secret2NsName.Namespace)),
372372
Name: v1beta1.ObjectName(secret2NsName.Name),
373373
},
@@ -383,10 +383,10 @@ func TestBuildConfiguration(t *testing.T) {
383383
Port: 443,
384384
Protocol: v1beta1.HTTPSProtocolType,
385385
TLS: &v1beta1.GatewayTLSConfig{
386-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
386+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
387387
CertificateRefs: []v1beta1.SecretObjectReference{
388388
{
389-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Secret")),
389+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Secret")),
390390
Namespace: helpers.GetPointer(v1beta1.Namespace(secret2NsName.Namespace)),
391391
Name: v1beta1.ObjectName(secret2NsName.Name),
392392
},
@@ -1506,7 +1506,7 @@ func TestGetPath(t *testing.T) {
15061506
msg string
15071507
}{
15081508
{
1509-
path: &v1beta1.HTTPPathMatch{Value: helpers.GetStringPointer("/abc")},
1509+
path: &v1beta1.HTTPPathMatch{Value: helpers.GetPointer("/abc")},
15101510
expected: "/abc",
15111511
msg: "normal case",
15121512
},
@@ -1521,7 +1521,7 @@ func TestGetPath(t *testing.T) {
15211521
msg: "nil value",
15221522
},
15231523
{
1524-
path: &v1beta1.HTTPPathMatch{Value: helpers.GetStringPointer("")},
1524+
path: &v1beta1.HTTPPathMatch{Value: helpers.GetPointer("")},
15251525
expected: "/",
15261526
msg: "empty value",
15271527
},

internal/mode/static/state/graph/gateway_listener_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,22 @@ func TestValidateHTTPSListener(t *testing.T) {
4949
secretNs := "secret-ns"
5050

5151
validSecretRef := v1beta1.SecretObjectReference{
52-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Secret")),
52+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Secret")),
5353
Name: "secret",
54-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer(secretNs)),
54+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer(secretNs)),
5555
}
5656

5757
invalidSecretRefGroup := v1beta1.SecretObjectReference{
58-
Group: (*v1beta1.Group)(helpers.GetStringPointer("some-group")),
59-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Secret")),
58+
Group: (*v1beta1.Group)(helpers.GetPointer("some-group")),
59+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Secret")),
6060
Name: "secret",
61-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer(secretNs)),
61+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer(secretNs)),
6262
}
6363

6464
invalidSecretRefKind := v1beta1.SecretObjectReference{
65-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("ConfigMap")),
65+
Kind: (*v1beta1.Kind)(helpers.GetPointer("ConfigMap")),
6666
Name: "secret",
67-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer(secretNs)),
67+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer(secretNs)),
6868
}
6969

7070
tests := []struct {
@@ -76,7 +76,7 @@ func TestValidateHTTPSListener(t *testing.T) {
7676
l: v1beta1.Listener{
7777
Port: 443,
7878
TLS: &v1beta1.GatewayTLSConfig{
79-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
79+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
8080
CertificateRefs: []v1beta1.SecretObjectReference{validSecretRef},
8181
},
8282
},
@@ -87,7 +87,7 @@ func TestValidateHTTPSListener(t *testing.T) {
8787
l: v1beta1.Listener{
8888
Port: 0,
8989
TLS: &v1beta1.GatewayTLSConfig{
90-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
90+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
9191
CertificateRefs: []v1beta1.SecretObjectReference{validSecretRef},
9292
},
9393
},
@@ -98,7 +98,7 @@ func TestValidateHTTPSListener(t *testing.T) {
9898
l: v1beta1.Listener{
9999
Port: 443,
100100
TLS: &v1beta1.GatewayTLSConfig{
101-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
101+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
102102
CertificateRefs: []v1beta1.SecretObjectReference{validSecretRef},
103103
Options: map[v1beta1.AnnotationKey]v1beta1.AnnotationValue{"key": "val"},
104104
},
@@ -110,7 +110,7 @@ func TestValidateHTTPSListener(t *testing.T) {
110110
l: v1beta1.Listener{
111111
Port: 443,
112112
TLS: &v1beta1.GatewayTLSConfig{
113-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModePassthrough),
113+
Mode: helpers.GetPointer(v1beta1.TLSModePassthrough),
114114
CertificateRefs: []v1beta1.SecretObjectReference{validSecretRef},
115115
},
116116
},
@@ -123,7 +123,7 @@ func TestValidateHTTPSListener(t *testing.T) {
123123
l: v1beta1.Listener{
124124
Port: 443,
125125
TLS: &v1beta1.GatewayTLSConfig{
126-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
126+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
127127
CertificateRefs: []v1beta1.SecretObjectReference{invalidSecretRefGroup},
128128
},
129129
},
@@ -136,7 +136,7 @@ func TestValidateHTTPSListener(t *testing.T) {
136136
l: v1beta1.Listener{
137137
Port: 443,
138138
TLS: &v1beta1.GatewayTLSConfig{
139-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
139+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
140140
CertificateRefs: []v1beta1.SecretObjectReference{invalidSecretRefKind},
141141
},
142142
},
@@ -149,7 +149,7 @@ func TestValidateHTTPSListener(t *testing.T) {
149149
l: v1beta1.Listener{
150150
Port: 443,
151151
TLS: &v1beta1.GatewayTLSConfig{
152-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
152+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
153153
CertificateRefs: []v1beta1.SecretObjectReference{validSecretRef, validSecretRef},
154154
},
155155
},
@@ -184,22 +184,22 @@ func TestValidateListenerHostname(t *testing.T) {
184184
name: "nil hostname",
185185
},
186186
{
187-
hostname: (*v1beta1.Hostname)(helpers.GetStringPointer("")),
187+
hostname: (*v1beta1.Hostname)(helpers.GetPointer("")),
188188
expectErr: false,
189189
name: "empty hostname",
190190
},
191191
{
192-
hostname: (*v1beta1.Hostname)(helpers.GetStringPointer("foo.example.com")),
192+
hostname: (*v1beta1.Hostname)(helpers.GetPointer("foo.example.com")),
193193
expectErr: false,
194194
name: "valid hostname",
195195
},
196196
{
197-
hostname: (*v1beta1.Hostname)(helpers.GetStringPointer("*.example.com")),
197+
hostname: (*v1beta1.Hostname)(helpers.GetPointer("*.example.com")),
198198
expectErr: false,
199199
name: "wildcard hostname",
200200
},
201201
{
202-
hostname: (*v1beta1.Hostname)(helpers.GetStringPointer("example$com")),
202+
hostname: (*v1beta1.Hostname)(helpers.GetPointer("example$com")),
203203
expectErr: true,
204204
name: "invalid hostname",
205205
},

internal/mode/static/state/graph/graph_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ func TestBuildGraph(t *testing.T) {
4040
CommonRouteSpec: v1beta1.CommonRouteSpec{
4141
ParentRefs: []v1beta1.ParentReference{
4242
{
43-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("test")),
43+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("test")),
4444
Name: v1beta1.ObjectName(gatewayName),
45-
SectionName: (*v1beta1.SectionName)(helpers.GetStringPointer(listenerName)),
45+
SectionName: (*v1beta1.SectionName)(helpers.GetPointer(listenerName)),
4646
},
4747
},
4848
},
@@ -55,18 +55,18 @@ func TestBuildGraph(t *testing.T) {
5555
{
5656
Path: &v1beta1.HTTPPathMatch{
5757
Type: helpers.GetPointer(v1beta1.PathMatchPathPrefix),
58-
Value: helpers.GetStringPointer("/"),
58+
Value: helpers.GetPointer("/"),
5959
},
6060
},
6161
},
6262
BackendRefs: []v1beta1.HTTPBackendRef{
6363
{
6464
BackendRef: v1beta1.BackendRef{
6565
BackendObjectReference: v1beta1.BackendObjectReference{
66-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Service")),
66+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Service")),
6767
Name: "foo",
68-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("service")),
69-
Port: (*v1beta1.PortNumber)(helpers.GetInt32Pointer(80)),
68+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("service")),
69+
Port: (*v1beta1.PortNumber)(helpers.GetPointer[int32](80)),
7070
},
7171
},
7272
},
@@ -134,7 +134,7 @@ func TestBuildGraph(t *testing.T) {
134134
Hostname: nil,
135135
Port: 443,
136136
TLS: &v1beta1.GatewayTLSConfig{
137-
Mode: helpers.GetTLSModePointer(v1beta1.TLSModeTerminate),
137+
Mode: helpers.GetPointer(v1beta1.TLSModeTerminate),
138138
CertificateRefs: []v1beta1.SecretObjectReference{
139139
{
140140
Kind: helpers.GetPointer[v1beta1.Kind]("Secret"),

internal/mode/static/state/graph/httproute_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ func TestBindRouteToListeners(t *testing.T) {
540540
return &Listener{
541541
Source: v1beta1.Listener{
542542
Name: v1beta1.SectionName(name),
543-
Hostname: (*v1beta1.Hostname)(helpers.GetStringPointer("foo.example.com")),
543+
Hostname: (*v1beta1.Hostname)(helpers.GetPointer("foo.example.com")),
544544
},
545545
Valid: true,
546546
Routes: map[types.NamespacedName]*Route{},

internal/mode/static/state/relationship/capturer_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ func createBackendRefs(backendNames ...v1beta1.ObjectName) []v1beta1.HTTPBackend
2121
refs = append(refs, v1beta1.HTTPBackendRef{
2222
BackendRef: v1beta1.BackendRef{
2323
BackendObjectReference: v1beta1.BackendObjectReference{
24-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Service")),
24+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Service")),
2525
Name: name,
26-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("test")),
26+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("test")),
2727
},
2828
},
2929
})

internal/mode/static/state/relationship/relationships_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ func TestGetBackendServiceNamesFromRoute(t *testing.T) {
1717
{
1818
BackendRef: v1beta1.BackendRef{
1919
BackendObjectReference: v1beta1.BackendObjectReference{
20-
Kind: (*v1beta1.Kind)(helpers.GetStringPointer("Service")),
20+
Kind: (*v1beta1.Kind)(helpers.GetPointer("Service")),
2121
Name: svcName,
22-
Namespace: (*v1beta1.Namespace)(helpers.GetStringPointer("test")),
23-
Port: (*v1beta1.PortNumber)(helpers.GetInt32Pointer(80)),
22+
Namespace: (*v1beta1.Namespace)(helpers.GetPointer("test")),
23+
Port: (*v1beta1.PortNumber)(helpers.GetPointer[int32](80)),
2424
},
2525
},
2626
},
@@ -48,7 +48,7 @@ func TestGetBackendServiceNamesFromRoute(t *testing.T) {
4848
BackendRefs: getModifiedRefs(
4949
"invalid-kind",
5050
func(refs []v1beta1.HTTPBackendRef) []v1beta1.HTTPBackendRef {
51-
refs[0].Kind = (*v1beta1.Kind)(helpers.GetStringPointer("Invalid"))
51+
refs[0].Kind = (*v1beta1.Kind)(helpers.GetPointer("Invalid"))
5252
return refs
5353
},
5454
),
@@ -67,7 +67,7 @@ func TestGetBackendServiceNamesFromRoute(t *testing.T) {
6767
"diff-namespace",
6868
func(refs []v1beta1.HTTPBackendRef) []v1beta1.HTTPBackendRef {
6969
refs[0].Namespace = (*v1beta1.Namespace)(
70-
helpers.GetStringPointer("not-test"),
70+
helpers.GetPointer("not-test"),
7171
)
7272
return refs
7373
},
@@ -87,14 +87,14 @@ func TestGetBackendServiceNamesFromRoute(t *testing.T) {
8787
BackendRef: v1beta1.BackendRef{
8888
BackendObjectReference: v1beta1.BackendObjectReference{
8989
Kind: (*v1beta1.Kind)(
90-
helpers.GetStringPointer("Service"),
90+
helpers.GetPointer("Service"),
9191
),
9292
Name: "multiple-refs2",
9393
Namespace: (*v1beta1.Namespace)(
94-
helpers.GetStringPointer("test"),
94+
helpers.GetPointer("test"),
9595
),
9696
Port: (*v1beta1.PortNumber)(
97-
helpers.GetInt32Pointer(80),
97+
helpers.GetPointer[int32](80),
9898
),
9999
},
100100
},

0 commit comments

Comments
 (0)