mirror of
https://github.com/ShaYmez/HBmonitor.git
synced 2024-11-25 01:08:43 -05:00
table config update
This commit is contained in:
parent
6a94b023df
commit
3d7b372b13
@ -118,8 +118,7 @@ def alias_call(_id, _dict):
|
|||||||
return str(alias)
|
return str(alias)
|
||||||
|
|
||||||
# Build the HBlink connections table
|
# Build the HBlink connections table
|
||||||
def build_hblink_table(_config):
|
def build_hblink_table(_config, _stats_table):
|
||||||
_stats_table = {'MASTERS': {}, 'PEERS': {}, 'OPENBRIDGES': {}}
|
|
||||||
for _hbp, _hbp_data in _config.iteritems():
|
for _hbp, _hbp_data in _config.iteritems():
|
||||||
if _hbp_data['ENABLED'] == True:
|
if _hbp_data['ENABLED'] == True:
|
||||||
if _hbp_data['MODE'] == 'MASTER':
|
if _hbp_data['MODE'] == 'MASTER':
|
||||||
@ -170,6 +169,46 @@ def build_hblink_table(_config):
|
|||||||
_stats_table['OPENBRIDGES'][_hbp]['TARGET_PORT'] = _hbp_data['TARGET_PORT']
|
_stats_table['OPENBRIDGES'][_hbp]['TARGET_PORT'] = _hbp_data['TARGET_PORT']
|
||||||
return(_stats_table)
|
return(_stats_table)
|
||||||
|
|
||||||
|
def update_hblink_table(_config, _stats_table):
|
||||||
|
|
||||||
|
pprint(_config)
|
||||||
|
print
|
||||||
|
pprint(_stats_table)
|
||||||
|
for _hbp, _hbp_data in _config.iteritems():
|
||||||
|
_stats_peers = _stats_table['MASTERS'][_hbp]['PEERS']
|
||||||
|
|
||||||
|
# if this peer is the master
|
||||||
|
if _stats_table[_ipsc]['MASTER'] == False:
|
||||||
|
_peer = _config[_ipsc]['MASTER']['RADIO_ID']
|
||||||
|
_config_peer_data = _config[_ipsc]['MASTER']
|
||||||
|
|
||||||
|
_stats_peers[_peer]['RADIO_ID'] = int_id(_peer)
|
||||||
|
update_peer(_stats_peers, _peer, _config_peer_data)
|
||||||
|
|
||||||
|
# for all of the peers that are not the master... update or add
|
||||||
|
for _peer, _config_peer_data in _config[_ipsc]['PEERS'].iteritems():
|
||||||
|
if _peer != _config[_ipsc]['LOCAL']['RADIO_ID']:
|
||||||
|
_stats_peers = _stats_table[_ipsc]['PEERS']
|
||||||
|
|
||||||
|
# update the peer if we already have it
|
||||||
|
if _peer in _stats_table[_ipsc]['PEERS']:
|
||||||
|
update_peer(_stats_peers, _peer, _config_peer_data)
|
||||||
|
|
||||||
|
# addit if we don't have it
|
||||||
|
if _peer not in _stats_table[_ipsc]['PEERS']:
|
||||||
|
add_peer(_stats_peers, _peer, _config_peer_data, 'peer')
|
||||||
|
|
||||||
|
# for peers that need to be removed, never the master. This is complicated
|
||||||
|
peers_to_delete = []
|
||||||
|
|
||||||
|
# find any peers missing in the config update
|
||||||
|
for _peer, _stats_peer_data in _stats_table[_ipsc]['PEERS'].iteritems():
|
||||||
|
if _peer not in _config[_ipsc]['PEERS'] and _peer != _config[_ipsc]['MASTER']['RADIO_ID']:
|
||||||
|
peers_to_delete.append(_peer)
|
||||||
|
|
||||||
|
# delte anything identified from the right part of the stats table
|
||||||
|
delete_peers(peers_to_delete, _stats_table[_ipsc]['PEERS'])
|
||||||
|
|
||||||
#
|
#
|
||||||
# CONFBRIDGE TABLE FUNCTIONS
|
# CONFBRIDGE TABLE FUNCTIONS
|
||||||
#
|
#
|
||||||
@ -270,7 +309,10 @@ def process_message(_message):
|
|||||||
logging.debug('got CONFIG_SND opcode')
|
logging.debug('got CONFIG_SND opcode')
|
||||||
CONFIG = load_dictionary(_message)
|
CONFIG = load_dictionary(_message)
|
||||||
CONFIG_RX = strftime('%Y-%m-%d %H:%M:%S', localtime(time()))
|
CONFIG_RX = strftime('%Y-%m-%d %H:%M:%S', localtime(time()))
|
||||||
CTABLE = build_hblink_table(CONFIG)
|
if CTABLE:
|
||||||
|
update_hblink_table(CONFIG, CTABLE)
|
||||||
|
else:
|
||||||
|
build_hblink_table(CONFIG, CTABLE)
|
||||||
|
|
||||||
elif opcode == OPCODE['BRIDGE_SND']:
|
elif opcode == OPCODE['BRIDGE_SND']:
|
||||||
logging.debug('got BRIDGE_SND opcode')
|
logging.debug('got BRIDGE_SND opcode')
|
||||||
|
Loading…
Reference in New Issue
Block a user