Source code for jnpr.junos.facts.srx_cluster
[docs]def facts_srx_cluster(junos, facts):
# we should check the 'cluster status' on redundancy group 0 to see who is
# master. we use a try/except block for cases when SRX is not clustered
try:
cluster_st = junos.rpc.get_chassis_cluster_status(redundancy_group="0")
if 'error' == cluster_st.tag:
facts['srx_cluster'] = False
return
primary = cluster_st.xpath(
'.//redundancy-group-status[.="primary"]')[0]
node = primary.xpath(
'preceding-sibling::device-name[1]')[0].text.replace('node', 'RE')
if not facts.get('master'):
facts['master'] = node
elif node not in facts['master']:
facts['master'].append(node)
facts['srx_cluster'] = True
except:
# this device doesn't support SRX chassis clustering; i.e.
# since we arbitrarily execute the RPC on all devices, if we
# hit this exception we just ignore, A-OK, yo!
pass