Пример #1
0
 def create_tc_wrapper_with_namespace_and_device(self):
     ns_name = uuidutils.generate_uuid()
     namespace = namespaces.Namespace(ns_name, None, mock.Mock(), False)
     namespace.create()
     self.addCleanup(namespace.delete)
     ip_wrapper = ip_lib.IPWrapper(namespace=ns_name)
     tc_device = ip_wrapper.add_tuntap(DEV_NAME)
     tc_device.link.set_up()
     return l3_tc_lib.FloatingIPTcCommand(DEV_NAME, namespace=ns_name)
Пример #2
0
 def _get_tc_wrapper(self, device):
     return tc_lib.FloatingIPTcCommand(device.name,
                                       namespace=device.namespace)
Пример #3
0
 def _get_tc_wrapper(self, device):
     LOG.info('%s(): caller(): %s', log_utils.get_fname(1), log_utils.get_fname(2))
     return tc_lib.FloatingIPTcCommand(device.name,
                                       namespace=device.namespace)
Пример #4
0
    def _router_fip_qos_after_admin_state_down_up(self, ha=False):
        def get_router_gw_interface():
            devices = ip.get_devices()
            return [dev.name for dev in devices if dev.name.startswith('qg-')]

        tenant_id = uuidutils.generate_uuid()
        ext_net, ext_sub = self._create_external_network_and_subnet(tenant_id)
        external_vm = self._create_external_vm(ext_net, ext_sub)

        router = self.safe_client.create_router(tenant_id,
                                                ha=ha,
                                                external_network=ext_net['id'])

        vm = self._create_net_subnet_and_vm(
            tenant_id, ['20.0.0.0/24', '2001:db8:aaaa::/64'],
            self.environment.hosts[1], router)
        # ping external vm to test snat
        vm.block_until_ping(external_vm.ip)

        qos_policy = self.safe_client.create_qos_policy(
            tenant_id,
            'fs_policy',
            'Fullstack testing policy',
            shared='False',
            is_default='False')
        self.safe_client.create_bandwidth_limit_rule(
            tenant_id, qos_policy['id'], 1111, 2222,
            constants.INGRESS_DIRECTION)
        self.safe_client.create_bandwidth_limit_rule(
            tenant_id, qos_policy['id'], 3333, 4444,
            constants.EGRESS_DIRECTION)

        fip = self.safe_client.create_floatingip(
            tenant_id,
            ext_net['id'],
            vm.ip,
            vm.neutron_port['id'],
            qos_policy_id=qos_policy['id'])
        # ping floating ip from external vm
        external_vm.block_until_ping(fip['floating_ip_address'])

        self.safe_client.update_router(router['id'], admin_state_up=False)
        external_vm.block_until_no_ping(fip['floating_ip_address'])

        self.safe_client.update_router(router['id'], admin_state_up=True)
        external_vm.block_until_ping(fip['floating_ip_address'])

        if ha:
            l3_agents = [host.agents['l3'] for host in self.environment.hosts]
            router_agent = self._get_l3_agents_with_ha_state(
                l3_agents, router['id'])[0]
            qrouter_ns = self._get_namespace(router['id'], router_agent)
        else:
            qrouter_ns = self._get_namespace(router['id'])
        ip = ip_lib.IPWrapper(qrouter_ns)
        try:
            common_utils.wait_until_true(get_router_gw_interface)
        except common_utils.WaitTimeout:
            self.fail('Router gateway interface "qg-*" not found')

        interface_name = get_router_gw_interface()[0]
        tc_wrapper = l3_tc_lib.FloatingIPTcCommand(interface_name,
                                                   namespace=qrouter_ns)
        common_utils.wait_until_true(functools.partial(
            self._wait_until_filters_set, tc_wrapper),
                                     timeout=60)
Пример #5
0
 def setUp(self):
     super(TestFloatingIPTcCommand, self).setUp()
     self.tc = tc_lib.FloatingIPTcCommand(
         FLOATING_IP_DEVICE_NAME, namespace=FLOATING_IP_ROUTER_NAMESPACE)
     self.execute = mock.patch('neutron.agent.common.utils.execute').start()