In my tests the DHCP agent correctly handles the Subnet change and calls the reload_allocations method of the DHCP driver. In the default linux.dhcp driver, reload_allocations results in the dnsmasq config being completey regenerated, and the DNSMASQ process being sent a HUP signal.
Though the quantum python client does not support setting the gateway_ip to null, Horizon does and actually has a checkbox for unsetting the gateway_ip. Horizon returning the quantumError is how i discovered this bug in the first place.
The patch was based on the logic from the subnet_create() method, which only calls the _validate_gw_out_of_pools() method if gateway_ip is not None.
With all this said, I am of course more then happy for others with greater experience with Quantum and its components to make suggestions.
In my tests the DHCP agent correctly handles the Subnet change and calls the reload_allocations method of the DHCP driver. In the default linux.dhcp driver, reload_allocations results in the dnsmasq config being completey regenerated, and the DNSMASQ process being sent a HUP signal.
Though the quantum python client does not support setting the gateway_ip to null, Horizon does and actually has a checkbox for unsetting the gateway_ip. Horizon returning the quantumError is how i discovered this bug in the first place.
The patch was based on the logic from the subnet_create() method, which only calls the _validate_ gw_out_ of_pools( ) method if gateway_ip is not None.
With all this said, I am of course more then happy for others with greater experience with Quantum and its components to make suggestions.