From fd27d3f544da89d1ce2078561487363b01c01546 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Thu, 25 Oct 2018 21:54:09 -0400 Subject: [PATCH] Add and remove dnsaggregator nets on primary change --- node-daemon/pvcd/Daemon.py | 9 +++++++-- node-daemon/pvcd/NodeInstance.py | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/node-daemon/pvcd/Daemon.py b/node-daemon/pvcd/Daemon.py index 1d9dd361..39263df7 100644 --- a/node-daemon/pvcd/Daemon.py +++ b/node-daemon/pvcd/Daemon.py @@ -326,10 +326,13 @@ def cleanup(): # Force into secondary network state if needed if this_node.name == this_node.primary_node: - zkhandler.writedata(zk_conn, { '/primary_node': 'none' }) + zkhandler.writedata(zk_conn, { + '/nodes/{}/routerstate'.format(myhostname): 'secondary', + '/primary_node': 'none' + }) # Wait for things to flush - time.sleep(2) + time.sleep(3) # Set stop state in Zookeeper zkhandler.writedata(zk_conn, { '/nodes/{}/daemonstate'.format(myhostname): 'stop' }) @@ -344,6 +347,8 @@ def cleanup(): except: pass + logger.out('Exiting pvc daemon', state='s') + # Handle exit gracefully atexit.register(cleanup) diff --git a/node-daemon/pvcd/NodeInstance.py b/node-daemon/pvcd/NodeInstance.py index 508ec16f..3418e678 100644 --- a/node-daemon/pvcd/NodeInstance.py +++ b/node-daemon/pvcd/NodeInstance.py @@ -264,6 +264,7 @@ class NodeInstance(object): for network in self.d_network: self.d_network[network].stopDHCPServer() self.d_network[network].removeGatewayAddress() + self.dns_aggregator.remove_client_network(network) self.dns_aggregator.stop_aggregator() self.removeFloatingAddresses() @@ -275,6 +276,7 @@ class NodeInstance(object): time.sleep(0.5) # Start up the gateways and DHCP servers for network in self.d_network: + self.dns_aggregator.add_client_network(network) self.d_network[network].createGatewayAddress() self.d_network[network].startDHCPServer() time.sleep(0.5)