Skip to content

Commit d5f3717

Browse files
committed
incusd/network/ovn: Correctly remove individual DHCP options from OVN when they are unset
Signed-off-by: Gwendolyn <[email protected]>
1 parent 58ad451 commit d5f3717

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
@@ -1255,14 +1255,18 @@ func (o *NB) UpdateLogicalSwitchDHCPv4Options(ctx context.Context, switchName OV
12551255

12561256
if opts.Router != nil {
12571257
dhcpOption.Options["router"] = opts.Router.String()
1258+
} else {
1259+
delete(dhcpOption.Options, "router")
12581260
}
12591261

12601262
if len(opts.DNSSearchList) > 0 {
12611263
// Special quoting to allow domain names.
12621264
dhcpOption.Options["domain_search_list"] = fmt.Sprintf(`"%s"`, strings.Join(opts.DNSSearchList, ","))
1265+
} else {
1266+
delete(dhcpOption.Options, "domain_search_list")
12631267
}
12641268

1265-
if opts.RecursiveDNSServer != nil {
1269+
if len(opts.RecursiveDNSServer) > 0 {
12661270
nsIPs := make([]string, 0, len(opts.RecursiveDNSServer))
12671271
for _, nsIP := range opts.RecursiveDNSServer {
12681272
if nsIP.To4() == nil {
@@ -1273,19 +1277,27 @@ func (o *NB) UpdateLogicalSwitchDHCPv4Options(ctx context.Context, switchName OV
12731277
}
12741278

12751279
dhcpOption.Options["dns_server"] = fmt.Sprintf("{%s}", strings.Join(nsIPs, ","))
1280+
} else {
1281+
delete(dhcpOption.Options, "dns_server")
12761282
}
12771283

12781284
if opts.DomainName != "" {
12791285
// Special quoting to allow domain names.
12801286
dhcpOption.Options["domain_name"] = fmt.Sprintf(`"%s"`, opts.DomainName)
1287+
} else {
1288+
delete(dhcpOption.Options, "domain_name")
12811289
}
12821290

12831291
if opts.MTU > 0 {
12841292
dhcpOption.Options["mtu"] = fmt.Sprintf("%d", opts.MTU)
1293+
} else {
1294+
delete(dhcpOption.Options, "mtu")
12851295
}
12861296

12871297
if opts.Netmask != "" {
12881298
dhcpOption.Options["netmask"] = opts.Netmask
1299+
} else {
1300+
delete(dhcpOption.Options, "netmask")
12891301
}
12901302

12911303
if opts.StaticRoutes != "" {
@@ -1357,6 +1369,8 @@ func (o *NB) UpdateLogicalSwitchDHCPv6Options(ctx context.Context, switchName OV
13571369
if len(opts.DNSSearchList) > 0 {
13581370
// Special quoting to allow domain names.
13591371
dhcpOption.Options["domain_search"] = fmt.Sprintf(`"%s"`, strings.Join(opts.DNSSearchList, ","))
1372+
} else {
1373+
delete(dhcpOption.Options, "domain_search")
13601374
}
13611375

13621376
if opts.RecursiveDNSServer != nil {
@@ -1370,6 +1384,8 @@ func (o *NB) UpdateLogicalSwitchDHCPv6Options(ctx context.Context, switchName OV
13701384
}
13711385

13721386
dhcpOption.Options["dns_server"] = fmt.Sprintf("{%s}", strings.Join(nsIPs, ","))
1387+
} else {
1388+
delete(dhcpOption.Options, "dns_server")
13731389
}
13741390

13751391
// Prepare the changes.

0 commit comments

Comments
 (0)