import json import config_utils import factory def collect_tokens(cfg): tokens = config_utils.collect_layout_tokens(cfg) vlans = cfg.get('vlans', []) vlan_names = [v.get('name', '') for v in vlans] filter_opts = '' + ''.join( f'' for n in vlan_names ) tokens['PROTOCOL_OPTIONS'] = json.dumps([ {'value': 'tcp', 'label': 'TCP'}, {'value': 'udp', 'label': 'UDP'}, {'value': 'both', 'label': 'TCP/UDP'}, ]) tokens['VLAN_FILTER_OPTIONS'] = filter_opts tokens['VLAN_NAMES_AS_OPTIONS'] = json.dumps([{'value': n, 'label': n} for n in vlan_names]) tokens['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') }) content = factory.load_json(f'{factory.PAGES_DIR}/portwrangling/content.json') for table_item in factory.iter_table_items(content.get('items', [])): ds = table_item.get('datasource', '') tokens[factory.table_token_key(ds)] = factory.build_table(table_item, tokens, config_utils.load_datasource(ds)) return tokens