def test_bgp_router_update_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=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 invalid 4 byte value
        new_bgp_router_params = BgpRouterParams(
            router_type='control-node',
            autonomous_system=0x1FFFFFFFFF,
            local_autonomous_system=0x1FFFFFFFFF)
        bgp_router_obj.set_bgp_router_parameters(new_bgp_router_params)

        self.assertRaises(BadRequest, self.api.bgp_router_update,
                          bgp_router_obj)

        # Now delete the bgp router object and disable 4 byte ASN flag
        self.api.bgp_router_delete(id=bgp_router_uuid)
        gsc.enable_4byte_as = False
        self.api.global_system_config_update(gsc)
    def test_bgp_router_update_with_invalid_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 invalid 2 byte value
        new_bgp_router_params = BgpRouterParams(
            router_type='control-node',
            autonomous_system=0x1FFFF,
            local_autonomous_system=0x1FFFF)
        bgp_router_obj.set_bgp_router_parameters(new_bgp_router_params)

        self.assertRaises(BadRequest, self.api.bgp_router_update,
                          bgp_router_obj)

        # Delete the bgp router
        self.api.bgp_router_delete(id=bgp_router_uuid)
 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
示例#4
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
示例#5
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_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)
示例#7
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