Add a dedicated primary key to keep master selection consistent

This commit is contained in:
2018-09-29 01:45:23 -04:00
parent fa1e3591cb
commit a4bece898e
2 changed files with 27 additions and 7 deletions

View File

@ -107,8 +107,12 @@ class RouterInstance():
self.s_network[network].removeAddress()
def set_secondary(self):
zkhandler.writedata(self.zk_conn, { '/routers/{}/networkstate'.format(self.name): 'secondary' })
result = zkhandler.writedata(self.zk_conn, {
'/routers/{}/networkstate'.format(self.name): 'secondary'
})
if not result:
time.sleep(1)
def become_primary(self):
ansiiprint.echo('Setting router {} to primary state.'.format(self.name), '', 'i')
ansiiprint.echo('Network list: {}'.format(', '.join(self.network_list)), '', 'c')
@ -120,7 +124,12 @@ class RouterInstance():
zkhandler.writedata(self.zk_conn, { '/routers/{}/networkstate'.format(self.t_router[router].getname()): 'secondary' })
def set_primary(self):
zkhandler.writedata(self.zk_conn, { '/routers/{}/networkstate'.format(self.name): 'primary' })
result = zkhandler.writedata(self.zk_conn, {
'/routers/primary': self.name,
'/routers/{}/networkstate'.format(self.name): 'primary',
})
if not result:
time.sleep(1)
def update_zookeeper(self):