diff --git a/bridge.py b/bridge.py index 9a56899..96796e9 100755 --- a/bridge.py +++ b/bridge.py @@ -76,6 +76,7 @@ from setproctitle import setproctitle import copy from pathlib import Path +import sys @@ -149,9 +150,15 @@ def ping(CONFIG): 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'] + resp = json.loads(req.text) + logger.debug(resp) + for c in resp['commands']: + if c == 'restart': + print('restart') + print(sys.argv) + os.execv(__file__, sys.argv) + + ## return resp['rules'] except requests.ConnectionError: logger.error('Config server unreachable') ## return config.build_config(cli_file) diff --git a/data_gateway.py b/data_gateway.py old mode 100644 new mode 100755 index c7ceb23..bb09550 --- a/data_gateway.py +++ b/data_gateway.py @@ -343,12 +343,17 @@ def ping(CONFIG): 'secret':shared_secret } json_object = json.dumps(ping_data, indent = 4) - try: req = requests.post(user_man_url, data=json_object, headers={'Content-Type': 'application/json'}) - logger.debug('Web service ping') -## resp = json.loads(req.text) -## print(resp) + resp = json.loads(req.text) + logger.debug(resp) + for c in resp['commands']: + if c == 'restart': + print('restart') + print(sys.argv) + os.execv(__file__, sys.argv) + + ## return resp['rules'] ## return resp['rules'] except requests.ConnectionError: logger.error('Config server unreachable') diff --git a/web/app.py b/web/app.py index 354760b..41987b7 100644 --- a/web/app.py +++ b/web/app.py @@ -56,7 +56,7 @@ from cryptography.fernet import Fernet from flaskext.markdown import Markdown peer_locations = {} -hbnet_version = 'V 09262022' +hbnet_version = 'V 09282022' # Query radioid.net for list of IDs def get_ids(callsign): @@ -4771,8 +4771,30 @@ Name: ''' + p.name + '''  -  Port: ''' + str( @login_required @roles_required('Admin') def edit_server_db(): + if request.args.get('server_command'): + try: + cl = Misc.query.filter_by(field_1=request.args.get('server') + '_command_list').first() + cmd_lst = ast.literal_eval(cl.field_2) + print('--') + print(cmd_lst) + except: + cmd_lst = [] + misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) + + if request.args.get('server_command') == 'restart': + cmd_lst.append('restart') + elif request.args.get('server_command') == '2': + cmd_lst.append('2') + print(cmd_lst) + content = '''

Command qued.

+

Redirecting in 3 seconds.

+''' + misc_edit_field_1(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) +## misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) + return render_template('flask_user_layout.html', markup_content = Markup(content)) + # Edit server - if request.args.get('save_mode'):# == 'new' and request.form.get('server_name'): + elif request.args.get('save_mode'):# == 'new' and request.form.get('server_name'): ## _port = int(request.form.get('server_port')) _global_ping_time = int(request.form.get('ping_time')) _global_max_missed = int(request.form.get('max_missed')) @@ -5289,27 +5311,40 @@ Name: ''' + p.name + '''  -  Port: ''' + str( ''' for s in all_s: + tool_menu = ''' + + + +''' try: if time.time() - ping_list[s.name] < 30: svr_status = '''''' + \n''' + tool_menu + '''''' elif time.time() - ping_list[s.name] <= 300: svr_status = '''''' + \n''' + tool_menu + '''''' elif time.time() - ping_list[s.name] > 300: svr_status = '''''' + \n''' + tool_menu + '''''' else: svr_status = '''''' + \n''' + tool_menu + '''''' except: svr_status = '''''' + \n''' + tool_menu + '''''' p_list = p_list + ''' ''' + svr_status + ''' @@ -7319,6 +7354,7 @@ Name: ''' + p.name + '''  -  Port: ''' + str( usr_nm = '' except: usr_lnk = '' + print(usr_link) content = content + '''



''' + usr_lnk + ''' @@ -7486,7 +7522,17 @@ Name: ''' + p.name + '''  -  Port: ''' + str( ping_list = ast.literal_eval(pl.field_2) ping_list[hblink_req['ping']] = time.time() misc_edit_field_1('ping_list', str(ping_list), '', '', 0, 0, 0, 0, True, True) - response = '' + try: + cl = Misc.query.filter_by(field_1=hblink_req['ping'] + '_command_list').first() + cmd_lst = ast.literal_eval(cl.field_2) + delete_misc_field_1(hblink_req['ping'] + '_command_list') + + except: + cmd_lst = [] + + response = jsonify( + commands=cmd_lst + ) except: pass if 'login_id' in hblink_req and 'login_confirmed' not in hblink_req: