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
10 Resource ../../../libraries/DevstackUtils.robot
11 Resource ../../../libraries/OpenStackOperations.robot
12 Resource ../../../libraries/SetupUtils.robot
13 Resource ../../../libraries/Utils.robot
14 Variables ../../../variables/Variables.py
15 Resource ../../../variables/netvirt/Variables.robot
18 ${blacklist_file} /tmp/blacklist.txt
19 @{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
20 @{stable/newton_exclusion_regexes} ${EMPTY}
21 ${tempest_config_file} /opt/stack/tempest/etc/tempest.conf
22 ${external_physical_network} physnet1
23 ${external_net_name} external-net
24 ${external_subnet_name} external-subnet
25 # Parameter values below are based on releng/builder - changing them requires updates in releng/builder as well
26 ${external_gateway} 10.10.10.250
27 ${external_subnet_allocation_pool} start=10.10.10.2,end=10.10.10.249
28 ${external_subnet} 10.10.10.0/24
29 ${network_vlan_id} 167
33 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
35 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks
36 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
38 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic
39 [Tags] skip_if_stable/mitaka
40 # Failing due to default security rules behavior missing in Mitaka
41 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
43 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_mtu_sized_frames
44 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
46 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops
47 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
49 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_preserve_preexisting_port
50 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
52 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_router_rescheduling
53 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
55 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details
56 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
58 tempest.scenario.test_aggregates_basic_ops.TestAggregatesBasicOps.test_aggregate_basic_ops
59 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
61 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause
62 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
64 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_stop_start
65 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
67 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_reboot
68 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
70 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_rebuild
71 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
73 tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_suspend_resume
74 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
76 tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops
77 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
79 tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port
80 [Tags] skip_if_transparent skip_if_stable/mitaka
81 # Failing due to default security rules behavior missing in Mitaka, and also in all transparent runs
82 ${TEST_NAME} ${blacklist_file} ${tempest_config_file}
85 Log In To Tempest Executor And Setup Test Environment
86 [Documentation] Initialize SetupUtils, open SSH connection to a devstack system and source the openstack
87 ... credentials needed to run the tempest tests. The (sometimes empty) tempest blacklist file will be created
88 ... and pushed to the tempest executor.
90 SetupUtils.Setup_Utils_For_Setup_And_Teardown
91 # source_pwd is expected to exist in the below Create Network, Create Subnet keywords. Might be a bug.
92 ${source_pwd} Set Variable yes
93 Set Suite Variable ${source_pwd}
94 # Tempest tests need an existing external network in order to create routers.
95 : FOR ${feature_name} IN @{legacy_feature_list}
96 \ ${feature_check_status}= Run Keyword And Return Status Verify Feature Is Installed ${feature_name}
97 \ Exit For Loop If '${feature_check_status}' == 'True'
98 Run Keyword If '${feature_check_status}' == 'True' Create Network ${external_net_name} --router:external --provider:network_type=flat --provider:physical_network=${external_physical_network}
99 ... ELSE Create Network ${external_net_name} --router:external --provider:network_type=vlan --provider:physical_network=${PUBLIC_PHYSICAL_NETWORK} --provider:segmentation_id=${network_vlan_id}
100 Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway} --allocation-pool ${external_subnet_allocation_pool}
102 ${control_node_conn_id}= SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
103 Utils.Flexible SSH Login ${OS_USER}
104 Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
105 Write Commands Until Prompt sudo rm -rf /opt/stack/tempest/.testrepository
106 ${net_id}= Get Net Id ${external_net_name} ${control_node_conn_id}
107 Tempest Conf Add External Network ${net_id}
109 Tempest Conf Add External Network
110 [Arguments] ${external_network_id}
111 [Documentation] Tempest will be run with a config file - this function will add the
112 ... given external network ID to the configuration file.
113 Modify Config In File On Existing SSH Connection ${tempest_config_file} set network public_network_id ${external_network_id}
114 Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT debug False
115 Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT log_level INFO
116 Write Commands Until Prompt sudo cat ${tempest_config_file}
117 Write Commands Until Prompt sudo chmod 777 ${tempest_config_file}
119 Modify Config In File On Existing SSH Connection
120 [Arguments] ${config_file} ${modifier} ${config_section} ${config_key} ${config_value}=${EMPTY}
121 [Documentation] uses crudini to populate oslo cofg file.
122 # this keyword is only one line so seems like extra overhead, but this may be a good candidate to move
123 # to a library at some point, when/if other suites need to use it, so wanted to make it generic.
124 Write Commands Until Prompt sudo -E crudini --${modifier} ${config_file} ${config_section} ${config_key} ${config_value}
126 Clean Up After Running Tempest
127 [Documentation] Clean up any extra leftovers that were created to allow tempest tests to run.
128 Delete Network ${external_net_name}
130 Close All Connections
132 Create Blacklist File
133 [Documentation] For each exclusion regex in the required @{${OPENSTACK_BRANCH}_exclusion_regexes} list a new
134 ... line will be created in the required ${blacklist_file} location. This file is pushed to the OS_CONTROL_NODE
135 ... which is assumed to be the tempest executor.
136 Create File ${blacklist_file}
137 : FOR ${exclusion} IN @{${OPENSTACK_BRANCH}_exclusion_regexes}
138 \ Append To File ${blacklist_file} ${exclusion}\n
139 Log File ${blacklist_file}
140 SSHKeywords.Copy File To Remote System ${OS_CONTROL_NODE_IP} ${blacklist_file} ${blacklist_file}