def get_all_with_routes_side_effect(model, topic): if model == bgp.BGPPeer: return [ bgp.BGPPeer(id="peer1", topic="topic1", name="peer1", peer_ip="172.24.4.88", remote_as=4321) ] if model == bgp.BGPSpeaker: routes = [{ 'destination': "10.0.0.0/24", 'nexthop': "172.24.4.66" }] return [ bgp.BGPSpeaker(id="speaker1", topic="topic1", name="speaker1", local_as=1234, peers=["peer1"], prefix_routes=routes, host_routes=[], ip_version=4) ]
def bgp_peer_from_neutron_bgp_peer(peer): return bgp.BGPPeer(id=peer.get('id'), topic=peer.get('tenant_id'), name=peer.get('name'), peer_ip=peer.get('peer_ip'), remote_as=int(peer.get('remote_as')), auth_type=peer.get('auth_type'), password=peer.get('password'))
def delete_bgp_peer(self, context, bgp_peer_id): speakers = self._get_bgp_speakers_by_bgp_peer(context, bgp_peer_id) super(DFBgpPlugin, self).delete_bgp_peer(context, bgp_peer_id) self.nb_api.delete(bgp.BGPPeer(id=bgp_peer_id), skip_send_event=True) for s in speakers: self._remove_bgp_peer_from_bgp_speaker(context, s['id'], bgp_peer_id, s['tenant_id'])
def bgp_peer_from_neutron_bgp_peer(peer): topic = df_utils.get_obj_topic(peer) return bgp.BGPPeer(id=peer.get('id'), topic=topic, name=peer.get('name'), peer_ip=peer.get('peer_ip'), remote_as=int(peer.get('remote_as')), auth_type=peer.get('auth_type'), password=peer.get('password'))
def delete_bgp_peer(self, context, bgp_peer_id): speakers = self._get_bgp_speakers_by_bgp_peer(context, bgp_peer_id) super(DFBgpPlugin, self).delete_bgp_peer(context, bgp_peer_id) self.nb_api.delete(bgp.BGPPeer(id=bgp_peer_id), skip_send_event=True) for s in speakers: topic = df_utils.get_obj_topic(s) self._remove_bgp_peer_from_bgp_speaker(context, s['id'], bgp_peer_id, topic)
def test_sync_bgp_data_to_db_store(self): self.bgp_service.nb_api.get_all.side_effect = get_all_side_effect # Give fixed interval a chance to run. self.bgp_service.bgp_pulse.fire() self.assertTrue( self.bgp_service.db_store.get_one(bgp.BGPPeer(id="peer1"))) self.assertTrue( self.bgp_service.db_store.get_one(bgp.BGPSpeaker(id="speaker1")))
def get_all_side_effect(model, topic): if model == bgp.BGPPeer: return [ bgp.BGPPeer(id="peer1", topic="topic1", name="peer1", peer_ip="172.24.4.88", remote_as=4321) ] if model == bgp.BGPSpeaker: return [ bgp.BGPSpeaker(id="speaker1", topic="topic1", name="speaker1", local_as=1234, peers=["peer1"], host_routes=[], prefix_routes=[], ip_version=4) ]
def exists(self): bgp_peer = self.nb_api.get(bgp.BGPPeer(id=self.peer_id)) return bool(bgp_peer)