neutron_tempest_plugin.scenario package

Submodules

neutron_tempest_plugin.scenario.base module

class neutron_tempest_plugin.scenario.base.BaseAdminTempestTestCase(*args, **kwargs)

Bases: neutron_tempest_plugin.api.base.BaseAdminNetworkTest, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

class neutron_tempest_plugin.scenario.base.BaseTempestTestCase(*args, **kwargs)

Bases: neutron_tempest_plugin.api.base.BaseNetworkTest

neutron_tempest_plugin.scenario.base.get_ncat_client_cmd(ip_address, port, protocol, ssh_client=None)
neutron_tempest_plugin.scenario.base.get_ncat_server_cmd(port, protocol, msg=None)
neutron_tempest_plugin.scenario.base.get_ncat_version(ssh_client=None)

neutron_tempest_plugin.scenario.constants module

neutron_tempest_plugin.scenario.exceptions module

exception neutron_tempest_plugin.scenario.exceptions.ConnectionTimeoutException(*args, **kwargs)

Bases: tempest.lib.exceptions.TempestException

message = 'Timeout connecting to %(host)s port %(port)d'
exception neutron_tempest_plugin.scenario.exceptions.FileCreationFailedException(*args, **kwargs)

Bases: tempest.lib.exceptions.TempestException

message = 'File %(file)s has not been created or has the wrong size'
exception neutron_tempest_plugin.scenario.exceptions.QoSLimitReached(*args, **kwargs)

Bases: tempest.lib.exceptions.TempestException

message = 'Limit reached, limit = %(limit)d'
exception neutron_tempest_plugin.scenario.exceptions.SocketConnectionRefused(*args, **kwargs)

Bases: tempest.lib.exceptions.TempestException

message = 'Unable to connect to %(host)s port %(port)d:Connection Refused'

neutron_tempest_plugin.scenario.test_basic module

class neutron_tempest_plugin.scenario.test_basic.NetworkBasicTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_basic_instance()

Test idempotent id: de07fe0a-e955-449e-b48b-8641c14cd52e

test_ping_global_ip_from_vm_with_fip()

Test idempotent id: 49609189-3a0e-43c7-832e-a7e114aad1c9

neutron_tempest_plugin.scenario.test_connectivity module

class neutron_tempest_plugin.scenario.test_connectivity.NetworkConnectivityTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_connectivity_dvr_and_no_dvr_routers_in_same_subnet()

Test idempotent id: 69d3650a-5c32-40bc-ae56-5c4c849ddd37

This test case tests connectivity between vm and 2 routers.

Subnet is connected to dvr and non-dvr routers in the same time, test ensures that connectivity from VM to both routers is working.

Test scenario: (NOTE: 10.1.0.0/24 private CIDR is used as an example)

+----------------+                  +------------+
| Non-dvr router |                  | DVR router |
|                |                  |            |
|    10.1.0.1    |                  |  10.1.0.x  |
+-------+--------+                  +-----+------+
        |                                 |
        |         10.1.0.0/24             |
        +----------------+----------------+
                         |
                       +-+-+
                       |VM |
                       +---+

where: 10.1.0.1 - is subnet’s gateway IP address, 10.1.0.x - is any other IP address taken from subnet’s range

Test ensures that both 10.1.0.1 and 10.1.0.x IP addresses are reachable from VM.

test_connectivity_router_east_west_traffic()

Test idempotent id: b72c3b77-3396-4144-b05d-9cd3c0099893

This case is intended to test router east west taffic

The case can be used in various scenarios: legacy/distributed router, same/different host.

test_connectivity_through_2_routers()

Test idempotent id: 8944b90d-1766-4669-bd8a-672b5d106bb7

neutron_tempest_plugin.scenario.test_dhcp module

class neutron_tempest_plugin.scenario.test_dhcp.DHCPPortUpdateTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_modify_dhcp_port_ip_address()

Test idempotent id: 8171cc68-9dbb-46ca-b065-17b5b2e26094

Test Scenario

  1. Create a network and a subnet with DHCP enabled

  2. Modify the default IP address from the subnet DHCP port

  3. Create a server in this network and check ssh connectivity

For the step 3), the server needs to obtain ssh keys from the metadata

Related bug: LP#1942794

class neutron_tempest_plugin.scenario.test_dhcp.DHCPTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_extra_dhcp_opts()

Test idempotent id: 58f7c094-1980-4e03-b0d3-6c4dd27217b1

This test case tests DHCP extra options configured for Neutron port.

Test is checking just extra option “15” which is domain-name according to the RFC 2132: https://tools.ietf.org/html/rfc2132#section-5.3

To test that option, there is spawned VM connected to the port with configured extra_dhcp_opts and test asserts that search domain name is configured inside VM in /etc/resolv.conf file

neutron_tempest_plugin.scenario.test_dns_integration module

class neutron_tempest_plugin.scenario.test_dns_integration.BaseDNSIntegrationTests(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase, object

class neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationAdminTests(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_dns_integration.BaseDNSIntegrationTests, neutron_tempest_plugin.api.base.BaseAdminNetworkTest

test_fip_admin_delete()

Test idempotent id: d44cd5b8-ac67-4965-96ff-cb77ab6aea8b

test_port_on_special_network()

Test idempotent id: fa6477ce-a12b-41da-b671-5a3bbdafab07

class neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationDomainPerProjectTests(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_dns_integration.BaseDNSIntegrationTests

test_fip_admin_delete()

Test idempotent id: ac89db9b-5ca4-43bd-85ba-40fbeb47e208

test_port_with_dns_name()

Test idempotent id: 43a67509-3161-4125-8f2c-0d4a67599721

class neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationExtraTests(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_dns_integration.BaseDNSIntegrationTests

test_port_with_publishing_subnet()

Test idempotent id: e10e0e5d-69ac-4172-b39f-27ab344b7f99

class neutron_tempest_plugin.scenario.test_dns_integration.DNSIntegrationTests(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_dns_integration.BaseDNSIntegrationTests

test_fip()

Test idempotent id: a8f2fade-8d5c-40f9-80f0-3de4b8d91985

test_server_with_fip()

Test idempotent id: 850ee378-4b5a-4f71-960e-0e7b12e03a34

neutron_tempest_plugin.scenario.test_dvr module

class neutron_tempest_plugin.scenario.test_dvr.NetworkDvrTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase, neutron_tempest_plugin.scenario.test_dvr.NetworkTestMixin

test_vm_reachable_through_compute()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a283d9d344

Check that the VM is reachable through compute node.

The test is done by putting the SNAT port down on controller node.

class neutron_tempest_plugin.scenario.test_dvr.NetworkTestMixin

Bases: object

neutron_tempest_plugin.scenario.test_fip64 module

class neutron_tempest_plugin.scenario.test_fip64.Fip64(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_fip64()

Test idempotent id: 63f7da91-c7dd-449b-b50b-1c56853ce0ef

neutron_tempest_plugin.scenario.test_floatingip module

class neutron_tempest_plugin.scenario.test_floatingip.DefaultSnatToExternal(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_nested_snat_external_ip()

Test idempotent id: b911b124-b6cb-449d-83d9-b34f3665741d

Check connectivity to an external IP from a nested network.

test_snat_external_ip()

Test idempotent id: 3d73ea1a-27c6-45a9-b0f8-04a283d9d764

Check connectivity to an external IP

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIPPortDetailsTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_floatingip_port_details()

Test idempotent id: a663aeee-dd81-492b-a207-354fd6284dbe

Tests the following:

  1. Create a port with floating ip in Neutron.

  2. Create two servers in Nova.

  3. Attach the port to the server.

  4. Detach the port from the server.

  5. Attach the port to the second server.

  6. Detach the port from the second server.

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIPQosTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.test_qos.QoSTestMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_qos()

Test idempotent id: 5eb48aea-eaba-4c20-8a6f-7740070a0aa3

Test floating IP is binding to a QoS policy with

ingress and egress bandwidth limit rules. And it applied correctly by sending a file from the instance to the test node. Then calculating the bandwidth every ~1 sec by the number of bits received / elapsed time.

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIpMultipleRoutersTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_reuse_ip_address_with_other_fip_on_other_router()

Test idempotent id: b0382ab3-3c86-4415-84e3-649a8b040dab

Reuse IP address by another floating IP on another router

Scenario:
  1. Create and connect a router to the external network.

  2. Create and connect an internal network to the router.

  3. Create and connect 2 VMs to the internal network.

  4. Create FIPs in the external network for the VMs.

  5. Make sure that VM1 can ping VM2 FIP address.

  6. Create and connect one more router to the external network.

  7. Create and connect an internal network to the second router.

  8. Create and connect a VM (VM3) to the internal network of the second router.

  9. Delete VM2 FIP but save IP address that it used. The FIP is deleted just before the creation of the new IP to “reserve” the IP address associated (see LP#1880976).

  10. Create a FIP for the VM3 in the external network with the same IP address that was used for VM2.

  11. Make sure that now VM1 is able to reach VM3 using the FIP.

Note, the scenario passes only in case corresponding ARP update was sent to the external network when reusing same IP address for another FIP.

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIpSameNetwork(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_east_west_1(src_has_fip, dest_has_fip)

Test idempotent id: 05c4e3b3-7319-4052-90ad-e8916436c23b

test_east_west_2(src_has_fip, dest_has_fip)

Test idempotent id: 05c4e3b3-7319-4052-90ad-e8916436c23b

test_east_west_3(src_has_fip, dest_has_fip)

Test idempotent id: 05c4e3b3-7319-4052-90ad-e8916436c23b

test_east_west_4(src_has_fip, dest_has_fip)

Test idempotent id: 05c4e3b3-7319-4052-90ad-e8916436c23b

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIpSeparateNetwork(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_east_west_1(src_has_fip, dest_has_fip)

Test idempotent id: f18f0090-3289-4783-b956-a0f8ac511e8b

test_east_west_2(src_has_fip, dest_has_fip)

Test idempotent id: f18f0090-3289-4783-b956-a0f8ac511e8b

test_east_west_3(src_has_fip, dest_has_fip)

Test idempotent id: f18f0090-3289-4783-b956-a0f8ac511e8b

test_east_west_4(src_has_fip, dest_has_fip)

Test idempotent id: f18f0090-3289-4783-b956-a0f8ac511e8b

class neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin

Bases: object

class neutron_tempest_plugin.scenario.test_floatingip.TestFloatingIPUpdate(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_floatingip.FloatingIpTestCasesMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_floating_ip_update()

Test idempotent id: 1bdd849b-03dd-4b8f-994f-457cf8a36f93

Test updating FIP with another port.

The test creates two servers and attaches floating ip to first server. Then it checks server is accesible using the FIP. FIP is then associated with the second server and connectivity is checked again.

neutron_tempest_plugin.scenario.test_internal_dns module

class neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSBase(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

Base class of useful resources and functionalities for test class.

class neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_internal_dns.InternalDNSBase

Tests internal DNS capabilities.

test_create_and_update_port_with_dns_name()

Test idempotent id: db5e612f-f17f-4974-b5f1-9fe89f4a6fc9

Test creation of port with correct internal dns-name (hostname).

test_dns_domain_and_name()

Test idempotent id: 988347de-07af-471a-abfa-65aea9f452a6

Test the ability to ping a VM’s hostname from another VM.

  1. Create two VMs on the same network, giving each a name

  2. SSH in to the first VM:
    • ping the other VM’s internal IP

    • ping the other VM’s hostname

neutron_tempest_plugin.scenario.test_ipv6 module

class neutron_tempest_plugin.scenario.test_ipv6.IPv6Test(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_ipv6_hotplug_dhcpv6stateless()

Test idempotent id: 9aaedbc4-986d-42d5-9177-3e721728e7e0

test_ipv6_hotplug_slaac()

Test idempotent id: b13e5408-5250-4a42-8e46-6996ce613e91

neutron_tempest_plugin.scenario.test_ipv6.configure_eth_connection_profile_NM(ssh)

Prepare a Network manager profile for ipv6 port

By default the NetworkManager uses IPv6 privacy format it isn’t supported by neutron then we create a ether profile with eui64 supported format

@param ssh: RemoteClient ssh instance to server

neutron_tempest_plugin.scenario.test_ipv6.nmcli_command_exists(ssh)
neutron_tempest_plugin.scenario.test_ipv6.sysconfig_network_scripts_dir_exists(ssh)
neutron_tempest_plugin.scenario.test_ipv6.turn_nic6_on(ssh, ipv6_port, config_nic=True)

Turns the IPv6 vNIC on

Required because guest images usually set only the first vNIC on boot. Searches for the IPv6 vNIC’s MAC and brings it up. # NOTE(slaweq): on RHEL based OS ifcfg file for new interface is # needed to make IPv6 working on it, so if # /etc/sysconfig/network-scripts directory exists ifcfg-%(nic)s file # should be added in it

@param ssh: RemoteClient ssh instance to server @param ipv6_port: port from IPv6 network attached to the server

neutron_tempest_plugin.scenario.test_local_ip module

class neutron_tempest_plugin.scenario.test_local_ip.LocalIPTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_local_ip_connectivity()

Test idempotent id: 3aa4b288-011a-4aa2-9024-19ad2ce40bfd

neutron_tempest_plugin.scenario.test_mac_learning module

class neutron_tempest_plugin.scenario.test_mac_learning.MacLearningTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_mac_learning_vms_on_same_network()

Test idempotent id: 013686ac-23b1-23e4-8361-10b1c98a2861

Test mac learning works in a network.

The receiver server will receive all the sent packets. The non receiver should not receive any.

neutron_tempest_plugin.scenario.test_mac_learning.get_receiver_script(result_file, packets_expected)

Script that listen icmp echos and write the output on result_file.

neutron_tempest_plugin.scenario.test_mac_learning.get_sender_script(result_file, receiver_address, completed_message)

Script that sends packets to the receiver server.

neutron_tempest_plugin.scenario.test_metadata module

class neutron_tempest_plugin.scenario.test_metadata.MetadataTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

Test metadata access over IPv6 tenant subnet.

Please note that there is metadata over IPv4 test coverage in tempest:

tempest.scenario.test_server_basic_ops .TestServerBasicOps.test_server_basic_ops

test_metadata_ipv6_only_network()

Test idempotent id: 7542892a-d132-471c-addb-172dcf888ff6

test_metadata_routed()

Test idempotent id: e680949a-f1cc-11ea-b49a-cba39bbbe5ad

class neutron_tempest_plugin.scenario.test_metadata.Server(floating_ip, server, ssh_client)

Bases: tuple

neutron_tempest_plugin.scenario.test_migration module

class neutron_tempest_plugin.scenario.test_migration.NetworkMigrationFromDVR(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_migration.NetworkMigrationTestBase

test_from_dvr_to_dvr_ha()

Test idempotent id: 25304a51-93a8-4cf3-9523-bce8b4eaecf8

test_from_dvr_to_ha()

Test idempotent id: a00d5ad7-8509-4bb0-bdd2-7f1ee052d1cd

test_from_dvr_to_legacy()

Test idempotent id: e5cac02c-248d-4aac-bd5e-9d47c5197307

class neutron_tempest_plugin.scenario.test_migration.NetworkMigrationFromDVRHA(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_migration.NetworkMigrationTestBase

test_from_dvr_ha_to_dvr()

Test idempotent id: d6bedff1-72be-4a9a-8ea2-dc037cd838e0

test_from_dvr_ha_to_ha()

Test idempotent id: 55957267-4e84-4314-a2f7-7cd36a2df04b

test_from_dvr_ha_to_legacy()

Test idempotent id: 1be9b2e2-379c-40a4-a269-6687b81df691

class neutron_tempest_plugin.scenario.test_migration.NetworkMigrationFromHA(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_migration.NetworkMigrationTestBase

test_from_ha_to_dvr()

Test idempotent id: 42260eea-5d56-4d30-b62a-a62694dfe4d5

test_from_ha_to_dvr_ha()

Test idempotent id: e4149576-248b-43fa-9d0b-a5c2f51967ce

test_from_ha_to_legacy()

Test idempotent id: b4e68ac0-3b76-4306-ae8a-51cf4d363b22

class neutron_tempest_plugin.scenario.test_migration.NetworkMigrationFromLegacy(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_migration.NetworkMigrationTestBase

test_from_legacy_to_dvr()

Test idempotent id: 23724222-483a-4129-bc15-7a9278f3828b

test_from_legacy_to_dvr_ha()

Test idempotent id: fe169f2c-6ed3-4eb0-8afe-2d540c4b49e2

test_from_legacy_to_ha()

Test idempotent id: 09d85102-994f-4ff9-bf3e-17051145ca12

class neutron_tempest_plugin.scenario.test_migration.NetworkMigrationTestBase(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase, neutron_tempest_plugin.scenario.test_dvr.NetworkTestMixin

neutron_tempest_plugin.scenario.test_mtu module

class neutron_tempest_plugin.scenario.test_mtu.NetworkMtuBaseTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

class neutron_tempest_plugin.scenario.test_mtu.NetworkMtuTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_mtu.NetworkMtuBaseTest

test_connectivity_min_max_mtu()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a273d9d344

class neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_mtu.NetworkMtuBaseTest

test_connectivity_min_max_mtu()

Test idempotent id: bc470200-d8f4-4f07-b294-1b4cbaaa35b9

neutron_tempest_plugin.scenario.test_multicast module

class neutron_tempest_plugin.scenario.test_multicast.BaseMulticastTest

Bases: object

test_multicast_between_vms_on_same_network()

Test idempotent id: 113486fc-24c9-4be4-8361-03b1c9892867

Test multicast messaging between two servers on the same network

[Sender server] -> (Multicast network) -> [Receiver server]

class neutron_tempest_plugin.scenario.test_multicast.MulticastTestIPv4(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_multicast.BaseMulticastTest, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

neutron_tempest_plugin.scenario.test_multicast.get_receiver_script(group, port, hello_message, ack_message, result_file)
neutron_tempest_plugin.scenario.test_multicast.get_sender_script(group, port, message, result_file)
neutron_tempest_plugin.scenario.test_multicast.get_unregistered_script(interface, group, result_file)

neutron_tempest_plugin.scenario.test_multiple_gws module

class neutron_tempest_plugin.scenario.test_multiple_gws.BFDContainer(name: str, image: Optional[neutron_tempest_plugin.scenario.test_multiple_gws.FRROCIImage] = None)

Bases: neutron_tempest_plugin.scenario.test_multiple_gws.FRRContainer

class neutron_tempest_plugin.scenario.test_multiple_gws.FRRContainer(name: str, image: neutron_tempest_plugin.scenario.test_multiple_gws.FRROCIImage)

Bases: os_ken.tests.integrated.common.docker_base.Container

class neutron_tempest_plugin.scenario.test_multiple_gws.FRROCIImage(daemons: Tuple[str], baseimage: Optional[str] = None, use_existing: bool = False)

Bases: os_ken.tests.integrated.common.docker_base.DockerImage

neutron_tempest_plugin.scenario.test_port_forwardings module

class neutron_tempest_plugin.scenario.test_port_forwardings.PortForwardingTestJSON(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_port_forwarding_editing_and_deleting_tcp_rule()

Test idempotent id: aa19d46c-a4a6-11ea-bb37-0242ac130002

test_port_forwarding_editing_and_deleting_udp_rule()

Test idempotent id: 6d05b1b2-6109-4c30-b402-1503f4634acb

test_port_forwarding_to_2_fixed_ips()

Test idempotent id: 5971881d-06a0-459e-b636-ce5d1929e2d4

test_port_forwarding_to_2_servers()

Test idempotent id: ab40fc48-ca8d-41a0-b2a3-f6679c847bfe

neutron_tempest_plugin.scenario.test_ports module

class neutron_tempest_plugin.scenario.test_ports.PortsTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_port_with_fixed_ip()

Test idempotent id: 62e32802-1d21-11eb-b322-74e5f9e2a801

Test scenario:

  1. Get the last IP from the range of Subnet “Allocation pool”

  2. Create Port with fixed_ip resolved in #1

  3. Create a VM using updated Port in #2 and add Floating IP

  4. Check SSH access to VM

test_previously_used_port()

Test idempotent id: 5500797e-b8c2-4e07-a5e0-89fa4e814965

neutron_tempest_plugin.scenario.test_portsecurity module

class neutron_tempest_plugin.scenario.test_portsecurity.PortSecurityTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_port_security_removed_added_stateful_sg()

Test idempotent id: 61ab176e-d48b-42b7-b38a-1ba571ecc033

test_port_security_removed_added_stateless_sg()

Test idempotent id: 2f4005e1-cee1-40e5-adbd-b3e3cf218065

neutron_tempest_plugin.scenario.test_qos module

class neutron_tempest_plugin.scenario.test_qos.QoSTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_qos.QoSTestMixin, neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_attach_previously_used_port_to_new_instance()

Test idempotent id: 66e5673e-0522-11ea-8d71-362b9e155667

The test spawns new instance using port with QoS policy.

        Ports with attached QoS policy could be used multiple times.         The policy rules have to be enforced on the new machines.

test_create_instance_using_network_with_existing_policy()

Test idempotent id: 4eee64da-5646-11ea-82b4-0242ac130003

test_qos_basic_and_update()

Test idempotent id: 00682a0c-b72e-11e8-b81e-8c16450ea513

This test covers following scenarios:

1) Create a QoS policy associated with the network. Expected result: BW is limited according the values set in QoS policy rule.

2) Update QoS policy associated with the network. Expected result: BW is limited according the new values set in QoS policy rule.

3) Create a new QoS policy associated with the VM port. Expected result: BW is limited according the values set in new QoS policy rule. Note: Neutron port is prioritized higher than Network, means that: “Neutron Port Priority” is also covered.

4) Update QoS policy associated with the VM port. Expected result: BW is limited according the new values set in QoS policy rule.

class neutron_tempest_plugin.scenario.test_qos.QoSTestMixin

Bases: object

neutron_tempest_plugin.scenario.test_security_groups module

class neutron_tempest_plugin.scenario.test_security_groups.BaseNetworkSecGroupTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

class neutron_tempest_plugin.scenario.test_security_groups.StatefulNetworkSecGroupTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_security_groups.BaseNetworkSecGroupTest

test_connectivity_between_vms_using_different_sec_groups()

Test idempotent id: 4a724164-bbc0-4029-a844-644ece66c026

test_default_sec_grp_scenarios()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a283d9d764

test_established_tcp_session_after_re_attachinging_sg()

Test idempotent id: 01f0ddca-b049-47eb-befd-82acb502c9ec

Test existing connection remain open after sg has been re-attached

Verifies that new packets can pass over the existing connection when the security group has been removed from the server and then added back

test_intra_sg_isolation()

Test idempotent id: f07d0159-8f9e-4faa-87f5-a869ab0ad490

Test intra security group isolation

This test creates a security group that does not allow ingress packets from vms of the same security group. The purpose of this test is to verify that intra SG traffic is properly blocked, while traffic like metadata and DHCP remains working due to the allow-related behavior of the egress rules (added via default).

test_ip_prefix()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a283d9d664

test_ip_prefix_negative()

Test idempotent id: a01cd2ef-3cfc-4614-8aac-9d1333ea21dd

test_multiple_ports_portrange_remote()

Test idempotent id: f07d0159-8f9e-4faa-87f5-a869ab0ad489

test_multiple_ports_secgroup_inheritance()

Test idempotent id: f07d0159-8f9e-4faa-87f5-a869ab0ad488

test_overlapping_sec_grp_rules()

Test idempotent id: cd66b826-d86c-4fb4-ab37-17c8391753cb

test_protocol_number_rule()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a283d9d864

test_remote_group()

Test idempotent id: 7ed39b86-006d-40fb-887a-ae46693dabc9

test_remote_group_and_remote_address_group()

Test idempotent id: 678dd4c0-2953-4626-b89c-8e7e4110ec4b

test_remove_sec_grp_from_active_vm()

Test idempotent id: 96dcd5ff-9d45-4e0d-bea0-0b438cbd388f

test_two_sec_groups()

Test idempotent id: 3d73ec1a-2ec6-45a9-b0f8-04a283d9d964

class neutron_tempest_plugin.scenario.test_security_groups.StatelessNetworkSecGroupIPv4Test(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_security_groups.BaseNetworkSecGroupTest

test_connectivity_between_vms_using_different_sec_groups()

Test idempotent id: 7ede9ab5-a615-46c5-9dea-cf2aa1ea43cb

test_default_sec_grp_scenarios()

Test idempotent id: 9e193e3f-56f2-4f4e-886c-988a147958ef

test_fragmented_traffic_is_accepted()

Test idempotent id: 14c4af2c-8077-4756-a6e3-6bebd642ed92

test_ip_prefix()

Test idempotent id: 07985496-58da-4c1f-a6ef-2fdd88128a81

test_ip_prefix_negative()

Test idempotent id: 1ad469c4-0d8f-42ae-8ec3-46cc424565c4

test_multiple_ports_portrange_remote()

Test idempotent id: 4043ca0a-eabb-4198-be53-3d3051cc0804

test_multiple_ports_secgroup_inheritance()

Test idempotent id: 4f1eb6db-ae7f-4f26-b371-cbd8363f9b0b

test_overlapping_sec_grp_rules()

Test idempotent id: bfe25138-ceac-4944-849a-b9b90aff100f

test_packets_of_any_connection_state_can_reach_dest()

Test idempotent id: c3bb8073-97a2-4bea-a6fb-0a9d2e4df13f

test_protocol_number_rule()

Test idempotent id: afae8654-a389-4887-b21d-7f07ec350177

test_reattach_sg_with_changed_mode()

Test idempotent id: 8d4753cc-cd7a-48a0-8ece-e11efce2af10

test_remote_group()

Test idempotent id: fa1e93bf-67c5-4590-9962-38ee1f43a46a

test_remote_group_and_remote_address_group()

Test idempotent id: 9fae530d-2711-4c61-a4a5-8efe6e58ab14

test_remove_sec_grp_from_active_vm()

Test idempotent id: e4340e47-39cd-49ed-967c-fc2c40b47c5a

test_two_sec_groups()

Test idempotent id: b51cc0eb-8f9a-49e7-96ab-61cd31243b67

class neutron_tempest_plugin.scenario.test_security_groups.StatelessSecGroupDualStackBase(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_security_groups.BaseNetworkSecGroupTest

class neutron_tempest_plugin.scenario.test_security_groups.StatelessSecGroupDualStackDHCPv6StatelessTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_security_groups.StatelessSecGroupDualStackBase

test_default_sec_grp_scenarios()

Test idempotent id: c61c127c-e08f-4ddf-87a3-58b3c86e5476

class neutron_tempest_plugin.scenario.test_security_groups.StatelessSecGroupDualStackSlaacTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.test_security_groups.StatelessSecGroupDualStackBase

test_default_sec_grp_scenarios()

Test idempotent id: e7d64384-ea6a-40aa-b454-854f0990153c

neutron_tempest_plugin.scenario.test_security_groups.get_capture_script(interface, tcp_port, packet_types, result_file)

neutron_tempest_plugin.scenario.test_trunk module

class neutron_tempest_plugin.scenario.test_trunk.ServerWithTrunkPort(port, subport, trunk, floating_ip, server, ssh_client)

Bases: tuple

class neutron_tempest_plugin.scenario.test_trunk.TrunkTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_parent_port_connectivity_after_trunk_deleted_lb()

Test idempotent id: d61cbdf6-1896-491c-b4b4-871caf7fbffe

test_subport_connectivity()

Test idempotent id: a8a02c9b-b453-49b5-89a2-cce7da66bbcb

test_subport_connectivity_soft_reboot()

Test idempotent id: a8a02c9b-b453-49b5-89a2-cce7da6680fb

test_trunk_subport_lifecycle()

Test idempotent id: bb13fe28-f152-4000-8131-37890a40c79e

Test trunk creation and subport transition to ACTIVE status.

This is a basic test for the trunk extension to ensure that we can create a trunk, attach it to a server, add/remove subports, while ensuring the status transitions as appropriate.

This test does not assert any dataplane behavior for the subports. It’s just a high-level check to ensure the agents claim to have wired the port correctly and that the trunk port itself maintains connectivity.

test_trunk_vm_migration()

Test idempotent id: ecd7de30-1c90-4280-b97c-1bed776d5d07

Test connectivity after migration of the server with trunk

A successfully migrated server shows a VERIFY_RESIZE status that requires confirmation. Need to reconfigure VLAN interface on server side after migration is finished as the configuration doesn’t survive the reboot.

neutron_tempest_plugin.scenario.test_vlan_transparency module

class neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest(*args, **kwargs)

Bases: neutron_tempest_plugin.scenario.base.BaseTempestTestCase

test_vlan_transparent_allowed_address_pairs()

Test idempotent id: 2dd03b4f-9c20-4cda-8c6a-40fa453ec69a

test_vlan_transparent_port_sec_disabled()

Test idempotent id: a2694e3a-6d4d-4a23-9fcc-c3ed3ef37b16

Module contents