diff --git a/pkg/client/model/model-functions.go b/pkg/client/model/model-functions.go index ef11aa2..888343d 100644 --- a/pkg/client/model/model-functions.go +++ b/pkg/client/model/model-functions.go @@ -26,7 +26,7 @@ func (c *DhcpStatus) HasConfig() bool { } func (j DhcpConfigV4) isValid() bool { - return j.GatewayIp != nil && j.SubnetMask != nil && j.RangeStart != nil && j.RangeEnd != nil + return j.GatewayIp != nil && *j.GatewayIp != "" && j.SubnetMask != nil && j.RangeStart != nil && j.RangeEnd != nil } func (j DhcpConfigV6) isValid() bool { diff --git a/pkg/sync/sync_test.go b/pkg/sync/sync_test.go index 3fac6d2..6e4e85d 100644 --- a/pkg/sync/sync_test.go +++ b/pkg/sync/sync_test.go @@ -514,12 +514,14 @@ var _ = Describe("Sync", func() { Context("actionDHCPServerConfig", func() { var rsc *model.DhcpStatus BeforeEach(func() { - ac.origin.dhcpServerConfig = &model.DhcpStatus{V4: &model.DhcpConfigV4{ - GatewayIp: utils.Ptr("1.2.3.4"), - RangeStart: utils.Ptr("1.2.3.5"), - RangeEnd: utils.Ptr("1.2.3.6"), - SubnetMask: utils.Ptr("255.255.255.0"), - }} + ac.origin.dhcpServerConfig = &model.DhcpStatus{ + V4: &model.DhcpConfigV4{ + GatewayIp: utils.Ptr("1.2.3.4"), + RangeStart: utils.Ptr("1.2.3.5"), + RangeEnd: utils.Ptr("1.2.3.6"), + SubnetMask: utils.Ptr("255.255.255.0"), + }, + } rsc = &model.DhcpStatus{} w.cfg.Features.DHCP.StaticLeases = false }) @@ -554,6 +556,14 @@ var _ = Describe("Sync", func() { err := actionDHCPServerConfig(ac) Ω(err).ShouldNot(HaveOccurred()) }) + It("should not sync empty IPv4", func() { + ac.replica.DHCPServerEnabled = utils.Ptr(false) + ac.origin.dhcpServerConfig.V4 = &model.DhcpConfigV4{ + GatewayIp: utils.Ptr(""), + } + err := actionDHCPServerConfig(ac) + Ω(err).ShouldNot(HaveOccurred()) + }) }) Context("sync", func() {