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()
 | |
|             },
 | |
|         },
 | |
|     }
 |