diff --git a/router-daemon/pvcrd/RouterInstance.py b/router-daemon/pvcrd/RouterInstance.py index 83b00734..ceb265fd 100644 --- a/router-daemon/pvcrd/RouterInstance.py +++ b/router-daemon/pvcrd/RouterInstance.py @@ -207,8 +207,8 @@ class RouterInstance(): except ValueError: pass - # toggle state management of this router - if s_network != {} and not self.active: # If there's no network list, we're too early in startup + # toggle state management of this router + if s_network != {} and not self.active: # If there's no network list, we're too early in startup if self.name == self.this_router: if self.network_state == 'secondary': self.become_secondary() diff --git a/router-daemon/pvcrd/VXNetworkInstance.py b/router-daemon/pvcrd/VXNetworkInstance.py index a2e68fd4..0073a97d 100644 --- a/router-daemon/pvcrd/VXNetworkInstance.py +++ b/router-daemon/pvcrd/VXNetworkInstance.py @@ -71,14 +71,17 @@ class VXNetworkInstance(): @zk_conn.DataWatch('/networks/{}/ip_gateway'.format(self.vni)) def watch_network_gateway(data, stat, event=''): if data != None and self.ip_gateway != data.decode('ascii'): - self.removeAddress() - self.ip_gateway = data.decode('ascii') - self.addAddress() + if self.this_router.isprimary(): + self.removeGatewayAddress() + self.ip_gateway = data.decode('ascii') + self.createGatewayAddress() @zk_conn.DataWatch('/networks/{}/dhcp_flag'.format(self.vni)) def watch_network_dhcp_status(data, stat, event=''): if data != None and self.dhcp_flag != data.decode('ascii'): self.dhcp_flag = ( data.decode('ascii') == 'True' ) + if self.dhcp_flag and self.this_router.isprimary(): + createDHCPServer() def getvni(self): return self.vni