def restart_zookeeper_if_config_changed(): """Restart Zookeeper if zoo.cfg has changed. As peers come and go, zoo.cfg will be updated. When that file changes, restart the Zookeeper service and set an appropriate status message. """ # Possibly update bind address network_interface = hookenv.config().get('network_interface') if data_changed("zookeeper.bind_address", network_interface): zk = Zookeeper() zk.update_bind_address() zoo_cfg = DistConfig().path('zookeeper_conf') / 'zoo.cfg' if any_file_changed([zoo_cfg]): hookenv.status_set('maintenance', 'Server config changed: restarting Zookeeper') zk = Zookeeper() zk.stop() zk.start() zk_count = int(zk.get_zk_count()) extra_status = "" if zk_count < 3: extra_status = ": less than 3 is suboptimal" elif (zk_count % 2 == 0): extra_status = ": even number is suboptimal" hookenv.status_set('active', 'Ready (%d zk units%s)' % (zk_count, extra_status)) else: # Make sure zookeeper is running in any case zk = Zookeeper() zk.start() zk.open_ports()
def restart_zookeeper_if_config_changed(): """Restart Zookeeper if zoo.cfg has changed. As peers come and go, zoo.cfg will be updated. When that file changes, restart the Zookeeper service and set an appropriate status message. """ # Possibly update bind address network_interface = hookenv.config().get('network_interface') if data_changed("zookeeper.bind_address", network_interface): zk = Zookeeper() zk.update_bind_address() zoo_cfg = DistConfig().path('zookeeper_conf') / 'zoo.cfg' if any_file_changed([zoo_cfg]): hookenv.status_set('maintenance', 'Server config changed: restarting Zookeeper') zk = Zookeeper() zk.stop() zk.start() zk_count = int(zk.get_zk_count()) extra_status = "" if zk_count < 3: extra_status = ": less than 3 is suboptimal" elif (zk_count % 2 == 0): extra_status = ": even number is suboptimal" hookenv.status_set('active', 'Ready (%d zk units%s)' % (zk_count, extra_status))
def restart_zookeeper(): hookenv.status_set('maintenance', 'Server config changed: restarting Zookeeper') zk = Zookeeper() zk.stop() zk.start() hookenv.status_set('active', 'Ready')
def start_zookeeper(): zk = Zookeeper() zk.start() zk.open_ports() set_state('zookeeper.started') hookenv.status_set('active', 'Ready')