... is already deployed and ready.
Suite Setup Log In To Tempest Executor And Setup Test Environment
Suite Teardown Clean Up After Running Tempest
-Test Setup Log Testcase Start To Controller Karaf
+Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown Run Keywords Get Test Teardown Debugs
+Test Template DevstackUtils.Run Tempest Tests
Library SSHLibrary
-Resource ../../../libraries/Utils.robot
Resource ../../../libraries/DevstackUtils.robot
+Resource ../../../libraries/OpenStackOperations.robot
+Resource ../../../libraries/SetupUtils.robot
+Resource ../../../libraries/Utils.robot
Variables ../../../variables/Variables.py
*** Variables ***
-${exclusion_regex} 'metering|test_l3_agent_scheduler.L3AgentSchedulerTestJSON|test_extensions.ExtensionsTestJSON.test_list_show_extensions'
-${tempest_config_file} ./tempest.conf
+${exclusion_regex} 'metering|test_l3_agent_scheduler.L3AgentSchedulerTestJSON|test_extensions.ExtensionsTestJSON.test_list_show_extensions|test_routers_dvr.RoutersTestDVR.test_centralized_router_update_to_dvr'
+${tempest_config_file} /opt/stack/tempest/etc/tempest.conf
+${external_physical_network} physnet1
+${external_net_name} external-net
+${external_subnet_name} external-subnet
+${external_gateway} 10.10.10.250
+${external_subnet} 10.10.10.0/24
*** Test Cases ***
tempest.api.network
- Run Tempest Tests ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic
+ [Tags] skip_if_stable/mitaka
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_mtu_sized_frames
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_preserve_preexisting_port
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_router_rescheduling
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
-tempest.scenario.test_minimum_basic
- [Tags] exclude
- Run Tempest Tests ${TEST_NAME}
+tempest.scenario.test_aggregates_basic_ops.TestAggregatesBasicOps.test_aggregate_basic_ops
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_stop_start
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_reboot
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_rebuild
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_suspend_resume
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
+
+tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port
+ [Tags] skip_if_transparent
+ ${TEST_NAME} ${exclusion_regex} ${tempest_config_file}
*** Keywords ***
Log In To Tempest Executor And Setup Test Environment
- [Documentation] Open SSH connection to a devstack system and source the openstack
+ [Documentation] Initialize SetupUtils, open SSH connection to a devstack system and source the openstack
... credentials needed to run the tempest tests
+ SetupUtils.Setup_Utils_For_Setup_And_Teardown
# source_pwd is expected to exist in the below Create Network, Create Subnet keywords. Might be a bug.
${source_pwd} Set Variable yes
Set Suite Variable ${source_pwd}
- # Tempest network.api tests need an existing external network in order to create
- # routers against. Creating that here.
- Create Network external --router:external=True
- Create Subnet external external-subnet 10.0.0.0/24
+ # Tempest tests need an existing external network in order to create routers.
+ Create Network ${external_net_name} --router:external --provider:network_type=flat --provider:physical_network=${external_physical_network}
+ Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway}
List Networks
${control_node_conn_id}= SSHLibrary.Open Connection ${OS_CONTROL_NODE_IP} prompt=${DEFAULT_LINUX_PROMPT_STRICT}
Utils.Flexible SSH Login ${OS_USER}
Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
- ${net_id}= Get Net Id external ${control_node_conn_id}
- Generate Tempest Conf File ${net_id}
+ Write Commands Until Prompt sudo rm -rf /opt/stack/tempest/.testrepository
+ ${net_id}= Get Net Id ${external_net_name} ${control_node_conn_id}
+ Tempest Conf Add External Network ${net_id}
-Generate Tempest Conf File
+Tempest Conf Add External Network
[Arguments] ${external_network_id}
- [Documentation] Tempest will be run with a config file ./tempest.conf. That file needs to be auto
- ... generated first, then updated with the current openstack info, including the specific external
- ... network id. There was trouble with permissions in upstream CI, so everything is done with sudo
- ... and even the tempest.conf is changed to 777 permissions.
- Write Commands Until Prompt source ${DEVSTACK_DEPLOY_PATH}/openrc admin admin
- Write Commands Until Prompt cd /opt/stack/tempest
- Write Commands Until Prompt sudo -E oslo-config-generator --config-file $(find . -name config-generator.tempest.conf) --output-file ${tempest_config_file}
- # TODO: the below set of configs may not all be neccessary, so we could try to trim out what's not needed.
- Add Config To File On Existing SSH Connection ${tempest_config_file} service_available neutron true
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity catalog_type identity
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity uri http://localhost:5000/v2.0
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity uri_v3 http://localhost:8774/v3
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity auth_version v2
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity v2_admin_endpoint_type adminURL
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity username $OS_USERNAME
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity admin_role admin
- Add Config To File On Existing SSH Connection ${tempest_config_file} identity password $OS_PASSWORD
- Add Config To File On Existing SSH Connection ${tempest_config_file} auth admin_username $OS_USERNAME
- Add Config To File On Existing SSH Connection ${tempest_config_file} auth admin_project_name $OS_TENANT_NAME
- Add Config To File On Existing SSH Connection ${tempest_config_file} auth admin_password $OS_PASSWORD
- Add Config To File On Existing SSH Connection ${tempest_config_file} network public_network_id ${external_network_id}
- Add Config To File On Existing SSH Connection ${tempest_config_file} DEFAULT verbose true
- Write Commands Until Prompt sudo cat ./tempest.conf
- Write Commands Until Prompt sudo chmod 777 ./tempest.conf
-
-Add Config To File On Existing SSH Connection
- [Arguments] ${config_file} ${config_section} ${config_key} ${config_value}
+ [Documentation] Tempest will be run with a config file - this function will add the
+ ... given external network ID to the configuration file.
+ Modify Config In File On Existing SSH Connection ${tempest_config_file} set network public_network_id ${external_network_id}
+ Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT debug False
+ Modify Config In File On Existing SSH Connection ${tempest_config_file} set DEFAULT log_level INFO
+ Write Commands Until Prompt sudo cat ${tempest_config_file}
+ Write Commands Until Prompt sudo chmod 777 ${tempest_config_file}
+
+Modify Config In File On Existing SSH Connection
+ [Arguments] ${config_file} ${modifier} ${config_section} ${config_key} ${config_value}=${EMPTY}
[Documentation] uses crudini to populate oslo cofg file.
# this keyword is only one line so seems like extra overhead, but this may be a good candidate to move
# to a library at some point, when/if other suites need to use it, so wanted to make it generic.
- Write Commands Until Prompt sudo -E crudini --set ${config_file} ${config_section} ${config_key} ${config_value}
+ Write Commands Until Prompt sudo -E crudini --${modifier} ${config_file} ${config_section} ${config_key} ${config_value}
Clean Up After Running Tempest
[Documentation] Clean up any extra leftovers that were created to allow tempest tests to run.
- Delete SubNet external-subnet
- Delete Network external
+ Delete Network ${external_net_name}
List Networks
Close All Connections