def update_regionservers()

in bigtop-packages/src/charm/hbase/layer-hbase/lib/charms/layer/bigtop_hbase.py [0:0]


    def update_regionservers(self, addrs, remove=False):
        '''
        Each HBase unit in the cluster runs a RegionServer process. Ensure
        all unit IP addresses are listed in the regionservers file.

        @param: addrs List of IP addresses
        @param: remove Bool to add (False) or remove (True) unit IPs
        '''
        unit_kv = unitdata.kv()
        kv_ips = unit_kv.get('regionservers', default=[])

        # add/remove IPs from our list
        if remove:
            kv_ips = [ip for ip in kv_ips if ip not in addrs]
        else:
            kv_ips.extend(addrs)

        # write regionservers file using a sorted, unique set of addrs
        new_kv = sorted(set(kv_ips))
        rs_file = Path('/etc/hbase/conf/regionservers')
        rs_file.write_lines(
            [
                '# DO NOT EDIT',
                '# This file is automatically managed by Juju',
            ] + [ip for ip in new_kv],
            append=False
        )

        # save the new kv IPs
        unit_kv.set('regionservers', new_kv)
        unit_kv.flush(True)