in bigtop-packages/src/charm/hbase/layer-hbase/reactive/hbase.py [0:0]
def serve_client(zk, client):
'''
We may have multiple HBase peers, but we only need to send 1 set of
connection data. Leverage Juju leadership to only send the leader
info (even if it's not the actual HBase master).
Zookeeper will ensure that any HBase peer routes requests to the
appropriate master.
'''
hbase = HBase()
# Get hbase config and zk info
config = get_layer_opts()
host = hookenv.unit_private_ip()
master_port = config.port('hbase-master')
regionserver_port = config.port('hbase-region')
thrift_port = config.port('hbase-thrift')
zk_connect = hbase.get_zk_connect(zk.zookeepers())
# Send data to our connected client
client.send_connection(master_port=master_port,
regionserver_port=regionserver_port,
thrift_port=thrift_port,
host=host,
zk_connect=zk_connect)
hookenv.log('Serving HBase client with master {}:{}, regionserver '
'port {}, thrift port {}, and zk connect {}'.format(
host, master_port,
regionserver_port,
thrift_port,
zk_connect))