add UNIT download, fix PROXY
This commit is contained in:
		
							parent
							
								
									82213561b8
								
							
						
					
					
						commit
						ce6ba7c5dc
					
				
							
								
								
									
										31
									
								
								bridge.py
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								bridge.py
									
									
									
									
									
								
							@ -74,6 +74,29 @@ __maintainer__ = 'Cort Buffington, N0MJS'
 | 
				
			|||||||
__email__      = 'n0mjs@me.com'
 | 
					__email__      = 'n0mjs@me.com'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##import os, ast
 | 
					##import os, ast
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Function to download rules
 | 
				
			||||||
 | 
					def download_rules(L_CONFIG_FILE, cli_file):
 | 
				
			||||||
 | 
					    user_man_url = L_CONFIG_FILE['USER_MANAGER']['URL']
 | 
				
			||||||
 | 
					    shared_secret = str(sha256(L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest())
 | 
				
			||||||
 | 
					    rules_check = {
 | 
				
			||||||
 | 
					    'get_rules':L_CONFIG_FILE['USER_MANAGER']['THIS_SERVER_NAME'],
 | 
				
			||||||
 | 
					    'secret':shared_secret
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					##    print(rules_check)
 | 
				
			||||||
 | 
					    json_object = json.dumps(rules_check, 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, defaulting to local config')
 | 
				
			||||||
 | 
					        return config.build_config(cli_file)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Function to download config
 | 
				
			||||||
def download_config(L_CONFIG_FILE, cli_file):
 | 
					def download_config(L_CONFIG_FILE, cli_file):
 | 
				
			||||||
    user_man_url = L_CONFIG_FILE['USER_MANAGER']['URL']
 | 
					    user_man_url = L_CONFIG_FILE['USER_MANAGER']['URL']
 | 
				
			||||||
    shared_secret = str(sha256(L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest())
 | 
					    shared_secret = str(sha256(L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest())
 | 
				
			||||||
@ -1305,10 +1328,17 @@ if __name__ == '__main__':
 | 
				
			|||||||
        logger.info('(ROUTER) Routing bridges file found and bridges imported: %s', cli_args.RULES_FILE)
 | 
					        logger.info('(ROUTER) Routing bridges file found and bridges imported: %s', cli_args.RULES_FILE)
 | 
				
			||||||
    except (ImportError, FileNotFoundError):
 | 
					    except (ImportError, FileNotFoundError):
 | 
				
			||||||
        sys.exit('(ROUTER) TERMINATING: Routing bridges file not found or invalid: {}'.format(cli_args.RULES_FILE))
 | 
					        sys.exit('(ROUTER) TERMINATING: Routing bridges file not found or invalid: {}'.format(cli_args.RULES_FILE))
 | 
				
			||||||
 | 
					    # Attempt to use downloaded rules    
 | 
				
			||||||
 | 
					    if LOCAL_CONFIG['USER_MANAGER']['REMOTE_CONFIG_ENABLED']:
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        # Build the routing rules file
 | 
					        # Build the routing rules file
 | 
				
			||||||
        BRIDGES = make_bridges(rules_module.BRIDGES)
 | 
					        BRIDGES = make_bridges(rules_module.BRIDGES)
 | 
				
			||||||
 | 
					        # Get rule parameter for private calls
 | 
				
			||||||
 | 
					        UNIT = download_rules(LOCAL_CONFIG, cli_args.CONFIG_FILE)[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        # Build the routing rules file
 | 
				
			||||||
 | 
					        BRIDGES = make_bridges(rules_module.BRIDGES)
 | 
				
			||||||
        # Get rule parameter for private calls
 | 
					        # Get rule parameter for private calls
 | 
				
			||||||
        UNIT = rules_module.UNIT
 | 
					        UNIT = rules_module.UNIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1388,7 +1418,6 @@ if __name__ == '__main__':
 | 
				
			|||||||
    stream_trimmer.addErrback(loopingErrHandle)
 | 
					    stream_trimmer.addErrback(loopingErrHandle)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    logger.info('Unit calls will be bridged to: ' + str(UNIT))
 | 
					    logger.info('Unit calls will be bridged to: ' + str(UNIT))
 | 
				
			||||||
    print(CONFIG['SYSTEMS'])
 | 
					 | 
				
			||||||
    # Download burn list
 | 
					    # Download burn list
 | 
				
			||||||
    with open(CONFIG['USER_MANAGER']['BURN_FILE'], 'w') as f:
 | 
					    with open(CONFIG['USER_MANAGER']['BURN_FILE'], 'w') as f:
 | 
				
			||||||
        f.write(str(download_burnlist(CONFIG)))
 | 
					        f.write(str(download_burnlist(CONFIG)))
 | 
				
			||||||
 | 
				
			|||||||
@ -188,9 +188,8 @@ def create_app():
 | 
				
			|||||||
        description = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        description = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        slots = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        slots = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        url = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        url = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        software_id = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					 | 
				
			||||||
        package_id = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					 | 
				
			||||||
        group_hangtime = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        group_hangtime = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
 | 
					        enable_unit = db.Column(db.Boolean(), nullable=False, server_default='1')
 | 
				
			||||||
        options = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        options = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        use_acl = db.Column(db.Boolean(), nullable=False, server_default='0')
 | 
					        use_acl = db.Column(db.Boolean(), nullable=False, server_default='0')
 | 
				
			||||||
        sub_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        sub_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
@ -221,11 +220,10 @@ def create_app():
 | 
				
			|||||||
        description = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        description = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        slots = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        slots = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        url = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        url = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        software_id = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					 | 
				
			||||||
        package_id = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					 | 
				
			||||||
        group_hangtime = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        group_hangtime = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        xlxmodule = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        xlxmodule = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        options = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        options = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
 | 
					        enable_unit = db.Column(db.Boolean(), nullable=False, server_default='1')
 | 
				
			||||||
        use_acl = db.Column(db.Boolean(), nullable=False, server_default='0')
 | 
					        use_acl = db.Column(db.Boolean(), nullable=False, server_default='0')
 | 
				
			||||||
        sub_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        sub_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
        tg1_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
					        tg1_acl = db.Column(db.String(100, collation='NOCASE'), nullable=False, server_default='')
 | 
				
			||||||
@ -1613,8 +1611,8 @@ def create_app():
 | 
				
			|||||||
                        'DESCRIPTION': bytes((i.description).ljust(19)[:19], 'utf-8'),
 | 
					                        'DESCRIPTION': bytes((i.description).ljust(19)[:19], 'utf-8'),
 | 
				
			||||||
                        'SLOTS': bytes((i.slots), 'utf-8'),
 | 
					                        'SLOTS': bytes((i.slots), 'utf-8'),
 | 
				
			||||||
                        'URL': bytes((i.url).ljust(124)[:124], 'utf-8'),
 | 
					                        'URL': bytes((i.url).ljust(124)[:124], 'utf-8'),
 | 
				
			||||||
                        'SOFTWARE_ID': bytes((i.software_id).ljust(40)[:40], 'utf-8'),
 | 
					                        'SOFTWARE_ID': bytes(('HBNet DMR').ljust(40)[:40], 'utf-8'),
 | 
				
			||||||
                        'PACKAGE_ID': bytes((i.package_id).ljust(40)[:40], 'utf-8'),
 | 
					                        'PACKAGE_ID': bytes(('Dev').ljust(40)[:40], 'utf-8'),
 | 
				
			||||||
                        'GROUP_HANGTIME': i.group_hangtime,
 | 
					                        'GROUP_HANGTIME': i.group_hangtime,
 | 
				
			||||||
                        'XLXMODULE': i.xlxmodule,
 | 
					                        'XLXMODULE': i.xlxmodule,
 | 
				
			||||||
                        'OPTIONS':  b''.join([b'Type=HBlink;', bytes(i.options, 'utf-8')]),
 | 
					                        'OPTIONS':  b''.join([b'Type=HBlink;', bytes(i.options, 'utf-8')]),
 | 
				
			||||||
@ -1717,6 +1715,39 @@ def create_app():
 | 
				
			|||||||
            r_list.append(str(i.secret))
 | 
					            r_list.append(str(i.secret))
 | 
				
			||||||
        return r_list
 | 
					        return r_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def generate_rules(_name):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # generate UNIT list
 | 
				
			||||||
 | 
					        xlx_p = xlxPeer.query.filter_by(server=_name).all()
 | 
				
			||||||
 | 
					        mmdvm_p = mmdvmPeer.query.filter_by(server=_name).all()
 | 
				
			||||||
 | 
					        all_m = MasterList.query.filter_by(server=_name).all()
 | 
				
			||||||
 | 
					        all_o = OBP.query.filter_by(server=_name).all()
 | 
				
			||||||
 | 
					        all_p = ProxyList.query.filter_by(server=_name).all()
 | 
				
			||||||
 | 
					        UNIT = []
 | 
				
			||||||
 | 
					        BRIDGES = {}
 | 
				
			||||||
 | 
					        for i in all_m:
 | 
				
			||||||
 | 
					            if i.enable_unit == True:
 | 
				
			||||||
 | 
					                UNIT.append(i.name)
 | 
				
			||||||
 | 
					        for i in all_p:
 | 
				
			||||||
 | 
					            if i.enable_unit == True:
 | 
				
			||||||
 | 
					                n_systems = i.internal_stop_port - i.internal_start_port
 | 
				
			||||||
 | 
					                n_count = 0
 | 
				
			||||||
 | 
					                while n_count < n_systems:
 | 
				
			||||||
 | 
					                    UNIT.append(i.name + '-' + str(n_count))
 | 
				
			||||||
 | 
					                    n_count = n_count + 1
 | 
				
			||||||
 | 
					        for i in all_o:
 | 
				
			||||||
 | 
					            if i.enable_unit == True:
 | 
				
			||||||
 | 
					                UNIT.append(i.name)
 | 
				
			||||||
 | 
					        for i in xlx_p:
 | 
				
			||||||
 | 
					            if i.enable_unit == True:
 | 
				
			||||||
 | 
					                UNIT.append(i.name)
 | 
				
			||||||
 | 
					        for i in mmdvm_p:
 | 
				
			||||||
 | 
					            if i.enable_unit == True:
 | 
				
			||||||
 | 
					                UNIT.append(i.name)
 | 
				
			||||||
 | 
					        print(UNIT)
 | 
				
			||||||
 | 
					        return [UNIT, BRIDGES]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def server_get(_name):
 | 
					    def server_get(_name):
 | 
				
			||||||
##        print(_name)
 | 
					##        print(_name)
 | 
				
			||||||
        #s = ServerList.query.filter_by(name=_name).first()
 | 
					        #s = ServerList.query.filter_by(name=_name).first()
 | 
				
			||||||
@ -2089,7 +2120,7 @@ def create_app():
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        db.session.add(add_server)
 | 
					        db.session.add(add_server)
 | 
				
			||||||
        db.session.commit()
 | 
					        db.session.commit()
 | 
				
			||||||
    def peer_add(_mode, _name, _enabled, _loose, _ip, _port, _master_ip, _master_port, _passphrase, _callsign, _radio_id, _rx, _tx, _tx_power, _cc, _lat, _lon, _height, _loc, _desc, _slots, _url, _grp_hang, _xlx_mod, _opt, _use_acl, _sub_acl, _1_acl, _2_acl, _svr):
 | 
					    def peer_add(_mode, _name, _enabled, _loose, _ip, _port, _master_ip, _master_port, _passphrase, _callsign, _radio_id, _rx, _tx, _tx_power, _cc, _lat, _lon, _height, _loc, _desc, _slots, _url, _grp_hang, _xlx_mod, _opt, _use_acl, _sub_acl, _1_acl, _2_acl, _svr, _enable_unit):
 | 
				
			||||||
        if _mode == 'xlx':
 | 
					        if _mode == 'xlx':
 | 
				
			||||||
            xlx_peer_add = xlxPeer(
 | 
					            xlx_peer_add = xlxPeer(
 | 
				
			||||||
                    name = _name,
 | 
					                    name = _name,
 | 
				
			||||||
@ -2114,8 +2145,7 @@ def create_app():
 | 
				
			|||||||
                    slots = _slots,
 | 
					                    slots = _slots,
 | 
				
			||||||
                    xlxmodule = _xlx_mod,
 | 
					                    xlxmodule = _xlx_mod,
 | 
				
			||||||
                    url = _url,
 | 
					                    url = _url,
 | 
				
			||||||
                    software_id = 'HBNet',
 | 
					                    enable_unit = _enable_unit,
 | 
				
			||||||
                    package_id = 'v1',
 | 
					 | 
				
			||||||
                    group_hangtime = _grp_hang,
 | 
					                    group_hangtime = _grp_hang,
 | 
				
			||||||
                    use_acl = _use_acl,
 | 
					                    use_acl = _use_acl,
 | 
				
			||||||
                    sub_acl = _sub_acl,
 | 
					                    sub_acl = _sub_acl,
 | 
				
			||||||
@ -2148,8 +2178,7 @@ def create_app():
 | 
				
			|||||||
                    description = _desc,
 | 
					                    description = _desc,
 | 
				
			||||||
                    slots = _slots,
 | 
					                    slots = _slots,
 | 
				
			||||||
                    url = _url,
 | 
					                    url = _url,
 | 
				
			||||||
                    software_id = 'HBNet',
 | 
					                    enable_unit = _enable_unit,
 | 
				
			||||||
                    package_id = 'v1',
 | 
					 | 
				
			||||||
                    group_hangtime = _grp_hang,
 | 
					                    group_hangtime = _grp_hang,
 | 
				
			||||||
                    use_acl = _use_acl,
 | 
					                    use_acl = _use_acl,
 | 
				
			||||||
                    sub_acl = _sub_acl,
 | 
					                    sub_acl = _sub_acl,
 | 
				
			||||||
@ -2159,7 +2188,7 @@ def create_app():
 | 
				
			|||||||
                        )
 | 
					                        )
 | 
				
			||||||
            db.session.add(mmdvm_peer_add)
 | 
					            db.session.add(mmdvm_peer_add)
 | 
				
			||||||
            db.session.commit()
 | 
					            db.session.commit()
 | 
				
			||||||
    def peer_edit(_mode, _server, _name, _enabled, _loose, _ip, _port, _master_ip, _master_port, _passphrase, _callsign, _radio_id, _rx, _tx, _tx_power, _cc, _lat, _lon, _height, _loc, _desc, _slots, _url, _grp_hang, _xlx_mod, _opt, _use_acl, _sub_acl, _1_acl, _2_acl):
 | 
					    def peer_edit(_mode, _server, _name, _enabled, _loose, _ip, _port, _master_ip, _master_port, _passphrase, _callsign, _radio_id, _rx, _tx, _tx_power, _cc, _lat, _lon, _height, _loc, _desc, _slots, _url, _grp_hang, _xlx_mod, _opt, _use_acl, _sub_acl, _1_acl, _2_acl, _enable_unit):
 | 
				
			||||||
##        print(_mode)
 | 
					##        print(_mode)
 | 
				
			||||||
        if _mode == 'mmdvm':
 | 
					        if _mode == 'mmdvm':
 | 
				
			||||||
##            print(_server)
 | 
					##            print(_server)
 | 
				
			||||||
@ -2187,8 +2216,7 @@ def create_app():
 | 
				
			|||||||
            p.description = _desc
 | 
					            p.description = _desc
 | 
				
			||||||
            p.slots = _slots
 | 
					            p.slots = _slots
 | 
				
			||||||
            p.url = _url
 | 
					            p.url = _url
 | 
				
			||||||
            p.software_id = 'HBNet'
 | 
					            p.enable_unit = _enable_unit
 | 
				
			||||||
            p.package_id = 'v1'
 | 
					 | 
				
			||||||
            p.group_hangtime = _grp_hang
 | 
					            p.group_hangtime = _grp_hang
 | 
				
			||||||
            p.options = _opt
 | 
					            p.options = _opt
 | 
				
			||||||
            p.use_acl = _use_acl
 | 
					            p.use_acl = _use_acl
 | 
				
			||||||
@ -2196,11 +2224,17 @@ def create_app():
 | 
				
			|||||||
            p.tg1_acl = _1_acl
 | 
					            p.tg1_acl = _1_acl
 | 
				
			||||||
            p.tg2_acl = _2_acl
 | 
					            p.tg2_acl = _2_acl
 | 
				
			||||||
        if _mode == 'xlx':
 | 
					        if _mode == 'xlx':
 | 
				
			||||||
##            print(_server)
 | 
					##            print(type(_server))
 | 
				
			||||||
##            print(_name)
 | 
					##            print(type(_name))
 | 
				
			||||||
##            print(_name)
 | 
					##            print(type(_enabled))
 | 
				
			||||||
 | 
					            print((_enable_unit))
 | 
				
			||||||
 | 
					##            print(type(_use_acl))
 | 
				
			||||||
 | 
					####            print(_port)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##            s = mmdvmPeer.query.filter_by(server=_server).filter_by(name=_name).first()
 | 
					##            s = mmdvmPeer.query.filter_by(server=_server).filter_by(name=_name).first()
 | 
				
			||||||
            p = xlxPeer.query.filter_by(server=_server).filter_by(name=_name).first()
 | 
					            p = xlxPeer.query.filter_by(server=_server).filter_by(name=_name).first()
 | 
				
			||||||
 | 
					            print(type(p.enable_unit))
 | 
				
			||||||
            p.enabled = _enabled
 | 
					            p.enabled = _enabled
 | 
				
			||||||
            p.loose = _loose
 | 
					            p.loose = _loose
 | 
				
			||||||
            p.ip = _ip
 | 
					            p.ip = _ip
 | 
				
			||||||
@ -2222,8 +2256,7 @@ def create_app():
 | 
				
			|||||||
            p.slots = _slots
 | 
					            p.slots = _slots
 | 
				
			||||||
            p.url = _url
 | 
					            p.url = _url
 | 
				
			||||||
            p.options = _opt
 | 
					            p.options = _opt
 | 
				
			||||||
            p.software_id = 'HBNet'
 | 
					            p.enable_unit = _enable_unit
 | 
				
			||||||
            p.package_id = 'v1'
 | 
					 | 
				
			||||||
            p.xlxmodule = _xlx_mod
 | 
					            p.xlxmodule = _xlx_mod
 | 
				
			||||||
            p.group_hangtime = _grp_hang
 | 
					            p.group_hangtime = _grp_hang
 | 
				
			||||||
            p.use_acl = _use_acl
 | 
					            p.use_acl = _use_acl
 | 
				
			||||||
@ -2718,18 +2751,23 @@ def create_app():
 | 
				
			|||||||
##                peer_loose = True
 | 
					##                peer_loose = True
 | 
				
			||||||
            if request.form.get('use_acl') == 'true':
 | 
					            if request.form.get('use_acl') == 'true':
 | 
				
			||||||
                use_acl = True
 | 
					                use_acl = True
 | 
				
			||||||
            else:
 | 
					            if request.form.get('enable_unit') == 'True':
 | 
				
			||||||
 | 
					                unit_enabled = True
 | 
				
			||||||
 | 
					##            else:
 | 
				
			||||||
##                peer_loose = False
 | 
					##                peer_loose = False
 | 
				
			||||||
            peer_enabled = False
 | 
					            peer_enabled = False
 | 
				
			||||||
            use_acl = False
 | 
					            use_acl = False
 | 
				
			||||||
 | 
					            unit_enabled = False
 | 
				
			||||||
            peer_loose = True
 | 
					            peer_loose = True
 | 
				
			||||||
 | 
					##            print(request.form.get('enable_unit'))
 | 
				
			||||||
 | 
					##            print(enable_unit)
 | 
				
			||||||
            if request.args.get('save_mode') == 'mmdvm_peer':
 | 
					            if request.args.get('save_mode') == 'mmdvm_peer':
 | 
				
			||||||
                peer_add('mmdvm', request.form.get('name_text'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), 'MMDVM', request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), request.form.get('server'))
 | 
					                peer_add('mmdvm', request.form.get('name_text'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), 'MMDVM', request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), request.form.get('server'), unit_enabled)
 | 
				
			||||||
                content = '''<h3 style="text-align: center;">MMDVM PEER saved.</h3>
 | 
					                content = '''<h3 style="text-align: center;">MMDVM PEER saved.</h3>
 | 
				
			||||||
<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
					<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
				
			||||||
<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
					<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
				
			||||||
            if request.args.get('save_mode') == 'xlx_peer':
 | 
					            if request.args.get('save_mode') == 'xlx_peer':
 | 
				
			||||||
                peer_add('xlx', request.form.get('name_text'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), request.form.get('xlxmodule'), request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), request.form.get('server'))
 | 
					                peer_add('xlx', request.form.get('name_text'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), request.form.get('xlxmodule'), request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), request.form.get('server'), unit_enabled)
 | 
				
			||||||
                content = '''<h3 style="text-align: center;">XLX PEER saved.</h3>
 | 
					                content = '''<h3 style="text-align: center;">XLX PEER saved.</h3>
 | 
				
			||||||
<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
					<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
				
			||||||
<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
					<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
				
			||||||
@ -2874,9 +2912,16 @@ def create_app():
 | 
				
			|||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
''' + xlx_module + '''
 | 
					''' + xlx_module + '''
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
 | 
					<td><strong> Enable Unit Calls:</strong></td>
 | 
				
			||||||
 | 
					<td> <select name="enable_unit">
 | 
				
			||||||
 | 
					<option value="True">True</option>
 | 
				
			||||||
 | 
					<option value="False">False</option>
 | 
				
			||||||
 | 
					</select></td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
<td style="width: 175.567px;"><strong> Use ACLs:</strong></td>
 | 
					<td style="width: 175.567px;"><strong> Use ACLs:</strong></td>
 | 
				
			||||||
<td style="width: 399.433px;"> <select name="use_acl">
 | 
					<td style="width: 399.433px;"> <select name="use_acl">
 | 
				
			||||||
<option selected="selected" value="true">True</option>
 | 
					<option selected="selected" value="True">True</option>
 | 
				
			||||||
<option value="False">False</option>
 | 
					<option value="False">False</option>
 | 
				
			||||||
</select></td>
 | 
					</select></td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
@ -2908,21 +2953,27 @@ def create_app():
 | 
				
			|||||||
            peer_enabled = False
 | 
					            peer_enabled = False
 | 
				
			||||||
            use_acl = False
 | 
					            use_acl = False
 | 
				
			||||||
            peer_loose = True
 | 
					            peer_loose = True
 | 
				
			||||||
 | 
					            unit_enabled = False
 | 
				
			||||||
            if request.form.get('enabled') == 'true':
 | 
					            if request.form.get('enabled') == 'true':
 | 
				
			||||||
                peer_enabled = True
 | 
					                peer_enabled = True
 | 
				
			||||||
##            if request.form.get('loose') == 'true':
 | 
					##            if request.form.get('loose') == 'true':
 | 
				
			||||||
##                peer_loose = True
 | 
					##                peer_loose = True
 | 
				
			||||||
            if request.form.get('use_acl') == 'True':
 | 
					            if request.form.get('use_acl') == 'True':
 | 
				
			||||||
                use_acl = True
 | 
					                use_acl = True
 | 
				
			||||||
 | 
					            if request.form.get('enable_unit') == 'True':
 | 
				
			||||||
 | 
					                unit_enabled = True
 | 
				
			||||||
##            else:
 | 
					##            else:
 | 
				
			||||||
##                peer_loose = False
 | 
					##                peer_loose = False
 | 
				
			||||||
 | 
					##            print((unit_enabled))
 | 
				
			||||||
 | 
					##            print(type(peer_enabled))
 | 
				
			||||||
 | 
					##            print(type(use_acl))
 | 
				
			||||||
            if request.args.get('edit_mmdvm') == 'save':
 | 
					            if request.args.get('edit_mmdvm') == 'save':
 | 
				
			||||||
                peer_edit('mmdvm', request.args.get('server'), request.args.get('name'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), 'MMDVM', request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'))
 | 
					                peer_edit('mmdvm', request.args.get('server'), request.args.get('name'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), 'MMDVM', request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), unit_enabled)
 | 
				
			||||||
                content = '''<h3 style="text-align: center;">MMDVM PEER changed.</h3>
 | 
					                content = '''<h3 style="text-align: center;">MMDVM PEER changed.</h3>
 | 
				
			||||||
<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
					<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
				
			||||||
<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
					<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
				
			||||||
            if request.args.get('edit_xlx') == 'save':
 | 
					            if request.args.get('edit_xlx') == 'save':
 | 
				
			||||||
                peer_edit('xlx', request.args.get('server'), request.args.get('name'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), request.form.get('xlxmodule'),  request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'))
 | 
					                peer_edit('xlx', request.args.get('server'), request.args.get('name'), peer_enabled, peer_loose, request.form.get('ip'), request.form.get('port'), request.form.get('master_ip'), request.form.get('master_port'), request.form.get('passphrase'), request.form.get('callsign'), request.form.get('radio_id'), request.form.get('rx'), request.form.get('tx'), request.form.get('tx_power'), request.form.get('cc'), request.form.get('lat'), request.form.get('lon'), request.form.get('height'), request.form.get('location'), request.form.get('description'), request.form.get('slots'), request.form.get('url'), request.form.get('group_hangtime'), request.form.get('xlxmodule'),  request.form.get('options'), use_acl, request.form.get('sub_acl'), request.form.get('tgid_ts1_acl'), request.form.get('tgid_ts2_acl'), unit_enabled)
 | 
				
			||||||
                content = '''<h3 style="text-align: center;">XLX PEER changed.</h3>
 | 
					                content = '''<h3 style="text-align: center;">XLX PEER changed.</h3>
 | 
				
			||||||
<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
					<p style="text-align: center;">Redirecting in 3 seconds.</p>
 | 
				
			||||||
<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
					<meta http-equiv="refresh" content="3; URL=manage_peers" />'''
 | 
				
			||||||
@ -3064,6 +3115,14 @@ def create_app():
 | 
				
			|||||||
<td style="width: 399.433px;"> <input name="options" type="text" value="''' + str(p.options) + '''" /></td>
 | 
					<td style="width: 399.433px;"> <input name="options" type="text" value="''' + str(p.options) + '''" /></td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
 | 
					<td><strong> Enable Unit Calls:</strong></td>
 | 
				
			||||||
 | 
					<td> <select name="enable_unit">
 | 
				
			||||||
 | 
					<option selected="selected" value="''' + str(p.enable_unit) + '''">Current: ''' + str(p.enable_unit) + '''</option>
 | 
				
			||||||
 | 
					<option value="True">True</option>
 | 
				
			||||||
 | 
					<option value="False">False</option>
 | 
				
			||||||
 | 
					</select></td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
<td style="width: 175.567px;"><strong> Use ACLs:</strong></td>
 | 
					<td style="width: 175.567px;"><strong> Use ACLs:</strong></td>
 | 
				
			||||||
<td style="width: 399.433px;"> <select name="use_acl">
 | 
					<td style="width: 399.433px;"> <select name="use_acl">
 | 
				
			||||||
<option selected="selected" value="''' + str(p.use_acl) + '''">Current: ''' + str(p.use_acl) + '''</option>
 | 
					<option selected="selected" value="''' + str(p.use_acl) + '''">Current: ''' + str(p.use_acl) + '''</option>
 | 
				
			||||||
@ -4109,22 +4168,33 @@ def create_app():
 | 
				
			|||||||
                response = jsonify(
 | 
					                response = jsonify(
 | 
				
			||||||
                                burn_list=get_burnlist()
 | 
					                                burn_list=get_burnlist()
 | 
				
			||||||
                                    )
 | 
					                                    )
 | 
				
			||||||
            elif hblink_req['get_config']: # == 'burn_list':
 | 
					 | 
				
			||||||
##                test_parsed = ast.literal_eval(os.popen('cat ./test_parsed.txt').read())
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
##                print((test_parsed))
 | 
					            elif 'get_config' in hblink_req:
 | 
				
			||||||
##                try:
 | 
					                if hblink_req['get_config']: 
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					    ##                try:
 | 
				
			||||||
                    response = jsonify(
 | 
					                    response = jsonify(
 | 
				
			||||||
                            config=server_get(hblink_req['get_config']),
 | 
					                            config=server_get(hblink_req['get_config']),
 | 
				
			||||||
                            peers=get_peer_configs(hblink_req['get_config']),
 | 
					                            peers=get_peer_configs(hblink_req['get_config']),
 | 
				
			||||||
                            masters=masters_get(hblink_req['get_config']),
 | 
					                            masters=masters_get(hblink_req['get_config']),
 | 
				
			||||||
##                        OBP=get_OBP(hblink_req['get_config'])
 | 
					    ##                        OBP=get_OBP(hblink_req['get_config'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            )
 | 
					                            )
 | 
				
			||||||
##                except:
 | 
					    ##                except:
 | 
				
			||||||
##                    message = jsonify(message='Config error')
 | 
					    ##                    message = jsonify(message='Config error')
 | 
				
			||||||
##                    response = make_response(message, 401)
 | 
					    ##                    response = make_response(message, 401)
 | 
				
			||||||
 | 
					            elif 'get_rules' in hblink_req:
 | 
				
			||||||
 | 
					                if hblink_req['get_rules']: # == 'burn_list':
 | 
				
			||||||
                    
 | 
					                    
 | 
				
			||||||
 | 
					    ##                try:
 | 
				
			||||||
 | 
					                    response = jsonify(
 | 
				
			||||||
 | 
					                            rules=generate_rules(hblink_req['get_rules']),
 | 
				
			||||||
 | 
					    ##                        OBP=get_OBP(hblink_req['get_config'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            )
 | 
				
			||||||
 | 
					    ##                except:
 | 
				
			||||||
 | 
					    ##                    message = jsonify(message='Config error')
 | 
				
			||||||
 | 
					    ##                    response = make_response(message, 401)
 | 
				
			||||||
     
 | 
					     
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            message = jsonify(message='Authentication error')
 | 
					            message = jsonify(message='Authentication error')
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user