def check_cluster(zkpeer): ''' Checkup on the state of the cluster. Start a rolling restart if the peers have changed. ''' zk = Zookeeper() if data_changed('zkpeer.nodes', zk.read_peers()): peers = _ip_list(zk.sort_peers(zkpeer)) nonce = time.time() hookenv.log('Quorum changed. Restart queue: {}'.format(peers)) leader_set(restart_queue=json.dumps(peers), restart_nonce=json.dumps(nonce))
def check_cluster(zkpeer): ''' Checkup on the state of the cluster. Start a rolling restart if the peers have changed. ''' zk = Zookeeper() if data_changed('zkpeer.nodes', zk.read_peers()): peers = _ip_list(zk.sort_peers(zkpeer)) nonce = time.time() hookenv.log('Quorum changed. Restart queue: {}'.format(peers)) leader_set( restart_queue=json.dumps(peers), restart_nonce=json.dumps(nonce) )
def install_zookeeper(): ''' After Bigtop has done the initial setup, trigger a puppet install, via our Zooekeeper library. puppet will start the service, as a side effect. ''' hookenv.status_set('maintenance', 'installing zookeeper') zookeeper = Zookeeper() # Prime data changed data_changed('zkpeer.nodes', zookeeper.read_peers()) data_changed('zk.network_interface', hookenv.config().get('network_interface')) zookeeper.install() zookeeper.open_ports() set_state('zookeeper.installed') set_state('zookeeper.started') hookenv.status_set('active', 'ready {}'.format(zookeeper.quorum_check()))
def install_zookeeper(): ''' After Bigtop has done the initial setup, trigger a puppet install, via our Zooekeeper library. puppet will start the service, as a side effect. ''' hookenv.status_set('maintenance', 'installing zookeeper') zookeeper = Zookeeper() # Prime data changed data_changed('zkpeer.nodes', zookeeper.read_peers()) data_changed( 'zk.network_interface', hookenv.config().get('network_interface')) zookeeper.install() zookeeper.open_ports() set_state('zookeeper.installed') set_state('zookeeper.started') hookenv.status_set('active', 'ready {}'.format(zookeeper.quorum_check()))
def configure(): cfg = hookenv.config() zookeeper = Zookeeper() changed = any(( data_changed('zkpeer.nodes', zookeeper.read_peers()), data_changed('zk.autopurge_purge_interval', cfg.get('autopurge_purge_interval')), data_changed('zk.autopurge_snap_retain_count', cfg.get('autopurge_snap_retain_count')), data_changed('zk.storage.data_dir', unitdata.kv().get('zookeeper.storage.data_dir')), )) if changed or is_flag_set('zookeeper.force-reconfigure'): zookeeper.install() zookeeper.open_ports() clear_flag('zookeeper.force-reconfigure') set_flag('zookeeper.started') set_flag('zookeeper.configured') hookenv.status_set('active', 'ready {}'.format(zookeeper.quorum_check())) # set app version string for juju status output zoo_version = get_installed_version(SNAP_NAME) or 'unknown' hookenv.application_version_set(zoo_version)