2 Documentation Test suite for running tempest tests. It is assumed that the test environment
3 ... is already deployed and ready.
4 Suite Setup Log In To Tempest Executor And Setup Test Environment
5 Suite Teardown Clean Up After Running Tempest
6 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
7 Test Teardown Run Keywords Get Test Teardown Debugs
8 Test Template DevstackUtils.Run Tempest Tests
9 Library OperatingSystem
11 Resource ../../../libraries/DevstackUtils.robot
12 Resource ../../../libraries/OpenStackOperations.robot
13 Resource ../../../libraries/SetupUtils.robot
14 Resource ../../../libraries/SSHKeywords.robot
15 Variables ../../../variables/Variables.py
16 Resource ../../../variables/netvirt/Variables.robot
19 ${blacklist_file} /tmp/blacklist.txt
20 @{stable/mitaka_exclusion_regexes} test_routers_negative.RoutersNegativeIpV6Test.test_router_set_gateway_used_ip_returns_409 test_routers_negative.RoutersNegativeTest.test_router_set_gateway_used_ip_returns_409
21 @{stable/newton_exclusion_regexes} ${EMPTY}
22 @{stable/ocata_exclusion_regexes} ${EMPTY}
23 ${tempest_config_file} /opt/stack/tempest/etc/tempest.conf
24 ${external_physical_network} physnet1
25 ${external_net_name} external-net
26 ${external_subnet_name} external-subnet
27 # Parameter values below are based on releng/builder - changing them requires updates in releng/builder as well
28 ${external_gateway} 10.10.10.250
29 ${external_subnet_allocation_pool} start=10.10.10.2,end=10.10.10.249
30 ${external_subnet} 10.10.10.0/24
34 ${TEST_NAME} ${blacklist_file} ${tempest_config_file} timeout=900s
36 tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps
37 ${TEST_NAME} ${blacklist_file} ${tempest_config_file} timeout=900s
39 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks
40 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
42 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic
43 [Tags] skip_if_stable/mitaka
44 # Failing due to default security rules behavior missing in Mitaka
45 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
47 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_mtu_sized_frames
48 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
50 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops
51 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
53 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_preserve_preexisting_port
54 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
56 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_router_rescheduling
57 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
59 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details
60 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
62 tempest.scenario.test_aggregates_basic_ops.TestAggregatesBasicOps.test_aggregate_basic_ops
63 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
65 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause
66 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
68 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_stop_start
69 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
71 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_reboot
72 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
74 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_rebuild
75 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
77 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_suspend_resume
78 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
80 tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops
81 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
83 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port
84 [Tags] skip_if_transparent skip_if_stable/mitaka
85 # Failing due to default security rules behavior missing in Mitaka, and also in all transparent runs
86 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
88 tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_dhcp6_stateless_from_os
89 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
91 tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os
92 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
94 tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os
95 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
97 tempest.scenario.test_network_v6.TestGettingAddress.test_slaac_from_os
98 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
101 Log In To Tempest Executor And Setup Test Environment
102 [Documentation] Initialize SetupUtils, open SSH connection to a devstack system and source the openstack
103 ... credentials needed to run the tempest tests. The (sometimes empty) tempest blacklist file will be created
104 ... and pushed to the tempest executor.
105 Create Blacklist File
106 SetupUtils.Setup_Utils_For_Setup_And_Teardown
107 # source_pwd is expected to exist in the below Create Network, Create Subnet keywords. Might be a bug.
108 ${source_pwd} Set Variable yes
109 Set Suite Variable ${source_pwd}
110 # Tempest tests need an existing external network in order to create routers.
111 Create Network ${external_net_name} --external --default --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK}
112 Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway} --allocation-pool ${external_subnet_allocation_pool}
114 ${control_node_conn_id}= SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
115 SSHKeywords.Flexible SSH Login ${OS_USER}
116 Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
117 Write Commands Until Prompt sudo rm -rf /opt/stack/tempest/.testrepository
118 ${net_id}= Get Net Id ${external_net_name} ${control_node_conn_id}
119 Tempest Conf Add External Network ${net_id}
121 Tempest Conf Add External Network
122 [Arguments] ${external_network_id}
123 [Documentation] Tempest will be run with a config file - this function will add the
124 ... given external network ID to the configuration file.
125 Modify Config In File On Existing SSH Connection ${tempest_config_file} set network public_network_id ${external_network_id}
126 Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT debug False
127 Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT log_level INFO
128 Write Commands Until Prompt sudo cat ${tempest_config_file}
129 Write Commands Until Prompt sudo chmod 777 ${tempest_config_file}
131 Modify Config In File On Existing SSH Connection
132 [Arguments] ${config_file} ${modifier} ${config_section} ${config_key} ${config_value}=${EMPTY}
133 [Documentation] uses crudini to populate oslo cofg file.
134 # this keyword is only one line so seems like extra overhead, but this may be a good candidate to move
135 # to a library at some point, when/if other suites need to use it, so wanted to make it generic.
136 Write Commands Until Prompt sudo -E crudini --${modifier} ${config_file} ${config_section} ${config_key} ${config_value}
138 Clean Up After Running Tempest
139 [Documentation] Clean up any extra leftovers that were created to allow tempest tests to run.
140 Delete Network ${external_net_name}
142 Close All Connections
144 Create Blacklist File
145 [Documentation] For each exclusion regex in the required @{${OPENSTACK_BRANCH}_exclusion_regexes} list a new
146 ... line will be created in the required ${blacklist_file} location. This file is pushed to the OS_CONTROL_NODE
147 ... which is assumed to be the tempest executor.
148 OperatingSystem.Create File ${blacklist_file}
149 : FOR ${exclusion} IN @{${OPENSTACK_BRANCH}_exclusion_regexes}
150 \ OperatingSystem.Append To File ${blacklist_file} ${exclusion}\n
151 Log File ${blacklist_file}
152 SSHKeywords.Copy File To Remote System ${OS_CONTROL_NODE_IP} ${blacklist_file} ${blacklist_file}