From 3b8dff4c0301874a3162e8df255eb7efc5d496e1 Mon Sep 17 00:00:00 2001 From: KF7EEL Date: Wed, 6 Oct 2021 17:51:42 -0700 Subject: [PATCH] add UNIT table view --- bridge.py | 20 +++++++++++++++++ data_gateway.py | 20 +++++++++++++++++ web/app.py | 59 ++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 93 insertions(+), 6 deletions(-) diff --git a/bridge.py b/bridge.py index 5404ceb..07e9e55 100755 --- a/bridge.py +++ b/bridge.py @@ -110,6 +110,25 @@ def update_tg(CONFIG, mode, dmr_id, data): ## return config.build_config(cli_file) +def send_unit_table(CONFIG, _data): + user_man_url = CONFIG['WEB_SERVICE']['URL'] + shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) + sms_data = { + 'unit_table': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'secret':shared_secret, + 'data': str(_data), + + } + json_object = json.dumps(sms_data, indent = 4) + + try: + req = requests.post(user_man_url, data=json_object, headers={'Content-Type': 'application/json'}) +## resp = json.loads(req.text) +## print(resp) +## return resp['rules'] + except requests.ConnectionError: + logger.error('Config server unreachable') + def ping(CONFIG): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) @@ -436,6 +455,7 @@ def rule_timer_loop(unit_flood_time): for unit in remove_list: del UNIT_MAP[unit] + send_unit_table(CONFIG, UNIT_MAP) logger.debug('Removed unit(s) %s from UNIT_MAP', remove_list) diff --git a/data_gateway.py b/data_gateway.py index 0f1156e..afbceb6 100644 --- a/data_gateway.py +++ b/data_gateway.py @@ -215,6 +215,25 @@ def send_ss(CONFIG, callsign, message, dmr_id): except requests.ConnectionError: logger.error('Config server unreachable') +def send_unit_table(CONFIG, _data): + user_man_url = CONFIG['WEB_SERVICE']['URL'] + shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) + sms_data = { + 'unit_table': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'secret':shared_secret, + 'data': str(_data), + + } + json_object = json.dumps(sms_data, indent = 4) + + try: + req = requests.post(user_man_url, data=json_object, headers={'Content-Type': 'application/json'}) +## resp = json.loads(req.text) +## print(resp) +## return resp['rules'] + except requests.ConnectionError: + logger.error('Config server unreachable') + @@ -1324,6 +1343,7 @@ def rule_timer_loop(): logger.debug('Removed unit(s) %s from UNIT_MAP', remove_list) ping(CONFIG) + send_unit_table(CONFIG, UNIT_MAP) class OBP(OPENBRIDGE): diff --git a/web/app.py b/web/app.py index 054cb1a..5906e2a 100644 --- a/web/app.py +++ b/web/app.py @@ -2377,8 +2377,6 @@ TG #: ''' + str(tg_d.tg) + ''' content = '' disp_list = [] for i in ss_all: - print(i.dmr_id) - print(disp_list) if i.dmr_id not in disp_list: content = content + ''' @@ -2415,7 +2413,7 @@ TG #: ''' + str(tg_d.tg) + ''' ''' + str(i.time.strftime(time_format)) + ''' ''' except: - content = '

Not posts by user.

' + content = '

No posts by user.

' all_post = '' return render_template('ss.html', markup_content = Markup(content), all_post = Markup(post_content)) @@ -2681,7 +2679,7 @@ TG #: ''' + str(tg_d.tg) + ''' except: print('Social Status not in DB') pass - + def ss_add(_callsign, _message, _dmr_id): add_ss = Social( callsign = _callsign, @@ -2758,7 +2756,7 @@ TG #: ''' + str(tg_d.tg) + ''' db.session.add(auth_log_add) db.session.commit() - def misc_add(_field_1, _field_2, _field_3, _field_4, int_1, _int_2, _int_3, _int_4, _boo_1, _boo_2): + def misc_add(_field_1, _field_2, _field_3, _field_4, _int_1, _int_2, _int_3, _int_4, _boo_1, _boo_2): misc_entry_add = Misc( field_1 = _field_1, field_2 = _field_2, @@ -6024,7 +6022,7 @@ TG #: ''' + str(tg_d.tg) + ''' - +
Add a rule to server: ''' + str(i.name) + ''' -
@@ -6054,6 +6052,45 @@ TG #: ''' + str(tg_d.tg) + ''' return render_template('flask_user_layout.html', markup_content = Markup(content)) + + @login_required + @roles_required('Admin') + @app.route('/unit/') + def get_unit_table(server): + unit_table = Misc.query.filter_by(field_1='unit_table_' + server).first() + table_dict = ast.literal_eval(unit_table.field_2) + print(table_dict) + content = ''' +

UNIT Call Routing Table for ''' + server + '''

+

 

+ + + + + + + + + + + +''' + try: + for i in table_dict.items(): + content = content + ''' + + + + + +''' + + content = content + '
IDSystemExpiration
''' + str(int_id(i[0])) + '''''' + str((i[1][0])) + '''''' + str(i[1][1]) + '''
' + except: + content = '

No UNIT table.

' + return render_template('flask_user_layout.html', markup_content = Markup(content)) + + @login_required @roles_required('Admin') @app.route('/OBP_key_gen') @@ -6218,6 +6255,16 @@ TG #: ''' + str(tg_d.tg) + ''' del_ss(hblink_req['dmr_id']) ss_add(hblink_req['callsign'], str(hblink_req['message']), hblink_req['dmr_id']) response = 'rcvd' + elif 'unit_table' in hblink_req: +## del_unit_table(hblink_req['unit_table']) + try: + delete_misc_field_1('unit_table_' + hblink_req['unit_table']) + except: + print('entry error') + misc_add('unit_table_' + hblink_req['unit_table'], str(hblink_req['data']), '', '', 0, 0, 0, 0, False, False) +## unit_table_add(hblink_req['data']) + response = 'rcvd' + elif 'get_config' in hblink_req: if hblink_req['get_config']: