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