Skip to content

Commit 81d243b

Browse files
gwenyastgraber
authored andcommitted
incusd/network/ovn: Correctly remove individual DHCP options from OVN when they are unset
Signed-off-by: Gwendolyn <[email protected]>
1 parent 655695d commit 81d243b

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

internal/server/network/ovn/ovn_nb_actions.go

+17-1
Original file line numberDiff line numberDiff line change
@@ -1262,14 +1262,18 @@ func (o *NB) UpdateLogicalSwitchDHCPv4Options(ctx context.Context, switchName OV
12621262

12631263
if opts.Router != nil {
12641264
dhcpOption.Options["router"] = opts.Router.String()
1265+
} else {
1266+
delete(dhcpOption.Options, "router")
12651267
}
12661268

12671269
if len(opts.DNSSearchList) > 0 {
12681270
// Special quoting to allow domain names.
12691271
dhcpOption.Options["domain_search_list"] = fmt.Sprintf(`"%s"`, strings.Join(opts.DNSSearchList, ","))
1272+
} else {
1273+
delete(dhcpOption.Options, "domain_search_list")
12701274
}
12711275

1272-
if opts.RecursiveDNSServer != nil {
1276+
if len(opts.RecursiveDNSServer) > 0 {
12731277
nsIPs := make([]string, 0, len(opts.RecursiveDNSServer))
12741278
for _, nsIP := range opts.RecursiveDNSServer {
12751279
if nsIP.To4() == nil {
@@ -1280,19 +1284,27 @@ func (o *NB) UpdateLogicalSwitchDHCPv4Options(ctx context.Context, switchName OV
12801284
}
12811285

12821286
dhcpOption.Options["dns_server"] = fmt.Sprintf("{%s}", strings.Join(nsIPs, ","))
1287+
} else {
1288+
delete(dhcpOption.Options, "dns_server")
12831289
}
12841290

12851291
if opts.DomainName != "" {
12861292
// Special quoting to allow domain names.
12871293
dhcpOption.Options["domain_name"] = fmt.Sprintf(`"%s"`, opts.DomainName)
1294+
} else {
1295+
delete(dhcpOption.Options, "domain_name")
12881296
}
12891297

12901298
if opts.MTU > 0 {
12911299
dhcpOption.Options["mtu"] = fmt.Sprintf("%d", opts.MTU)
1300+
} else {
1301+
delete(dhcpOption.Options, "mtu")
12921302
}
12931303

12941304
if opts.Netmask != "" {
12951305
dhcpOption.Options["netmask"] = opts.Netmask
1306+
} else {
1307+
delete(dhcpOption.Options, "netmask")
12961308
}
12971309

12981310
if opts.StaticRoutes != "" {
@@ -1364,6 +1376,8 @@ func (o *NB) UpdateLogicalSwitchDHCPv6Options(ctx context.Context, switchName OV
13641376
if len(opts.DNSSearchList) > 0 {
13651377
// Special quoting to allow domain names.
13661378
dhcpOption.Options["domain_search"] = fmt.Sprintf(`"%s"`, strings.Join(opts.DNSSearchList, ","))
1379+
} else {
1380+
delete(dhcpOption.Options, "domain_search")
13671381
}
13681382

13691383
if opts.RecursiveDNSServer != nil {
@@ -1377,6 +1391,8 @@ func (o *NB) UpdateLogicalSwitchDHCPv6Options(ctx context.Context, switchName OV
13771391
}
13781392

13791393
dhcpOption.Options["dns_server"] = fmt.Sprintf("{%s}", strings.Join(nsIPs, ","))
1394+
} else {
1395+
delete(dhcpOption.Options, "dns_server")
13801396
}
13811397

13821398
// Prepare the changes.

0 commit comments

Comments
 (0)