def configure_kafka(zk): hookenv.status_set('maintenance', 'Setting up Kafka') kafka = Kafka() zks = zk.zookeepers() network_interface = hookenv.config().get('network_interface') kafka.configure_kafka(zks, network_interface) kafka.start() set_state('kafka.started') hookenv.status_set('active', 'Ready')
def install_kafka(*args): kafka = Kafka() if kafka.verify_resources(): hookenv.status_set('maintenance', 'Installing Kafka') kafka.install() kafka.open_ports() set_state('kafka.installed')
def update_config(zk): """Configure ready zookeepers and restart kafka if needed. Also restart if network_interface has changed. As zks come and go, server.properties will be updated. When that file changes, restart Kafka and set appropriate status messages. """ hookenv.log('Checking Zookeeper configuration') kafka = Kafka() zks = zk.zookeepers() network_interface = hookenv.config().get('network_interface') kafka.configure_kafka(zks, network_interface) server_cfg = DistConfig().path('kafka_conf') / 'server.properties' if any_file_changed([server_cfg]): hookenv.status_set('maintenance', 'Server config changed: restarting Kafka') hookenv.log('Server config changed: restarting Kafka') kafka.restart() hookenv.status_set('active', 'Ready')
def stop_kafka_waiting_for_zookeeper_ready(): hookenv.status_set('maintenance', 'Zookeeper not ready, stopping Kafka') kafka = Kafka() kafka.stop() remove_state('kafka.started') hookenv.status_set('waiting', 'Waiting for Zookeeper to become ready')