Guest User

Untitled

a guest
Mar 10th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  1. root@5b5-controller1:~# cat add_phy_router.py
  2. from vnc_api import vnc_api
  3.  
  4. def main():
  5. args_list = [{
  6. 'name': '5b5-qfx2',
  7. 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
  8. 'vendor': 'Juniper',
  9. 'type': 'router',
  10. 'asn': 64512,
  11. 'address': '10.1.0.1',
  12. 'username': 'root',
  13. 'password': 'Embe1mpls',
  14. 'model': 'qfx5100',
  15. 'role': 'leaf',
  16. 'skip': False
  17. },
  18. {
  19. 'name': '5b5-qfx3',
  20. 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
  21. 'vendor': 'Juniper',
  22. 'type': 'router',
  23. 'asn': 64512,
  24. 'address': '10.1.0.2',
  25. 'username': 'root',
  26. 'password': 'Embe1mpls',
  27. 'model': 'qfx5100',
  28. 'role': 'leaf',
  29. 'skip': False
  30. },
  31. {
  32. 'name': '5b5-qfx6',
  33. 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
  34. 'vendor': 'Juniper',
  35. 'type': 'router',
  36. 'asn': 64512,
  37. 'address': '10.1.0.3',
  38. 'username': 'root',
  39. 'password': 'Embe1mpls',
  40. 'model': 'qfx5100',
  41. 'role': 'leaf',
  42. 'skip': True
  43. },
  44. {
  45. 'name': '5b6-qfx5',
  46. 'port': 179, 'af_list' : ['route-target', 'e-vpn','inet'],
  47. 'vendor': 'Juniper',
  48. 'type': 'router',
  49. 'asn': 64512,
  50. 'address': '10.1.0.4',
  51. 'username': 'root',
  52. 'password': 'Embe1mpls',
  53. 'model': 'qfx5200',
  54. 'role': 'leaf',
  55. 'skip': True
  56. },
  57. {
  58. 'name': '5b5-qfx5',
  59. 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'e-vpn', 'inet6-vpn', 'inet'],
  60. 'vendor': 'Juniper',
  61. 'type': 'router',
  62. 'asn': 64512,
  63. 'address': '10.1.0.100',
  64. 'username': 'root',
  65. 'password': 'Embe1mpls',
  66. 'model': 'qfx10002',
  67. 'role': 'spine',
  68. 'skip': True
  69. },
  70. {
  71. 'name': '5b5-mx80-3',
  72. 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'e-vpn', 'inet6-vpn', 'inet'],
  73. 'vendor': 'Juniper',
  74. 'type': 'router',
  75. 'asn': 64512,
  76. 'address': '10.1.0.101',
  77. 'username': 'root',
  78. 'password': 'Embe1mpls',
  79. 'role': 'spine',
  80. 'model': 'mx80',
  81. 'skip': True
  82. },
  83. {
  84. 'name': '5b5-mx80-1',
  85. 'port': 179, 'af_list' : ['route-target', 'inet-vpn', 'inet6-vpn', 'inet'],
  86. 'vendor': 'Juniper',
  87. 'type': 'router',
  88. 'asn': 64512,
  89. 'address': '10.1.0.254',
  90. 'username': 'root',
  91. 'password': 'Embe1mpls',
  92. 'model': 'mx80',
  93. 'skip': False
  94. },
  95. {
  96. 'name': '5b5-mx80-2',
  97. 'port': 179, 'af_list' : ['route-target', 'inet-vpn','inet6-vpn', 'inet'],
  98. 'vendor': 'Juniper',
  99. 'type': 'router',
  100. 'asn': 64512,
  101. 'address': '10.1.0.255',
  102. 'username': 'root',
  103. 'password': 'Embe1mpls',
  104. 'model': 'mx80',
  105. 'skip': True
  106. }]
  107.  
  108.  
  109. vnc = vnc_api.VncApi(api_server_host='10.64.0.94',
  110. auth_host='10.64.0.94',
  111. api_server_port='8082',
  112. username='admin',
  113. password='C0ntrai1l23',
  114. tenant_name='admin',
  115. domain_name='default',
  116. )
  117.  
  118. gsc = vnc.global_system_config_read(fq_name = ['default-global-system-config'])
  119. default_routing_instance = vnc.routing_instance_read(fq_name = ['default-domain', 'default-project','ip-fabric', '__default__'])
  120.  
  121. for args in args_list:
  122. if args['skip']:
  123. continue
  124. bgprouter = vnc_api.BgpRouter(name = args['name'], parent_obj = default_routing_instance)
  125. params = vnc_api.BgpRouterParams()
  126. params.port = args['port']
  127. params.address_families = vnc_api.AddressFamilies(args['af_list'])
  128. params.vendor = args['vendor']
  129. params.router_type = args['type']
  130. params.autonomous_system = args['asn']
  131. params.address = args['address']
  132. params.identifier = args['address']
  133. bgprouter.set_bgp_router_parameters(params)
  134. uuid = vnc.bgp_router_create(bgprouter)
  135. bgprouter = vnc.bgp_router_read(id=uuid)
  136.  
  137. phyrouter = vnc_api.PhysicalRouter(name=args['name'],parent_obj = gsc)
  138. phyrouter.physical_router_vendor_name = args['vendor']
  139. phyrouter.physical_router_product_name = args['model']
  140. phyrouter.physical_router_management_ip = args['address']
  141. phyrouter.physical_router_loopback_ip = args['address']
  142. phyrouter.physical_router_dataplane_ip = args['address']
  143. try:
  144. phyrouter.physical_router_role = args['role']
  145. except KeyError:
  146. pass
  147. phyrouter.physical_router_vnc_managed = True
  148. phyrouter.physical_router_user_credentials = vnc_api.UserCredentials(username = args['username'], password = args['password'])
  149. phyrouter.add_bgp_router(bgprouter)
  150. uuid = vnc.physical_router_create(phyrouter)
  151.  
  152. return None
  153.  
  154. if __name__=='__main__':
  155. main()
  156. root@5b5-controller1:~#
Add Comment
Please, Sign In to add comment