Skip to content

Commit 5d0725c

Browse files
committed
refactor: better handle nil virtualIPProvider
Currently a virtualIPProvider will always be passed in to the handler, but refactoring to use a builder pattern makes the code more flexible.
1 parent 012fb6a commit 5d0725c

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

pkg/handlers/nutanix/mutation/controlplaneendpoint/inject.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,31 @@ type nutanixControlPlaneEndpoint struct {
3636
variableFieldPath []string
3737
}
3838

39-
func NewPatch(virtualIPProvider virtualip.Provider) *nutanixControlPlaneEndpoint {
39+
func NewPatch() *nutanixControlPlaneEndpoint {
4040
return newNutanixControlPlaneEndpoint(
41-
virtualIPProvider,
4241
clusterconfig.MetaVariableName,
4342
v1alpha1.NutanixVariableName,
4443
VariableName,
4544
)
4645
}
4746

4847
func newNutanixControlPlaneEndpoint(
49-
virtualIPProvider virtualip.Provider,
5048
variableName string,
5149
variableFieldPath ...string,
5250
) *nutanixControlPlaneEndpoint {
5351
return &nutanixControlPlaneEndpoint{
54-
virtualIPProvider: virtualIPProvider,
5552
variableName: variableName,
5653
variableFieldPath: variableFieldPath,
5754
}
5855
}
5956

57+
func (h *nutanixControlPlaneEndpoint) WithVirtualIPProvider(
58+
virtualIPProvider virtualip.Provider,
59+
) *nutanixControlPlaneEndpoint {
60+
h.virtualIPProvider = virtualIPProvider
61+
return h
62+
}
63+
6064
func (h *nutanixControlPlaneEndpoint) Mutate(
6165
ctx context.Context,
6266
obj *unstructured.Unstructured,
@@ -98,6 +102,10 @@ func (h *nutanixControlPlaneEndpoint) Mutate(
98102
selectors.ControlPlane(),
99103
log,
100104
func(obj *controlplanev1.KubeadmControlPlaneTemplate) error {
105+
if h.virtualIPProvider == nil {
106+
return nil
107+
}
108+
101109
virtualIPProviderFile, virtualIPProviderErr := h.virtualIPProvider.GetFile(ctx, controlPlaneEndpointVar)
102110
if virtualIPProviderErr != nil {
103111
return virtualIPProviderErr

pkg/handlers/nutanix/mutation/controlplaneendpoint/inject_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,11 @@ var _ = Describe("Generate Nutanix ControlPlane endpoint patches", func() {
144144

145145
func testPatchGenerator(virtualIPProvider virtualip.Provider) func() mutation.GeneratePatches {
146146
return func() mutation.GeneratePatches {
147-
return mutation.NewMetaGeneratePatchesHandler("", helpers.TestEnv.Client, NewPatch(virtualIPProvider)).(mutation.GeneratePatches)
147+
return mutation.NewMetaGeneratePatchesHandler(
148+
"",
149+
helpers.TestEnv.Client,
150+
NewPatch().WithVirtualIPProvider(virtualIPProvider),
151+
).(mutation.GeneratePatches)
148152
}
149153
}
150154

pkg/handlers/nutanix/mutation/metapatch_handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
func MetaPatchHandler(mgr manager.Manager, virtualIPProvider virtualip.Provider) handlers.Named {
2020
patchHandlers := append(
2121
[]mutation.MetaMutator{
22-
controlplaneendpoint.NewPatch(virtualIPProvider),
22+
controlplaneendpoint.NewPatch().WithVirtualIPProvider(virtualIPProvider),
2323
prismcentralendpoint.NewPatch(),
2424
machinedetails.NewControlPlanePatch(),
2525
},

0 commit comments

Comments
 (0)