def add_peer_bgp_config(self, bgp_config, peers): peer_map = {} for peer, peer_data in self.get_sorted_key_value_pairs(peers): obj = peer_data.get('obj') params = peer_data.get('params', {}) attr = peer_data.get('attr', {}) nbr = Bgp(name=peer, ip_address=peer) nbr.set_comment(DMUtils.bgp_group_comment(obj)) peer_map[peer] = nbr bgp_sessions = attr.get('session') if bgp_sessions: # for now assume only one session session_attrs = bgp_sessions[0].get('attributes', []) for session_attr in session_attrs: # For not, only consider the attribute if bgp-router is # not specified if session_attr.get('bgp_router') is None: self.add_families(nbr, session_attr) self.add_bgp_auth_config(nbr, session_attr) break peer_as = params.get('local_autonomous_system') or params.get( 'autonomous_system') nbr.set_autonomous_system(peer_as) if peer_map: bgp_config.set_peers(self.get_values_sorted_by_key(peer_map))
def _get_bgp_config_xml(self, external=False): if self.bgp_params is None or not self.bgp_params.get('address'): return None bgp = Bgp() bgp.set_comment(DMUtils.bgp_group_comment(self.bgp_obj)) if external: bgp.set_name(DMUtils.make_bgp_group_name(self.get_asn(), True)) bgp.set_type('external') else: bgp.set_name(DMUtils.make_bgp_group_name(self.get_asn(), False)) bgp.set_type('internal') bgp.set_ip_address(self.bgp_params['address']) bgp.set_autonomous_system(self.get_asn()) self.add_families(bgp, self.bgp_params) self.add_bgp_auth_config(bgp, self.bgp_params) self.add_bgp_hold_time_config(bgp, self.bgp_params) return bgp
def _get_bgp_config_xml(self, external=False): if self.bgp_params is None: return None bgp_group = BgpGroup() bgp_group.set_comment(DMUtils.bgp_group_comment(self.bgp_obj)) if external: bgp_group.set_name(DMUtils.make_bgp_group_name(self.get_asn(), True)) bgp_group.set_type('external') bgp_group.set_multihop('') else: bgp_group.set_name(DMUtils.make_bgp_group_name(self.get_asn(), False)) bgp_group.set_type('internal') self.add_ibgp_export_policy(self.bgp_params, bgp_group) bgp_group.set_local_address(self.bgp_params['address']) self.add_families(bgp_group, self.bgp_params) self.add_bgp_auth_config(bgp_group, self.bgp_params) self.add_bgp_hold_time_config(bgp_group, self.bgp_params) return bgp_group
def _get_bgp_config_xml(self, external=False): if self.bgp_params is None or not self.bgp_params.get('address'): return None bgp_group = BgpGroup() bgp_group.set_comment(DMUtils.bgp_group_comment(self.bgp_obj)) if external: bgp_group.set_name(DMUtils.make_bgp_group_name(self.get_asn(), True)) bgp_group.set_type('external') bgp_group.set_multihop('') else: bgp_group.set_name(DMUtils.make_bgp_group_name(self.get_asn(), False)) bgp_group.set_type('internal') self.add_ibgp_export_policy(self.bgp_params, bgp_group) bgp_group.set_local_address(self.bgp_params['address']) self.add_families(bgp_group, self.bgp_params) self.add_bgp_auth_config(bgp_group, self.bgp_params) self.add_bgp_hold_time_config(bgp_group, self.bgp_params) return bgp_group
def get_bgp_config(self, external=False, is_RR=False): if self.bgp_params is None or not self.bgp_params.get('address'): return None bgp = Bgp() cluster_id = self.bgp_params.get('cluster_id') if cluster_id and not external and not is_RR: bgp.set_cluster_id(cluster_id) bgp.set_comment(DMUtils.bgp_group_comment(self.bgp_obj)) bgp.set_name( DMUtils.make_bgp_group_name(self.get_asn(), external, is_RR)) if external: bgp.set_type('external') else: bgp.set_type('internal') bgp.set_ip_address(self.bgp_params['address']) bgp.set_autonomous_system(self.get_asn()) self.add_families(bgp, self.bgp_params) self.add_bgp_auth_config(bgp, self.bgp_params) self.add_bgp_hold_time_config(bgp, self.bgp_params) return bgp
def get_bgp_config(self, external=False): if self.bgp_params is None or not self.bgp_params.get('address'): return None bgp = Bgp() cluster_id = self.bgp_params.get('cluster_id') if cluster_id: bgp.set_cluster_id(cluster_id) bgp.set_comment(DMUtils.bgp_group_comment(self.bgp_obj)) if external: bgp.set_name(DMUtils.make_bgp_group_name(self.get_asn(), True)) bgp.set_type('external') else: bgp.set_name(DMUtils.make_bgp_group_name(self.get_asn(), False)) bgp.set_type('internal') bgp.set_ip_address(self.bgp_params['address']) bgp.set_autonomous_system(self.get_asn()) self.add_families(bgp, self.bgp_params) self.add_bgp_auth_config(bgp, self.bgp_params) self.add_bgp_hold_time_config(bgp, self.bgp_params) return bgp
def _get_neighbor_config_xml(self, bgp_config, peers): for peer, peer_data in peers.items(): obj = peer_data.get('obj') params = peer_data.get('params', {}) attr = peer_data.get('attr', {}) nbr = Bgp(name=peer) nbr.set_comment(DMUtils.bgp_group_comment(obj)) bgp_config.add_peers(nbr) bgp_sessions = attr.get('session') if bgp_sessions: # for now assume only one session session_attrs = bgp_sessions[0].get('attributes', []) for session_attr in session_attrs: # For not, only consider the attribute if bgp-router is # not specified if session_attr.get('bgp_router') is None: self.add_families(nbr, session_attr) self.add_bgp_auth_config(nbr, session_attr) break peer_as = params.get('local_autonomous_system') or params.get('autonomous_system') nbr.set_autonomous_system(peer_as)
def _get_neighbor_config_xml(self, bgp_config, peers): for peer, peer_data in peers.items(): obj = peer_data.get('obj') params = peer_data.get('params', {}) attr = peer_data.get('attr', {}) nbr = BgpGroup(name=peer) nbr.set_comment(DMUtils.bgp_group_comment(obj)) bgp_config.add_neighbor(nbr) bgp_sessions = attr.get('session') if bgp_sessions: # for now assume only one session session_attrs = bgp_sessions[0].get('attributes', []) for session_attr in session_attrs: # For not, only consider the attribute if bgp-router is # not specified if session_attr.get('bgp_router') is None: self.add_families(nbr, session_attr) self.add_bgp_auth_config(nbr, session_attr) break peer_as = params.get('local_autonomous_system') or params.get('autonomous_system') nbr.set_peer_as(peer_as)
def add_peer_bgp_config(self, bgp_config, peers): peer_map = {} for peer, peer_data in self.get_sorted_key_value_pairs(peers): obj = peer_data.get('obj') params = peer_data.get('params', {}) attr = peer_data.get('attr', {}) nbr = Bgp(name=peer, ip_address=peer) nbr.set_comment(DMUtils.bgp_group_comment(obj)) peer_map[peer] = nbr bgp_sessions = attr.get('session') if bgp_sessions: # for now assume only one session session_attrs = bgp_sessions[0].get('attributes', []) for session_attr in session_attrs: # For not, only consider the attribute if bgp-router is # not specified if session_attr.get('bgp_router') is None: self.add_families(nbr, session_attr) self.add_bgp_auth_config(nbr, session_attr) break peer_as = params.get('local_autonomous_system') or params.get('autonomous_system') nbr.set_autonomous_system(peer_as) if peer_map: bgp_config.set_peers(self.get_values_sorted_by_key(peer_map))