Пример #1
0
 def create_bgp_router(self, name, vendor, asn=None):
     ip_fabric_ri = self._vnc_lib.routing_instance_read(
         fq_name=['default-domain', 'default-project', 'ip-fabric', '__default__'])
     router = BgpRouter(name, parent_obj=ip_fabric_ri)
     params = BgpRouterParams()
     params.vendor = 'contrail'
     params.autonomous_system = asn
     router.set_bgp_router_parameters(params)
     self._vnc_lib.bgp_router_create(router)
     return router
 def create_bgp_router(self, name, vendor, asn=None):
     ip_fabric_ri = self._vnc_lib.routing_instance_read(fq_name=[
         'default-domain', 'default-project', 'ip-fabric', '__default__'
     ])
     router = BgpRouter(name, parent_obj=ip_fabric_ri)
     params = BgpRouterParams()
     params.vendor = 'contrail'
     params.autonomous_system = asn
     router.set_bgp_router_parameters(params)
     self._vnc_lib.bgp_router_create(router)
     return router
Пример #3
0
    def create_router(self,
                      name,
                      mgmt_ip,
                      vendor='juniper',
                      product='mx',
                      ignore_pr=False,
                      role=None,
                      cluster_id=0,
                      ignore_bgp=False,
                      fabric=None):
        bgp_router, pr = None, None

        if not ignore_bgp:
            bgp_router = BgpRouter(name,
                                   display_name=name + "-bgp",
                                   parent_obj=self._get_ip_fabric_ri_obj())
            params = BgpRouterParams()
            params.address = mgmt_ip
            params.identifier = mgmt_ip
            params.address_families = AddressFamilies(
                ['route-target', 'inet-vpn', 'e-vpn', 'inet6-vpn'])
            params.autonomous_system = randint(0, 64512)
            params.cluster_id = cluster_id
            bgp_router.set_bgp_router_parameters(params)
            self._vnc_lib.bgp_router_create(bgp_router)
            gevent.sleep(1)

        if not ignore_pr:
            pr = PhysicalRouter(name, display_name=name)
            pr.physical_router_management_ip = mgmt_ip
            pr.physical_router_vendor_name = vendor
            pr.physical_router_product_name = product
            pr.physical_router_vnc_managed = True
            if role:
                pr.physical_router_role = role
            uc = UserCredentials('user', 'pw')
            pr.set_physical_router_user_credentials(uc)
            pr.set_fabric(fabric)
            if not ignore_bgp:
                pr.set_bgp_router(bgp_router)
            self._vnc_lib.physical_router_create(pr)
            gevent.sleep(1)

        return bgp_router, pr
 def test_bgp_router_create_with_invalid_2_byte_local_asn(self):
     rt_inst_obj = self.api.routing_instance_read(fq_name=[
         'default-domain', 'default-project', 'ip-fabric', '__default__'
     ])
     bgp_router_params = BgpRouterParams(router_type='control-node',
                                         autonomous_system=64512,
                                         local_autonomous_system=700000)
     bgp_router_obj = BgpRouter(name='bgprouter1',
                                parent_obj=rt_inst_obj,
                                bgp_router_parameters=bgp_router_params)
     self.assertRaises(BadRequest, self.api.bgp_router_create,
                       bgp_router_obj)
    def test_bgp_router_update_with_hold_time(self):
        # Create gbp router object
        rt_inst_obj = self.api.routing_instance_read(fq_name=[
            'default-domain', 'default-project', 'ip-fabric', '__default__'
        ])
        bgp_router_params = BgpRouterParams(router_type='control-node')
        bgp_router_obj = BgpRouter(name='bgprouter',
                                   parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        bgp_router_uuid = self.api.bgp_router_create(bgp_router_obj)

        for test in self.hold_time_test_cases:
            # Update hold time with valid and invalid values
            bgp_router_params = BgpRouterParams(router_type='control-node',
                                                hold_time=test['hold_time'])
            bgp_router_obj.set_bgp_router_parameters(bgp_router_params)
            if test['should_pass']:
                self.api.bgp_router_update(bgp_router_obj)
            else:
                self.assertRaises(BadRequest, self.api.bgp_router_update,
                                  bgp_router_obj)
        # Finally, delete the bgp router object
        self.api.bgp_router_delete(id=bgp_router_uuid)
Пример #6
0
    def create_router(self, name, mgmt_ip, vendor='juniper', product='mx',
                      ignore_pr=False, role=None, cluster_id=0,
                      ignore_bgp=False, fabric=None):
        bgp_router, pr = None, None

        if not ignore_bgp:
            bgp_router = BgpRouter(name,
                                   display_name=name+"-bgp",
                                   parent_obj=self._get_ip_fabric_ri_obj())
            params = BgpRouterParams()
            params.address = mgmt_ip
            params.identifier = mgmt_ip
            params.address_families = AddressFamilies(['route-target', 'inet-vpn',
                                                       'e-vpn', 'inet6-vpn'])
            params.autonomous_system = randint(0, 64512)
            params.cluster_id = cluster_id
            bgp_router.set_bgp_router_parameters(params)
            self._vnc_lib.bgp_router_create(bgp_router)
            gevent.sleep(1)

        if not ignore_pr:
            pr = PhysicalRouter(name, display_name=name)
            pr.physical_router_management_ip = mgmt_ip
            pr.physical_router_vendor_name = vendor
            pr.physical_router_product_name = product
            pr.physical_router_vnc_managed = True
            if role:
                pr.physical_router_role = role
            uc = UserCredentials('user', 'pw')
            pr.set_physical_router_user_credentials(uc)
            pr.set_fabric(fabric)
            if not ignore_bgp:
                pr.set_bgp_router(bgp_router)
            self._vnc_lib.physical_router_create(pr)
            gevent.sleep(1)

        return bgp_router, pr
    def test_bgp_router_update_with_valid_2_byte_asn(self):
        rt_inst_obj = self.api.routing_instance_read(fq_name=[
            'default-domain', 'default-project', 'ip-fabric', '__default__'
        ])
        bgp_router_params = BgpRouterParams(router_type='control-node',
                                            autonomous_system=64512,
                                            local_autonomous_system=64500)
        bgp_router_obj = BgpRouter(name='bgprouter1',
                                   parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        bgp_router_uuid = self.api.bgp_router_create(bgp_router_obj)

        # Read back the bgp_router object
        bgp_router_obj = self.api.bgp_router_read(id=bgp_router_uuid)

        # update asn numbers to valid 2 byte value
        new_bgp_router_params = BgpRouterParams(router_type='control-node',
                                                autonomous_system=1234,
                                                local_autonomous_system=4321)
        bgp_router_obj.set_bgp_router_parameters(new_bgp_router_params)
        self.api.bgp_router_update(bgp_router_obj)

        # Delete the bgp router
        self.api.bgp_router_delete(id=bgp_router_uuid)
    def test_bgp_router_create_with_hold_time(self):
        rt_inst_obj = self.api.routing_instance_read(fq_name=[
            'default-domain', 'default-project', 'ip-fabric', '__default__'
        ])

        for test in self.hold_time_test_cases:
            bgp_router_params = BgpRouterParams(router_type='control-node',
                                                hold_time=test['hold_time'])
            bgp_router_obj = BgpRouter(name='bgprouter',
                                       parent_obj=rt_inst_obj,
                                       bgp_router_parameters=bgp_router_params)
            if test['should_pass']:
                # Create gbp router object with proper hold time
                bgp_router_uuid = self.api.bgp_router_create(bgp_router_obj)
                self.api.bgp_router_delete(id=bgp_router_uuid)
            else:
                # Try to create gbp router object with improper hold time
                # and expect error
                self.assertRaises(BadRequest, self.api.bgp_router_create,
                                  bgp_router_obj)
    def test_bgp_router_create_with_invalid_4_byte_asn(self):
        gsc = self.api.global_system_config_read(GlobalSystemConfig().fq_name)
        # Enable 4 byte ASN flag in GSC
        gsc.enable_4byte_as = True
        self.api.global_system_config_update(gsc)

        rt_inst_obj = self.api.routing_instance_read(fq_name=[
            'default-domain', 'default-project', 'ip-fabric', '__default__'
        ])
        bgp_router_params = BgpRouterParams(router_type='control-node',
                                            autonomous_system=0x1FFFFFFFF,
                                            local_autonomous_system=700000)
        bgp_router_obj = BgpRouter(name='bgprouter1',
                                   parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        self.assertRaises(BadRequest, self.api.bgp_router_create,
                          bgp_router_obj)

        # Now disable 4 byte ASN flag
        gsc.enable_4byte_as = False
        self.api.global_system_config_update(gsc)
Пример #10
0
    def test_control_node_zone(self):
        gsc = self.api.global_system_config_read(GlobalSystemConfig().fq_name)
        cnz = []
        for i in range(2):
            cnz_name = "cnz-" + str(i)
            cnz.append(ControlNodeZone(name=cnz_name, parent_obj=gsc))
            self.api.control_node_zone_create(cnz[i])

        rt_inst_obj = self.api.routing_instance_read(
            fq_name=['default-domain', 'default-project',
                     'ip-fabric', '__default__'])
        bgp_router_params = BgpRouterParams(router_type='control-node')

        # create bgp_rotuer with two control-node-zones
        bgp_router_obj = BgpRouter(name='bgprouter', parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        bgp_router_obj.add_control_node_zone(cnz[0])
        bgp_router_obj.add_control_node_zone(cnz[1])
        try:
            self.api.bgp_router_create(bgp_router_obj)
        except BadRequest:
            pass

        # update bgp_router with two control-node-zones
        bgp_router_obj = BgpRouter(name='bgprouter', parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        bgp_router_uuid = self.api.bgp_router_create(bgp_router_obj)
        bgp_router_obj.add_control_node_zone(cnz[0])
        bgp_router_obj.add_control_node_zone(cnz[1])
        try:
            self.api.bgp_router_update(bgp_router_obj)
        except BadRequest:
            self.api.bgp_router_delete(id=bgp_router_uuid)

        # update bgp_router with same control-node-zone
        bgp_router_obj = BgpRouter(name='bgprouter', parent_obj=rt_inst_obj,
                                   bgp_router_parameters=bgp_router_params)
        bgp_router_obj.add_control_node_zone(cnz[0])
        bgp_router_uuid = self.api.bgp_router_create(bgp_router_obj)
        bgp_router_obj = self.api.bgp_router_read(id=bgp_router_uuid)
        bgp_router_obj.add_control_node_zone(cnz[0])
        self.api.bgp_router_update(bgp_router_obj)

        # update bgp_router with new control-node-zone
        bgp_router_obj.add_control_node_zone(cnz[1])
        try:
            self.api.bgp_router_update(bgp_router_obj)
        except BadRequest:
            self.api.bgp_router_delete(id=bgp_router_uuid)

        for i in range(2):
            self.api.control_node_zone_delete(fq_name=cnz[i].fq_name)