import yaml from gridka_node_config.netdb import get_config, set_config from gridka_node_config.util import build_api_session from ipaddress import IPv4Address, IPv6Address if __name__ == '__main__': with open('common.yaml') as f: config = yaml.safe_load(f)['bird::config'] api_session = build_api_session() for rack, config in config.items(): if rack == 'WN racks on old Hardware': continue print(rack, config) if type(config['ip remote']) is not list: config['ip remote'] = [config['ip remote']] if type(config['ip6 remote']) is not list: config['ip6 remote'] = [config['ip6 remote']] set_config( api_session=api_session, bcd=f'gridka-{rack}-p-1', local_as=config['as local'], remote_as=config['as remote'], ipv4_remote=[IPv4Address(ip) for ip in config['ip remote']], ipv6_remote=[IPv6Address(ip) for ip in config['ip6 remote']], ) applied = get_config(api_session=api_session, bcd_list=[f'gridka-{rack}-p-1']) if len(applied.keys()) > 0: print(applied) else: print('!!!!!!!!!!!!!!!!!!!!') print(f'No config applied ({rack})!!!') print('!!!!!!!!!!!!!!!!!!!!')