Cleaning entries in tables

Clearing entries in tables - timeout 5 min.
Clearing entries that are on the tables for 5 min and look like the END transmission header has not arrived
This commit is contained in:
Waldek 2020-06-17 06:52:58 +02:00 committed by GitHub
parent 90276376a3
commit 16d277cf38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,10 +21,16 @@
# Python 3 port by Steve Miller, KC1AWV <smiller@kc1awv.net> # Python 3 port by Steve Miller, KC1AWV <smiller@kc1awv.net>
# #
############################################################################### ###############################################################################
###############################################################################
#
# Version HBmibitor by Waldek SP2ONG
#
###############################################################################
# Standard modules # Standard modules
import logging import logging
import sys import sys
import datetime
import os import os
import csv import csv
@ -160,6 +166,51 @@ def since(_time):
else: else:
return '{}s'.format(seconds) return '{}s'.format(seconds)
def cleanTE():
##################################################
# Cleaning entries in tables - Timeout (5 min)
#
timeout = datetime.datetime.now().timestamp()
for system in CTABLE['MASTERS']:
for peer in CTABLE['MASTERS'][system]['PEERS']:
for timeS in range(1,3):
if CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['TS']:
ts = CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['TIMEOUT']
td = ts - timeout if ts > timeout else timeout - ts
td = int(round(abs((td)) / 60))
if td > 4:
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['TS'] = False
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['COLOR'] = BLACK
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['BGCOLOR'] = WHITE2
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['TYPE'] = ''
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['SUB'] = ''
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['SRC'] = ''
CTABLE['MASTERS'][system]['PEERS'][peer][timeS]['DEST'] = ''
for system in CTABLE['PEERS']:
for timeS in range(1,3):
if CTABLE['PEERS'][system][timeS]['TS']:
ts = CTABLE['PEERS'][system][timeS]['TIMEOUT']
td = ts - timeout if ts > timeout else timeout - ts
td = int(round(abs((td)) / 60))
if td > 4:
CTABLE['PEERS'][system][timeS]['TS'] = False
CTABLE['PEERS'][system][timeS]['COLOR'] = BLACK
CTABLE['PEERS'][system][timeS]['BGCOLOR'] = WHITE2
CTABLE['PEERS'][system][timeS]['TYPE'] = ''
CTABLE['PEERS'][system][timeS]['SUB'] = ''
CTABLE['PEERS'][system][timeS]['SRC'] = ''
CTABLE['PEERS'][system][timeS]['DEST'] = ''
for system in CTABLE['OPENBRIDGES']:
for streamId in list(CTABLE['OPENBRIDGES'][system]['STREAMS']):
ts = CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId][3]
td = ts - timeout if ts > timeout else timeout - ts
td = int(round(abs((td)) / 60))
if td > 4:
del CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId]
def add_hb_peer(_peer_conf, _ctable_loc, _peer): def add_hb_peer(_peer_conf, _ctable_loc, _peer):
_ctable_loc[int_id(_peer)] = {} _ctable_loc[int_id(_peer)] = {}
@ -345,6 +396,7 @@ def update_hblink_table(_config, _stats_table):
_stats_table['PEERS'][_hbp]['STATS']['PINGS_SENT'] = 0 _stats_table['PEERS'][_hbp]['STATS']['PINGS_SENT'] = 0
_stats_table['PEERS'][_hbp]['STATS']['PINGS_ACKD'] = 0 _stats_table['PEERS'][_hbp]['STATS']['PINGS_ACKD'] = 0
cleanTE()
build_stats() build_stats()
###################################################################### ######################################################################
@ -442,6 +494,7 @@ def rts_update(p):
sourceSub = int(p[6]) sourceSub = int(p[6])
timeSlot = int(p[7]) timeSlot = int(p[7])
destination = int(p[8]) destination = int(p[8])
timeout = datetime.datetime.now().timestamp()
if system in CTABLE['MASTERS']: if system in CTABLE['MASTERS']:
for peer in CTABLE['MASTERS'][system]['PEERS']: for peer in CTABLE['MASTERS'][system]['PEERS']:
@ -453,6 +506,7 @@ def rts_update(p):
color = BLACK color = BLACK
if action == 'START': if action == 'START':
CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['TIMEOUT'] = timeout
CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['TS'] = True CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['TS'] = True
CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['COLOR'] = color CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['COLOR'] = color
CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['BGCOLOR'] = bgcolor CTABLE['MASTERS'][system]['PEERS'][peer][timeSlot]['BGCOLOR'] = bgcolor
@ -471,7 +525,7 @@ def rts_update(p):
if system in CTABLE['OPENBRIDGES']: if system in CTABLE['OPENBRIDGES']:
if action == 'START': if action == 'START':
CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId] = (trx, alias_call(sourceSub, subscriber_ids),'TG{}'.format(destination)) CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId] = (trx, alias_call(sourceSub, subscriber_ids),'TG{}'.format(destination),timeout)
if action == 'END': if action == 'END':
if streamId in CTABLE['OPENBRIDGES'][system]['STREAMS']: if streamId in CTABLE['OPENBRIDGES'][system]['STREAMS']:
del CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId] del CTABLE['OPENBRIDGES'][system]['STREAMS'][streamId]
@ -486,6 +540,7 @@ def rts_update(p):
color = BLACK color = BLACK
if action == 'START': if action == 'START':
CTABLE['PEERS'][system][timeSlot]['TIMEOUT'] = timeout
CTABLE['PEERS'][system][timeSlot]['TS'] = True CTABLE['PEERS'][system][timeSlot]['TS'] = True
CTABLE['PEERS'][system][timeSlot]['COLOR'] = color CTABLE['PEERS'][system][timeSlot]['COLOR'] = color
CTABLE['PEERS'][system][timeSlot]['BGCOLOR'] = bgcolor CTABLE['PEERS'][system][timeSlot]['BGCOLOR'] = bgcolor