26 lines
		
	
	
	
		
			922 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			922 B
		
	
	
	
		
			Python
		
	
	
	
	
	
defaults = {}
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'routeros/vlan_ports',
 | 
						|
)
 | 
						|
def routeros__(metadata):
 | 
						|
    return {
 | 
						|
        'routeros': {
 | 
						|
            'vlan_ports': {
 | 
						|
                vlan_name: {
 | 
						|
                    'untagged': {
 | 
						|
                        port_name
 | 
						|
                            for port_name, port_conf in metadata.get('routeros/ports').items()
 | 
						|
                            if vlan_name == metadata.get(f'routeros/vlan_groups/{port_conf["vlan_group"]}/untagged')
 | 
						|
                    },
 | 
						|
                    'tagged': {
 | 
						|
                        port_name
 | 
						|
                            for port_name, port_conf in metadata.get('routeros/ports').items()
 | 
						|
                            if vlan_name in metadata.get(f'routeros/vlan_groups/{port_conf["vlan_group"]}/tagged')
 | 
						|
                    },
 | 
						|
                }
 | 
						|
                        for vlan_name in metadata.get('routeros/vlans').keys()
 | 
						|
            },
 | 
						|
        },
 | 
						|
    }
 |