Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- root@5b5-controller1:~# cat add_phy_router.py
- from vnc_api import vnc_api
- def main():
- args_list = [{
- 'name': '5b5-qfx2',
- 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.1',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'qfx5100',
- 'role': 'leaf',
- 'skip': False
- },
- {
- 'name': '5b5-qfx3',
- 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.2',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'qfx5100',
- 'role': 'leaf',
- 'skip': False
- },
- {
- 'name': '5b5-qfx6',
- 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.3',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'qfx5100',
- 'role': 'leaf',
- 'skip': True
- },
- {
- 'name': '5b6-qfx5',
- 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.4',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'qfx5200',
- 'role': 'leaf',
- 'skip': True
- },
- {
- 'name': '5b5-qfx5',
- 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'e-vpn', 'inet6-vpn', 'inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.100',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'qfx10002',
- 'role': 'spine',
- 'skip': True
- },
- {
- 'name': '5b5-mx80-3',
- 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'e-vpn', 'inet6-vpn', 'inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.101',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'role': 'spine',
- 'model': 'mx80',
- 'skip': True
- },
- {
- 'name': '5b5-mx80-1',
- 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'inet6-vpn', 'inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.254',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'mx80',
- 'skip': False
- },
- {
- 'name': '5b5-mx80-2',
- 'port': 179, 'af_list' : ['route-target', 'inet-vpn','inet6-vpn', 'inet'],
- 'vendor': 'Juniper',
- 'type': 'router',
- 'asn': 64512,
- 'address': '10.1.0.255',
- 'username': 'root',
- 'password': 'Embe1mpls',
- 'model': 'mx80',
- 'skip': True
- }]
- vnc = vnc_api.VncApi(api_server_host='10.64.0.94',
- auth_host='10.64.0.94',
- api_server_port='8082',
- username='admin',
- password='C0ntrai1l23',
- tenant_name='admin',
- domain_name='default',
- )
- gsc = vnc.global_system_config_read(fq_name = ['default-global-system-config'])
- default_routing_instance = vnc.routing_instance_read(fq_name = ['default-domain', 'default-project','ip-fabric', '__default__'])
- for args in args_list:
- if args['skip']:
- continue
- bgprouter = vnc_api.BgpRouter(name = args['name'], parent_obj = default_routing_instance)
- params = vnc_api.BgpRouterParams()
- params.port = args['port']
- params.address_families = vnc_api.AddressFamilies(args['af_list'])
- params.vendor = args['vendor']
- params.router_type = args['type']
- params.autonomous_system = args['asn']
- params.address = args['address']
- params.identifier = args['address']
- bgprouter.set_bgp_router_parameters(params)
- uuid = vnc.bgp_router_create(bgprouter)
- bgprouter = vnc.bgp_router_read(id=uuid)
- phyrouter = vnc_api.PhysicalRouter(name=args['name'],parent_obj = gsc)
- phyrouter.physical_router_vendor_name = args['vendor']
- phyrouter.physical_router_product_name = args['model']
- phyrouter.physical_router_management_ip = args['address']
- phyrouter.physical_router_loopback_ip = args['address']
- phyrouter.physical_router_dataplane_ip = args['address']
- try:
- phyrouter.physical_router_role = args['role']
- except KeyError:
- pass
- phyrouter.physical_router_vnc_managed = True
- phyrouter.physical_router_user_credentials = vnc_api.UserCredentials(username = args['username'], password = args['password'])
- phyrouter.add_bgp_router(bgprouter)
- uuid = vnc.physical_router_create(phyrouter)
- return None
- if __name__=='__main__':
- main()
- root@5b5-controller1:~#
Add Comment
Please, Sign In to add comment