Exemplo n.º 1
0
        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)
                ]
Exemplo n.º 2
0
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'))
Exemplo n.º 3
0
    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'])
Exemplo n.º 4
0
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'))
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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")))
Exemplo n.º 7
0
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)
        ]
Exemplo n.º 8
0
 def exists(self):
     bgp_peer = self.nb_api.get(bgp.BGPPeer(id=self.peer_id))
     return bool(bgp_peer)