import json
def collect_tokens(cfg):
vlans = cfg.get('vlans', [])
vlan_names = [v.get('name', '') for v in vlans]
filter_opts = '' + ''.join(
f'' for n in vlan_names
)
return {
'PROTOCOL_OPTIONS': json.dumps([
{'value': 'tcp', 'label': 'TCP'},
{'value': 'udp', 'label': 'UDP'},
{'value': 'both', 'label': 'TCP/UDP'},
]),
'VLAN_FILTER_OPTIONS': filter_opts,
'VLAN_NAMES_AS_OPTIONS': json.dumps([{'value': n, 'label': n} for n in vlan_names]),
'VLAN_SUBNET_INFO_JSON': json.dumps({
v.get('name', ''): {'subnet': v.get('subnet', ''), 'prefix': v.get('subnet_mask', 0)}
for v in vlans if v.get('name') and v.get('subnet')
}),
}