MCPcopy Create free account
hub / github.com/apache/cloudstack / _process_peers

Method _process_peers

systemvm/debian/opt/cloud/bin/cs/CsBgpPeers.py:85–116  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

83 return
84
85 def _process_peers(self):
86 for as_number in self.peers.keys():
87 self.frr_conf.add("router bgp {}".format(as_number))
88 self.frr_conf.add(" bgp router-id {}".format(self.public_ip))
89 if self.peers[as_number]['ip6_peers']:
90 self.frr_conf.add(" bgp default ipv6-unicast")
91 for ip4_peer in self.peers[as_number]['ip4_peers']:
92 self.frr_conf.add(" neighbor {} remote-as {}".format(ip4_peer['ip4_address'], ip4_peer['peer_as_number']))
93 if 'peer_password' in ip4_peer:
94 self.frr_conf.add(" neighbor {} password {}".format(ip4_peer['ip4_address'], ip4_peer['peer_password']))
95 if 'details' in ip4_peer:
96 if 'EBGP_MultiHop' in ip4_peer['details']:
97 self.frr_conf.add(" neighbor {} ebgp-multihop {}".format(ip4_peer['ip4_address'], ip4_peer['details']['EBGP_MultiHop']))
98 for ip6_peer in self.peers[as_number]['ip6_peers']:
99 self.frr_conf.add(" neighbor {} remote-as {}".format(ip6_peer['ip6_address'], ip6_peer['peer_as_number']))
100 if 'peer_password' in ip6_peer:
101 self.frr_conf.add(" neighbor {} password {}".format(ip6_peer['ip6_address'], ip6_peer['peer_password']))
102 if 'details' in ip6_peer:
103 if 'EBGP_MultiHop' in ip6_peer['details']:
104 self.frr_conf.add(" neighbor {} ebgp-multihop {}".format(ip6_peer['ip6_address'], ip6_peer['details']['EBGP_MultiHop']))
105 if self.peers[as_number]['ip4_peers']:
106 self.frr_conf.add(" address-family ipv4 unicast")
107 ip4_cidrs = set({ip4_peer['guest_ip4_cidr'] for ip4_peer in self.peers[as_number]['ip4_peers']})
108 for ip4_cidr in ip4_cidrs:
109 self.frr_conf.add(" network {}".format(ip4_cidr))
110 self.frr_conf.add(" exit-address-family")
111 if self.peers[as_number]['ip6_peers']:
112 self.frr_conf.add(" address-family ipv6 unicast")
113 ip6_cidrs = set({ip6_peer['guest_ip6_cidr'] for ip6_peer in self.peers[as_number]['ip6_peers']})
114 for ip6_cidr in ip6_cidrs:
115 self.frr_conf.add(" network {}".format(ip6_cidr))
116 self.frr_conf.add(" exit-address-family")
117
118 def _post_set(self):
119 self.frr_conf.add("line vty")

Callers 1

processMethod · 0.95

Calls 3

keysMethod · 0.80
formatMethod · 0.80
addMethod · 0.65

Tested by

no test coverage detected