Skip to content

Commit cdc16d2

Browse files
committed
Make NetworkFilter.IsEmpty() return true on nil receiver
This improves safety and ergonomics checking it when NetworkFilter can be be a pointer type.
1 parent 7a0e942 commit cdc16d2

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

api/v1alpha6/openstackcluster_conversion.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,10 @@ func restorev1alpha6ClusterSpec(previous *OpenStackClusterSpec, dst *OpenStackCl
162162
func restorev1beta1ClusterSpec(previous *infrav1.OpenStackClusterSpec, dst *infrav1.OpenStackClusterSpec) {
163163
// Bastion is restored separately
164164

165+
if dst.Network.IsEmpty() {
166+
dst.Network = previous.Network
167+
}
168+
165169
// Restore all fields except ID, which should have been copied over in conversion
166170
dst.ExternalNetwork.Name = previous.ExternalNetwork.Name
167171
dst.ExternalNetwork.Description = previous.ExternalNetwork.Description

api/v1alpha7/openstackcluster_conversion.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ func restorev1alpha7ClusterSpec(previous *OpenStackClusterSpec, dst *OpenStackCl
167167
func restorev1beta1ClusterSpec(previous *infrav1.OpenStackClusterSpec, dst *infrav1.OpenStackClusterSpec) {
168168
// Bastion is restored separately
169169

170+
if dst.Network.IsEmpty() {
171+
dst.Network = previous.Network
172+
}
173+
170174
// Restore all fields except ID, which should have been copied over in conversion
171175
dst.ExternalNetwork.Name = previous.ExternalNetwork.Name
172176
dst.ExternalNetwork.Description = previous.ExternalNetwork.Description

api/v1beta1/types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ type NetworkFilter struct {
9494
}
9595

9696
func (networkFilter *NetworkFilter) IsEmpty() bool {
97+
if networkFilter == nil {
98+
return true
99+
}
97100
return networkFilter.Name == "" &&
98101
networkFilter.Description == "" &&
99102
networkFilter.ProjectID == "" &&

pkg/cloud/services/networking/port.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ func (s *Service) normalizePorts(ports []infrav1.PortOpts, openStackCluster *inf
423423
// normalizePortTarget ensures that the port has a network ID.
424424
func (s *Service) normalizePortTarget(port *infrav1.PortOpts, openStackCluster *infrav1.OpenStackCluster, portIdx int) error {
425425
// Treat no Network and empty Network the same
426-
noNetwork := port.Network == nil || port.Network.IsEmpty()
426+
noNetwork := port.Network.IsEmpty()
427427

428428
// No network or subnets defined: use cluster defaults
429429
if noNetwork && len(port.FixedIPs) == 0 {

0 commit comments

Comments
 (0)