in bigtop-packages/src/charm/spark/layer-spark/lib/charms/layer/bigtop_spark.py [0:0]
def get_master_url(self, spark_master_host):
mode = hookenv.config()['spark_execution_mode']
zk_units = unitdata.kv().get('zookeeper.units', [])
master = None
if mode.startswith('local') or mode.startswith('yarn'):
master = mode
elif mode == 'standalone' and not zk_units:
master = 'spark://{}:7077'.format(spark_master_host)
elif mode == 'standalone' and zk_units:
master_ips = [p[1] for p in unitdata.kv().get('sparkpeer.units')]
nodes = []
for ip in master_ips:
nodes.append('{}:7077'.format(ip))
nodes_str = ','.join(nodes)
master = 'spark://{}'.format(nodes_str)
return master