diff options
20 files changed, 8 insertions, 1450 deletions
diff --git a/docs/index.rst b/docs/index.rst index 247c6368..5b83a60c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,6 +23,6 @@ Dovetail testing/user/userguide/index testing/developer/testcaserequirements/index - testing/developer/testscope/index + testing/developer/genericframework/index release/release-notes/index diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 8f8bd7d1..f1c995a7 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -102,13 +102,9 @@ There are a total of 432 mandatory test cases. - functest.tempest.vm_lifecycle (12) - functest.tempest.network_scenario (5) - functest.tempest.bgpvpn (15) -- functest.bgpvpn.subnet_connectivity (1) -- functest.bgpvpn.tenant_separation (1) -- functest.bgpvpn.router_association (1) -- functest.bgpvpn.router_association_floating_ip (1) - functest.security.patrole_vxlan_dependent (2) -There are a total of 61 optional test cases. +There are a total of 57 optional test cases. OPNFV Test Projects and Components ---------------------------------- diff --git a/docs/testing/developer/testscope/index.rst b/docs/testing/developer/testscope/index.rst deleted file mode 100644 index 7e05a9d2..00000000 --- a/docs/testing/developer/testscope/index.rst +++ /dev/null @@ -1,616 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV - -.. _dovetail-test_scope: - -======================================================= -Compliance and Verification program accepted test cases -======================================================= - - .. toctree:: - :maxdepth: 2 - - -Mandatory OVP Test Areas -======================== - ----------------------------------- -Test Area VIM Operations - Compute ----------------------------------- - -Image operations within the Compute API ---------------------------------------- - -| tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image -| tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name - - -Basic support Compute API for server actions such as reboot, rebuild, resize ----------------------------------------------------------------------------- - -| tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action -| tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions - - -Generate, import, and delete SSH keys within Compute services -------------------------------------------------------------- - -| tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair - - -List supported versions of the Compute API ------------------------------------------- - -| tempest.api.compute.test_versions.TestVersions.test_list_api_versions - - -Quotas management in Compute API --------------------------------- - -| tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas -| tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas - - -Basic server operations in the Compute API ------------------------------------------- - -| tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password -| tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256 -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server -| tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name -| tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address -| tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers -| tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail -| tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers -| tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_active_status -| tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing -| tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server -| tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item -| tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank -| tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server -| tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server -| tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server -| tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address -| tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256 -| tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name -| tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus -| tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details -| tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus -| tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details - - -Retrieve volume information through the Compute API ---------------------------------------------------- - -| tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume -| tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments - - - ------------------------------------ -Test Area VIM Operations - Identity ------------------------------------ - -API discovery operations within the Identity v3 API ---------------------------------------------------- - -| tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types -| tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources -| tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses - - -Auth operations within the Identity API ---------------------------------------- - -| tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token - - --------------------------------- -Test Area VIM Operations - Image --------------------------------- - -Image deletion tests using the Glance v2 API --------------------------------------------- - -| tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image -| tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id -| tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image -| tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag - - -Image get tests using the Glance v2 API ---------------------------------------- - -| tempest.api.image.v2.test_images.ListUserImagesTest.test_get_image_schema -| tempest.api.image.v2.test_images.ListUserImagesTest.test_get_images_schema -| tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image -| tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id -| tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image - - -CRUD image operations in Images API v2 --------------------------------------- - -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_no_params - - -Image list tests using the Glance v2 API ----------------------------------------- - -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_container_format -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_disk_format -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_limit -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_min_max_size -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_size -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_status -| tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_visibility - - -Image update tests using the Glance v2 API ------------------------------------------- - -| tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image -| tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image -| tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image - - ----------------------------------- -Test Area VIM Operations - Network ----------------------------------- - -Basic CRUD operations on L2 networks and L2 network ports ---------------------------------------------------------- - -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway -| tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes -| tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet -| tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet -| tempest.api.network.test_networks.NetworksTest.test_list_networks -| tempest.api.network.test_networks.NetworksTest.test_list_networks_fields -| tempest.api.network.test_networks.NetworksTest.test_list_subnets -| tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields -| tempest.api.network.test_networks.NetworksTest.test_show_network -| tempest.api.network.test_networks.NetworksTest.test_show_network_fields -| tempest.api.network.test_networks.NetworksTest.test_show_subnet -| tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields -| tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp -| tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port -| tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools -| tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port -| tempest.api.network.test_ports.PortsTestJSON.test_list_ports -| tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields -| tempest.api.network.test_ports.PortsTestJSON.test_show_port -| tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields -| tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_security_group_and_extra_attributes -| tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_two_security_groups_and_extra_attributes - - -Basic CRUD operations on security groups ----------------------------------------- - -| tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group -| tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args -| tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code -| tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value -| tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id -| tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix -| tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule -| tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group -| tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule - - ---------------------------------- -Test Area VIM Operations - Volume ---------------------------------- - -Volume attach and detach operations with the Cinder v2 API ----------------------------------------------------------- - -| tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance -| tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id - - -Volume service availability zone operations with the Cinder v2 API ------------------------------------------------------------------- - -| tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list - - -Volume cloning operations with the Cinder v2 API ------------------------------------------------- - -| tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone - - -Image copy-to-volume operations with the Cinder v2 API ------------------------------------------------------- - -| tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable -| tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image - - -Volume creation and deletion operations with the Cinder v2 API --------------------------------------------------------------- - -| tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_without_passing_size -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero - - -Volume service extension listing operations with the Cinder v2 API ------------------------------------------------------------------- - -| tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions - - -Volume GET operations with the Cinder v2 API --------------------------------------------- - -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id - - -Volume listing operations with the Cinder v2 API ------------------------------------------------- - -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone -| tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name -| tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination -| tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params -| tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination - - -Volume metadata operations with the Cinder v2 API -------------------------------------------------- - -| tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_crud_volume_metadata -| tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item - - -Verification of read-only status on volumes with the Cinder v2 API ------------------------------------------------------------------- - -| tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update - - -Volume reservation operations with the Cinder v2 API ----------------------------------------------------- - -| tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id - - -Volume snapshot creation/deletion operations with the Cinder v2 API -------------------------------------------------------------------- - -| tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_crud_snapshot_metadata -| tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id -| tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete -| tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot -| tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_details_with_params -| tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_with_params -| tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id -| tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id - - -Volume update operations with the Cinder v2 API ------------------------------------------------ - -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id -| tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id - - ---------------------------- -Test Area High Availability ---------------------------- - -Verify high availability of OpenStack controller services ---------------------------------------------------------- - -| dovetail.ha.tc001.nova-api_service_down -| dovetail.ha.tc002.neutron-server_service_down -| dovetail.ha.tc003.keystone_service_down -| dovetail.ha.tc004.glance-api_service_down -| dovetail.ha.tc005.cinder-api_service_down -| dovetail.ha.tc006.cpu_overload -| dovetail.ha.tc007.disk_I/O_overload -| dovetail.ha.tc008.load_balance_service_down - ----------------------------------------- -Test Area vPing - Basic VNF Connectivity ----------------------------------------- - -| dovetail.vping.tc001.userdata -| dovetail.vping.tc002.ssh - - - -Optional OVP Test Areas -======================== - - ------------------ -Test Area BGP VPN ------------------ - -Verify association and dissasocitation of node using route targets ------------------------------------------------------------------- - -| dovetail.sdnvpn.tc001.subnet_connectivity -| dovetail.sdnvpn.tc002.tenant_separation -| dovetail.sdnvpn.tc004.router_association -| dovetail.sdnvpn.tc008.router_association_floating_ip - --------------------------------------------------- -IPv6 Compliance Testing Methodology and Test Cases --------------------------------------------------- - -Test Case 1: Create and Delete an IPv6 Network, Port and Subnet ---------------------------------------------------------------- - -| tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network -| tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port -| tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_subnet - -Test Case 2: Create, Update and Delete an IPv6 Network and Subnet ------------------------------------------------------------------ - -| tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet - -Test Case 3: Check External Network Visibility ----------------------------------------------- - -| tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility - -Test Case 4: List IPv6 Networks and Subnets of a Tenant -------------------------------------------------------- - -| tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks -| tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets - -Test Case 5: Show Information of an IPv6 Network and Subnet ------------------------------------------------------------ - -| tempest.api.network.test_networks.NetworksIpV6Test.test_show_network -| tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet - -Test Case 6: Create an IPv6 Port in Allowed Allocation Pools ------------------------------------------------------------- - -| tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_in_allowed_allocation_pools - -Test Case 7: Create an IPv6 Port without Security Groups --------------------------------------------------------- - -| tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_with_no_securitygroups - -Test Case 8: Create, Update and Delete an IPv6 Port ---------------------------------------------------- - -| tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_update_delete_port - -Test Case 9: List IPv6 Ports of a Tenant ----------------------------------------- - -| tempest.api.network.test_ports.PortsIpV6TestJSON.test_list_ports - -Test Case 10: Show Information of an IPv6 Port ----------------------------------------------- - -| tempest.api.network.test_ports.PortsIpV6TestJSON.test_show_port - -Test Case 11: Add Multiple Interfaces for an IPv6 Router --------------------------------------------------------- - -| tempest.api.network.test_routers.RoutersIpV6Test.test_add_multiple_router_interfaces - -Test Case 12: Add and Remove an IPv6 Router Interface with port_id ------------------------------------------------------------------- - -| tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_port_id - -Test Case 13: Add and Remove an IPv6 Router Interface with subnet_id --------------------------------------------------------------------- - -| tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_subnet_id - -Test Case 14: Create, Update, Delete, List and Show an IPv6 Router ------------------------------------------------------------------- - -| tempest.api.network.test_routers.RoutersIpV6Test.test_create_show_list_update_delete_router - -Test Case 15: Create, Update, Delete, List and Show an IPv6 Security Group --------------------------------------------------------------------------- - -| tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_list_update_show_delete_security_group - -Test Case 16: Create, Delete and Show Security Group Rules ----------------------------------------------------------- - -| tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_show_delete_security_group_rule - -Test Case 17: List All Security Groups --------------------------------------- - -| tempest.api.network.test_security_groups.SecGroupIPv6Test.test_list_security_groups - -Test Case 18: IPv6 Address Assignment - Dual Stack, SLAAC, DHCPv6 Stateless ---------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os - -Test Case 19: IPv6 Address Assignment - Dual Net, Dual Stack, SLAAC, DHCPv6 Stateless -------------------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_dhcp6_stateless_from_os - -Test Case 20: IPv6 Address Assignment - Multiple Prefixes, Dual Stack, SLAAC, DHCPv6 Stateless ----------------------------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_dhcpv6_stateless - -Test Case 21: IPv6 Address Assignment - Dual Net, Multiple Prefixes, Dual Stack, SLAAC, DHCPv6 Stateless --------------------------------------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_dhcpv6_stateless - -Test Case 22: IPv6 Address Assignment - Dual Stack, SLAAC ---------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_slaac_from_os - -Test Case 23: IPv6 Address Assignment - Dual Net, Dual Stack, SLAAC -------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os - -Test Case 24: IPv6 Address Assignment - Multiple Prefixes, Dual Stack, SLAAC ----------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_slaac - -Test Case 25: IPv6 Address Assignment - Dual Net, Dual Stack, Multiple Prefixes, SLAAC --------------------------------------------------------------------------------------- - -| tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_slaac - ------------------------------------------------------------------------- -Filtering Packets Based on Security Rules and Port Security in Data Path ------------------------------------------------------------------------- - -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port -| tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_cross_tenant_traffic -| tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_in_tenant_traffic -| tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_multiple_security_groups -| tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_port_security_disable_security_group -| tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_port_update_new_security_group - ------------------------------------------------------------- -Dynamic Network Runtime Operations Through the Life of a VNF ------------------------------------------------------------- - -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_instance_port_admin_state -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_router_admin_state - ----------------------------------------------------------------- -Correct Behavior after Common Virtual Machine Life Cycles Events ----------------------------------------------------------------- - -| tempest.scenario.test_minimum_basic.TestMinimumBasicScenario.test_minimum_basic_scenario -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_cold_migration -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_reboot -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_rebuild -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_resize -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_stop_start -| tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_suspend_resume -| tempest.scenario.test_server_advanced_ops.TestServerAdvancedOps.test_server_sequence_suspend_resume -| tempest.scenario.test_server_advanced_ops.TestServerAdvancedOps.test_resize_volume_backed_server_confirm -| tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_instance -| tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_volume_backed_instance - ------------------------------------------------------------- -Simple Virtual Machine Resource Scheduling on Multiple Nodes ------------------------------------------------------------- - -| tempest.scenario.test_server_multinode.TestServerMultinode.test_schedule_to_all_nodes -| tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_multiple_server_groups_with_same_name_policy -| tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_server_group_with_affinity_policy -| tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_server_group_with_anti_affinity_policy -| tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_list_server_groups -| tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_show_server_group - --------------------------------------------------------- -Forwarding Packets Through Virtual Networks in Data Path --------------------------------------------------------- - -| tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_mtu_sized_frames diff --git a/docs/testing/user/ovpaddendum/exemption-strict-API-validation.rst b/docs/testing/user/ovpaddendum/exemption-strict-API-validation.rst index aaac6c4c..c2546b81 100644 --- a/docs/testing/user/ovpaddendum/exemption-strict-API-validation.rst +++ b/docs/testing/user/ovpaddendum/exemption-strict-API-validation.rst @@ -179,7 +179,7 @@ responses is as follows: .. [2] https://github.com/openstack/tempest/tree/master/tempest/lib/api_schema/response/compute .. [3] https://developer.openstack.org/api-ref/compute/#show-server-details .. [4] https://wiki.openstack.org/wiki/Governance/InteropWG -.. [5] https://refstack.openstack.org/ +.. [5] https://www.openstack.org/brand/interop/ .. [6] http://lists.openstack.org/pipermail/openstack-dev/2016-June/097349.html .. [7] https://review.openstack.org/#/c/333067/ .. [8] https://review.openstack.org/#/c/512447/ diff --git a/docs/testing/user/ovpaddendum/index.rst b/docs/testing/user/ovpaddendum/index.rst index 5e4c0a67..c84f85de 100644 --- a/docs/testing/user/ovpaddendum/index.rst +++ b/docs/testing/user/ovpaddendum/index.rst @@ -346,10 +346,6 @@ of OVP is as follows: - functest.tempest.vm_lifecycle - functest.tempest.network_scenario - functest.tempest.bgpvpn - - functest.bgpvpn.subnet_connectivity - - functest.bgpvpn.tenant_separation - - functest.bgpvpn.router_association - - functest.bgpvpn.router_association_floating_ip - yardstick.ha.neutron_l3_agent - yardstick.ha.controller_restart - functest.vnf.vims diff --git a/docs/testing/user/testspecification/vpn/index.rst b/docs/testing/user/testspecification/vpn/index.rst index f6778435..9d0a4ad3 100644 --- a/docs/testing/user/testspecification/vpn/index.rst +++ b/docs/testing/user/testspecification/vpn/index.rst @@ -13,9 +13,8 @@ Scope ===== The VPN test area evaluates the ability of the system under test to support VPN -networking for virtual workloads. The tests in this test area will evaluate -establishing VPN networks, publishing and communication between endpoints using -BGP and tear down of the networks. +networking for virtual workloads. This test area tests CRUD (Create, Read, Update, +Delete) operations of BGPVPN API. References ========== @@ -44,14 +43,9 @@ The following terms and abbreviations are used in conjunction with this test area - BGP - Border gateway protocol -- eRT - Export route target -- IETF - Internet Engineering Task Force -- iRT - Import route target - NFVi - Network functions virtualization infrastructure -- Tenant - An isolated set of virtualized infrastructures - VM - Virtual machine - VPN - Virtual private network -- VLAN - Virtual local area network System Under Test (SUT) @@ -64,483 +58,23 @@ Pharos compliant infrastructure. Test Area Structure =================== -The test area is structured in four separate tests which are executed +The test area is structured in several tempest tests which are executed sequentially. The order of the tests is arbitrary as there are no dependencies across the tests. Specifially, every test performs clean-up operations which return the system to the same state as before the test. -The test area evaluates the ability of the SUT to establish connectivity -between Virtual Machines using an appropriate route target configuration, -reconfigure the route targets to remove connectivity between the VMs, then -reestablish connectivity by re-association. - Test Descriptions ================= ----------------------------------------------------------------- -Test Case 1 - VPN provides connectivity between Neutron subnets ----------------------------------------------------------------- - -Short name ----------- - -dovetail.sdnvpn.subnet_connectivity - - -Use case specification ----------------------- - -This test evaluates the use case where an NFVi tenant uses a BGPVPN to provide -connectivity between VMs on different Neutron networks and subnets that reside -on different hosts. - - -Test preconditions ------------------- - -2 compute nodes are available, denoted Node1 and Node2 in the following. - - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Methodology for verifying connectivity -'''''''''''''''''''''''''''''''''''''' - -Connectivity between VMs is tested by sending ICMP ping packets between -selected VMs. The target IPs are passed to the VMs sending pings by means of a -custom user data script. Whether or not a ping was successful is determined by -checking the console output of the source VMs. - - -Test execution -'''''''''''''' - -* Create Neutron network N1 and subnet SN1 with IP range 10.10.10.0/24 -* Create Neutron network N2 and subnet SN2 with IP range 10.10.11.0/24 - -* Create VM1 on Node1 with a port in network N1 -* Create VM2 on Node1 with a port in network N1 -* Create VM3 on Node2 with a port in network N1 -* Create VM4 on Node1 with a port in network N2 -* Create VM5 on Node2 with a port in network N2 - -* Create VPN1 with eRT<>iRT -* Create network association between network N1 and VPN1 - -* VM1 sends ICMP packets to VM2 using ``ping`` - -* **Test assertion 1:** Ping from VM1 to VM2 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM3 using ``ping`` - -* **Test assertion 2:** Ping from VM1 to VM3 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM4 using ``ping`` - -* **Test assertion 3:** Ping from VM1 to VM4 fails: ``ping`` exits with a non-zero return code - -* Create network association between network N2 and VPN1 - -* VM4 sends ICMP packets to VM5 using ``ping`` - -* **Test assertion 4:** Ping from VM4 to VM5 succeeds: ``ping`` exits with return code 0 - -* Configure iRT=eRT in VPN1 - -* VM1 sends ICMP packets to VM4 using ``ping`` - -* **Test assertion 5:** Ping from VM1 to VM4 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM5 using ``ping`` - -* **Test assertion 6:** Ping from VM1 to VM5 succeeds: ``ping`` exits with return code 0 - -* Delete all instances: VM1, VM2, VM3, VM4 and VM5 - -* Delete all networks and subnets: networks N1 and N2 including subnets SN1 and SN2 - -* Delete all network associations and VPN1 - - -Pass / fail criteria -'''''''''''''''''''' - -This test evaluates the capability of the NFVi and VIM to provide routed IP -connectivity between VMs by means of BGP/MPLS VPNs. Specifically, the test -verifies that: - -* VMs in the same Neutron subnet have IP connectivity regardless of BGP/MPLS - VPNs (test assertion 1, 2, 4) - -* VMs in different Neutron subnets do not have IP connectivity by default - in - this case without associating VPNs with the same import and export route - targets to the Neutron networks (test assertion 3) - -* VMs in different Neutron subnets have routed IP connectivity after - associating both networks with BGP/MPLS VPNs which have been configured with - the same import and export route targets (test assertion 5, 6). Hence, - adjusting the ingress and egress route targets enables as well as prohibits - routing. - -In order to pass this test, all test assertions listed in the test execution -above need to pass. - - -Post conditions ---------------- - -N/A - ------------------------------------------------------------- -Test Case 2 - VPNs ensure traffic separation between tenants ------------------------------------------------------------- - -Short Name ----------- - -dovetail.sdnvpn.tenant_separation - - -Use case specification ----------------------- - -This test evaluates if VPNs provide separation of traffic such that overlapping -IP ranges can be used. - - -Test preconditions ------------------- - -2 compute nodes are available, denoted Node1 and Node2 in the following. - - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Methodology for verifying connectivity -'''''''''''''''''''''''''''''''''''''' - -Connectivity between VMs is tested by establishing an SSH connection. Moreover, -the command "hostname" is executed at the remote VM in order to retrieve the -hostname of the remote VM. The retrieved hostname is furthermore compared -against an expected value. This is used to verify tenant traffic separation, -i.e., despite overlapping IPs, a connection is made to the correct VM as -determined by means of the hostname of the target VM. - - - -Test execution -'''''''''''''' - -* Create Neutron network N1 -* Create subnet SN1a of network N1 with IP range 10.10.10.0/24 -* Create subnet SN1b of network N1 with IP range 10.10.11.0/24 - -* Create Neutron network N2 -* Create subnet SN2a of network N2 with IP range 10.10.10.0/24 -* Create subnet SN2b of network N2 with IP range 10.10.11.0/24 - -* Create VM1 on Node1 with a port in network N1 and IP 10.10.10.11. -* Create VM2 on Node1 with a port in network N1 and IP 10.10.10.12. -* Create VM3 on Node2 with a port in network N1 and IP 10.10.11.13. -* Create VM4 on Node1 with a port in network N2 and IP 10.10.10.12. -* Create VM5 on Node2 with a port in network N2 and IP 10.10.11.13. - -* Create VPN1 with iRT=eRT=RT1 -* Create network association between network N1 and VPN1 - -* VM1 attempts to execute the command ``hostname`` on the VM with IP 10.10.10.12 via SSH. - -* **Test assertion 1:** VM1 can successfully connect to the VM with IP - 10.10.10.12. via SSH and execute the remote command ``hostname``. The - retrieved hostname equals the hostname of VM2. - -* VM1 attempts to execute the command ``hostname`` on the VM with IP 10.10.11.13 via SSH. - -* **Test assertion 2:** VM1 can successfully connect to the VM with IP - 10.10.11.13 via SSH and execute the remote command ``hostname``. The - retrieved hostname equals the hostname of VM3. - -* Create VPN2 with iRT=eRT=RT2 -* Create network association between network N2 and VPN2 - -* VM4 attempts to execute the command ``hostname`` on the VM with IP 10.10.11.13 via SSH. - -* **Test assertion 3:** VM4 can successfully connect to the VM with IP - 10.10.11.13 via SSH and execute the remote command ``hostname``. The - retrieved hostname equals the hostname of VM5. - -* VM4 attempts to execute the command ``hostname`` on the VM with IP 10.10.11.11 via SSH. - -* **Test assertion 4:** VM4 cannot connect to the VM with IP 10.10.11.11 via SSH. - -* Delete all instances: VM1, VM2, VM3, VM4 and VM5 - -* Delete all networks and subnets: networks N1 and N2 including subnets SN1a, SN1b, SN2a and SN2b - -* Delete all network associations, VPN1 and VPN2 - - -Pass / fail criteria -'''''''''''''''''''' - -This test evaluates the capability of the NFVi and VIM to provide routed IP -connectivity between VMs by means of BGP/MPLS VPNs. Specifically, the test -verifies that: - -* VMs in the same Neutron subnet (still) have IP connectivity between each - other when a BGP/MPLS VPN is associated with the network (test assertion 1). - -* VMs in different Neutron subnets have routed IP connectivity between each - other when BGP/MPLS VPNs with the same import and expert route targets are - associated with both networks (assertion 2). - -* VMs in different Neutron networks and BGP/MPLS VPNs with different import and - export route targets can have overlapping IP ranges. The BGP/MPLS VPNs - provide traffic separation (assertion 3 and 4). - -In order to pass this test, all test assertions listed in the test execution -above need to pass. - - -Post conditions ---------------- - -N/A - --------------------------------------------------------------------------------- -Test Case 3 - VPN provides connectivity between subnets using router association --------------------------------------------------------------------------------- - -Short Name ----------- - -dovetail.sdnvpn.router_association - - -Use case specification ----------------------- - -This test evaluates if a VPN provides connectivity between two subnets by -utilizing two different VPN association mechanisms: a router association and a -network association. - -Specifically, the test network topology comprises two networks N1 and N2 with -corresponding subnets. Additionally, network N1 is connected to a router R1. -This test verifies that a VPN V1 provides connectivity between both networks -when applying a router association to router R1 and a network association to -network N2. - - -Test preconditions ------------------- - -2 compute nodes are available, denoted Node1 and Node2 in the following. - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Methodology for verifying connectivity -'''''''''''''''''''''''''''''''''''''' - -Connectivity between VMs is tested by sending ICMP ping packets between -selected VMs. The target IPs are passed to the VMs sending pings by means of a -custom user data script. Whether or not a ping was successful is determined by -checking the console output of the source VMs. - - -Test execution -'''''''''''''' - -* Create a network N1, a subnet SN1 with IP range 10.10.10.0/24 and a connected router R1 -* Create a network N2, a subnet SN2 with IP range 10.10.11.0/24 - -* Create VM1 on Node1 with a port in network N1 -* Create VM2 on Node1 with a port in network N1 -* Create VM3 on Node2 with a port in network N1 -* Create VM4 on Node1 with a port in network N2 -* Create VM5 on Node2 with a port in network N2 - -* Create VPN1 with eRT<>iRT so that connected subnets should not reach each other - -* Create route association between router R1 and VPN1 - -* VM1 sends ICMP packets to VM2 using ``ping`` - -* **Test assertion 1:** Ping from VM1 to VM2 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM3 using ``ping`` - -* **Test assertion 2:** Ping from VM1 to VM3 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM4 using ``ping`` - -* **Test assertion 3:** Ping from VM1 to VM4 fails: ``ping`` exits with a non-zero return code - -* Create network association between network N2 and VPN1 - -* VM4 sends ICMP packets to VM5 using ``ping`` - -* **Test assertion 4:** Ping from VM4 to VM5 succeeds: ``ping`` exits with return code 0 - -* Change VPN1 so that iRT=eRT - -* VM1 sends ICMP packets to VM4 using ``ping`` - -* **Test assertion 5:** Ping from VM1 to VM4 succeeds: ``ping`` exits with return code 0 - -* VM1 sends ICMP packets to VM5 using ``ping`` - -* **Test assertion 6:** Ping from VM1 to VM5 succeeds: ``ping`` exits with return code 0 - -* Delete all instances: VM1, VM2, VM3, VM4 and VM5 - -* Delete all networks, subnets and routers: networks N1 and N2 including subnets SN1 and SN2, router R1 - -* Delete all network and router associations and VPN1 - - -Pass / fail criteria -'''''''''''''''''''' - -This test evaluates the capability of the NFVi and VIM to provide routed IP -connectivity between VMs by means of BGP/MPLS VPNs. Specifically, the test -verifies that: - -* VMs in the same Neutron subnet have IP connectivity regardless of the import - and export route target configuration of BGP/MPLS VPNs (test assertion 1, 2, 4) - -* VMs in different Neutron subnets do not have IP connectivity by default - in - this case without associating VPNs with the same import and export route - targets to the Neutron networks or connected Neutron routers (test assertion 3). - -* VMs in two different Neutron subnets have routed IP connectivity after - associating the first network and a router connected to the second network - with BGP/MPLS VPNs which have been configured with the same import and export - route targets (test assertion 5, 6). Hence, adjusting the ingress and egress - route targets enables as well as prohibits routing. - -* Network and router associations are equivalent methods for binding Neutron networks - to VPN. - -In order to pass this test, all test assertions listed in the test execution -above need to pass. - - -Post conditions ---------------- - -N/A - ---------------------------------------------------------------------------------------------------- -Test Case 4 - Verify interworking of router and network associations with floating IP functionality ---------------------------------------------------------------------------------------------------- - -Short Name ----------- - -dovetail.sdnvpn.router_association_floating_ip - - -Use case specification ----------------------- - -This test evaluates if both the router association and network association -mechanisms interwork with floating IP functionality. - -Specifically, the test network topology comprises two networks N1 and N2 with -corresponding subnets. Additionally, network N1 is connected to a router R1. -This test verifies that i) a VPN V1 provides connectivity between both networks -when applying a router association to router R1 and a network association to -network N2 and ii) a VM in network N1 is reachable externally by means of a -floating IP. - - -Test preconditions ------------------- - -At least one compute node is available. - -Basic test flow execution description and pass/fail criteria ------------------------------------------------------------- - -Methodology for verifying connectivity -'''''''''''''''''''''''''''''''''''''' - -Connectivity between VMs is tested by sending ICMP ping packets between -selected VMs. The target IPs are passed to the VMs sending pings by means of a -custom user data script. Whether or not a ping was successful is determined by -checking the console output of the source VMs. - - -Test execution -'''''''''''''' - -* Create a network N1, a subnet SN1 with IP range 10.10.10.0/24 and a connected router R1 -* Create a network N2 with IP range 10.10.20.0/24 - -* Create VM1 with a port in network N1 -* Create VM2 with a port in network N2 - -* Create VPN1 -* Create a router association between router R1 and VPN1 -* Create a network association between network N2 and VPN1 - - -* VM1 sends ICMP packets to VM2 using ``ping`` - -* **Test assertion 1:** Ping from VM1 to VM2 succeeds: ``ping`` exits with return code 0 - -* Assign a floating IP to VM1 - -* The host running the test framework sends ICMP packets to VM1 using ``ping`` - -* **Test assertion 2:** Ping from the host running the test framework to the - floating IP of VM1 succeeds: ``ping`` exits with return code 0 - -* Delete floating IP assigned to VM1 - -* Delete all instances: VM1, VM2 - -* Delete all networks, subnets and routers: networks N1 and N2 including subnets SN1 and SN2, router R1 - -* Delete all network and router associations as well as VPN1 - - -Pass / fail criteria -'''''''''''''''''''' - -This test evaluates the capability of the NFVi and VIM to provide routed IP -connectivity between VMs by means of BGP/MPLS VPNs. Specifically, the test -verifies that: - -* VMs in the same Neutron subnet have IP connectivity regardless of the import - and export route target configuration of BGP/MPLS VPNs (test assertion 1) - -* VMs connected to a network which has been associated with a BGP/MPLS VPN are - reachable through floating IPs. - -In order to pass this test, all test assertions listed in the test execution -above need to pass. - - -Post conditions ---------------- - -N/A - - - ------------------------------------ -Test Case 5 - Tempest API CRUD Tests +Test Case 1 - Tempest API CRUD Tests ------------------------------------ Short Name ---------- -dovetail.tempest.bgpvpn +functest.tempest.bgpvpn Use case specification diff --git a/docs/testing/user/userguide/cli_reference.rst b/docs/testing/user/userguide/cli_reference.rst index 97eccffc..97cda009 100644 --- a/docs/testing/user/userguide/cli_reference.rst +++ b/docs/testing/user/userguide/cli_reference.rst @@ -166,10 +166,6 @@ Dovetail List Commands functest.tempest.vm_lifecycle functest.tempest.network_scenario functest.tempest.bgpvpn - functest.bgpvpn.subnet_connectivity - functest.bgpvpn.tenant_separation - functest.bgpvpn.router_association - functest.bgpvpn.router_association_floating_ip yardstick.ha.neutron_l3_agent yardstick.ha.controller_restart functest.vnf.vims diff --git a/docs/testing/user/userguide/testing_guide.rst b/docs/testing/user/userguide/testing_guide.rst index 828813cc..4f759547 100644 --- a/docs/testing/user/userguide/testing_guide.rst +++ b/docs/testing/user/userguide/testing_guide.rst @@ -733,10 +733,6 @@ Host by default within the directory specified below. * Its log is stored in ``vnf_logs/functest.vnf.XXX.log``. - * Bgpvpn test cases - - * Can see the log details in ``bgpvpn_logs/functest.bgpvpn.XXX.log``. - OVP Portal Web Interface ------------------------ diff --git a/etc/compliance/ovp.2018.09.yaml b/etc/compliance/ovp.2019.0x.yaml index f0e99199..53467354 100644 --- a/etc/compliance/ovp.2018.09.yaml +++ b/etc/compliance/ovp.2019.0x.yaml @@ -43,10 +43,6 @@ ovp.2018.09: - functest.tempest.network_scenario - functest.tempest.bgpvpn - functest.security.patrole_vxlan_dependent - - functest.bgpvpn.subnet_connectivity - - functest.bgpvpn.tenant_separation - - functest.bgpvpn.router_association - - functest.bgpvpn.router_association_floating_ip - yardstick.ha.neutron_l3_agent - yardstick.ha.controller_restart - functest.vnf.vims diff --git a/etc/testcase/functest.bgpvpn.router_association.yml b/etc/testcase/functest.bgpvpn.router_association.yml deleted file mode 100644 index b0fc01dd..00000000 --- a/etc/testcase/functest.bgpvpn.router_association.yml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - ---- -functest.bgpvpn.router_association: - name: functest.bgpvpn.router_association - objective: VPN provides connectivity between subnets using association of Neutron Router to VPNs - validate: - type: functest - testcase: bgpvpn - image_name: opnfv/functest-features - pre_condition: - - 'cp /home/opnfv/userconfig/bgpvpn_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' - - 'cp /home/opnfv/userconfig/sdnvpn_config_testcase4.yaml /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml' - report: - source_archive_files: - - functest.log - dest_archive_files: - - bgpvpn_logs/functest.bgpvpn.router_association.log - check_results_files: - - 'functest_results.txt' - sub_testcase_list: diff --git a/etc/testcase/functest.bgpvpn.router_association_floating_ip.yml b/etc/testcase/functest.bgpvpn.router_association_floating_ip.yml deleted file mode 100644 index 9deaea51..00000000 --- a/etc/testcase/functest.bgpvpn.router_association_floating_ip.yml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - ---- -functest.bgpvpn.router_association_floating_ip: - name: functest.bgpvpn.router_association_floating_ip - objective: associate Neutron Router with an attached subnet to a VPN and verify reachability of the Floating IP - validate: - type: functest - testcase: bgpvpn - image_name: opnfv/functest-features - pre_condition: - - 'cp /home/opnfv/userconfig/bgpvpn_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' - - 'cp /home/opnfv/userconfig/sdnvpn_config_testcase8.yaml /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml' - report: - source_archive_files: - - functest.log - dest_archive_files: - - bgpvpn_logs/functest.bgpvpn.router_association_floating_ip.log - check_results_files: - - 'functest_results.txt' - sub_testcase_list: diff --git a/etc/testcase/functest.bgpvpn.subnet_connectivity.yml b/etc/testcase/functest.bgpvpn.subnet_connectivity.yml deleted file mode 100644 index a092842d..00000000 --- a/etc/testcase/functest.bgpvpn.subnet_connectivity.yml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - ---- -functest.bgpvpn.subnet_connectivity: - name: functest.bgpvpn.subnet_connectivity - objective: Connectivity between Neutron subnets through association of Neutron Networks to VPNs - validate: - type: functest - testcase: bgpvpn - image_name: opnfv/functest-features - pre_condition: - - 'cp /home/opnfv/userconfig/bgpvpn_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' - - 'cp /home/opnfv/userconfig/sdnvpn_config_testcase1.yaml /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml' - report: - source_archive_files: - - functest.log - dest_archive_files: - - bgpvpn_logs/functest.bgpvpn.subnet_connectivity.log - check_results_files: - - 'functest_results.txt' - sub_testcase_list: diff --git a/etc/testcase/functest.bgpvpn.tenant_separation.yml b/etc/testcase/functest.bgpvpn.tenant_separation.yml deleted file mode 100644 index 096a3816..00000000 --- a/etc/testcase/functest.bgpvpn.tenant_separation.yml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - ---- -functest.bgpvpn.tenant_separation: - name: functest.bgpvpn.tenant_separation - objective: Separation of tenant networks through association to different VPNs - validate: - type: functest - testcase: bgpvpn - image_name: opnfv/functest-features - pre_condition: - - 'cp /home/opnfv/userconfig/bgpvpn_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' - - 'cp /home/opnfv/userconfig/sdnvpn_config_testcase2.yaml /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml' - report: - source_archive_files: - - functest.log - dest_archive_files: - - bgpvpn_logs/functest.bgpvpn.tenant_separation.log - check_results_files: - - 'functest_results.txt' - sub_testcase_list: diff --git a/etc/userconfig/bgpvpn_testcases.yaml b/etc/userconfig/bgpvpn_testcases.yaml deleted file mode 100644 index e5acb1b8..00000000 --- a/etc/userconfig/bgpvpn_testcases.yaml +++ /dev/null @@ -1,27 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - ---- -tiers: - - - name: features - order: 2 - description: >- - Test suites from feature projects - integrated in functest - testcases: - - - case_name: bgpvpn - project_name: sdnvpn - criteria: 100 - blocking: false - description: >- - Test suite from SDNVPN project. - run: - name: bgpvpn diff --git a/etc/userconfig/sdnvpn_config_tc000.yaml b/etc/userconfig/sdnvpn_config_tc000.yaml deleted file mode 100644 index dfa1547d..00000000 --- a/etc/userconfig/sdnvpn_config_tc000.yaml +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.run_tempest: - enabled: true - description: Neutron BGPVPN tests in tempest diff --git a/etc/userconfig/sdnvpn_config_testcase1.yaml b/etc/userconfig/sdnvpn_config_testcase1.yaml deleted file mode 100644 index 95eb0f43..00000000 --- a/etc/userconfig/sdnvpn_config_testcase1.yaml +++ /dev/null @@ -1,36 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.testcase_1: - enabled: true - description: VPN provides connectivity between subnets - testname_db: functest_testcase_1 - instance_1_name: sdnvpn-1-1 - instance_2_name: sdnvpn-1-2 - instance_3_name: sdnvpn-1-3 - instance_4_name: sdnvpn-1-4 - instance_5_name: sdnvpn-1-5 - image_name: sdnvpn-image - net_1_name: sdnvpn-1-1-net - subnet_1_name: sdnvpn-1-1-subnet - subnet_1_cidr: 10.10.10.0/24 - router_1_name: sdnvpn-1-1-router - net_2_name: sdnvpn-1-2-net - subnet_2_name: sdnvpn-1-2-subnet - subnet_2_cidr: 10.10.11.0/24 - router_2_name: sdnvpn-1-2-router - secgroup_name: sdnvpn-sg - secgroup_descr: Security group for SDNVPN test cases - targets1: '88:88' - targets2: '55:55' - route_distinguishers: '11:11' diff --git a/etc/userconfig/sdnvpn_config_testcase2.yaml b/etc/userconfig/sdnvpn_config_testcase2.yaml deleted file mode 100644 index 9e614a96..00000000 --- a/etc/userconfig/sdnvpn_config_testcase2.yaml +++ /dev/null @@ -1,46 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.testcase_2: - enabled: true - description: Tenant separation - testname_db: functest_testcase_2 - instance_1_name: sdnvpn-2-1 - instance_2_name: sdnvpn-2-2 - instance_3_name: sdnvpn-2-3 - instance_4_name: sdnvpn-2-4 - instance_5_name: sdnvpn-2-5 - instance_1_ip: 10.10.10.11 - instance_2_ip: 10.10.10.12 - instance_3_ip: 10.10.11.13 - instance_4_ip: 10.10.10.12 - instance_5_ip: 10.10.11.13 - image_name: sdnvpn-image - net_1_name: sdnvpn-2-1-net - subnet_1a_name: sdnvpn-2-1a-subnet - subnet_1a_cidr: 10.10.10.0/24 - subnet_1b_name: sdnvpn-2-1b-subnet - subnet_1b_cidr: 10.10.11.0/24 - router_1_name: sdnvpn-2-1-router - net_2_name: sdnvpn-2-2-net - subnet_2a_name: sdnvpn-2-2a-subnet - subnet_2a_cidr: 10.10.11.0/24 - subnet_2b_name: sdnvpn-2-2b-subnet - subnet_2b_cidr: 10.10.10.0/24 - router_2_name: sdnvpn-2-2-router - secgroup_name: sdnvpn-sg - secgroup_descr: Security group for SDNVPN test cases - targets1: '88:88' - targets2: '55:55' - route_distinguishers1: '111:111' - route_distinguishers2: '222:222' diff --git a/etc/userconfig/sdnvpn_config_testcase3.yaml b/etc/userconfig/sdnvpn_config_testcase3.yaml deleted file mode 100644 index e1ccc0d7..00000000 --- a/etc/userconfig/sdnvpn_config_testcase3.yaml +++ /dev/null @@ -1,35 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.testcase_3: - enabled: true - description: Data center gateway integration - testname_db: functest_testcase_3 - secgroup_name: sdnvpn-sg - secgroup_descr: Security group for SDNVPN test cases - image_name: sdnvpn-image - ubuntu_image_name: sdnvpn-ubuntu-image - net_1_name: sdnvpn-3-1-net - subnet_1_name: sdnvpn-3-1-subnet - subnet_1_cidr: 10.10.10.0/24 - router_1_name: sdnvpn-3-1-router - quagga_net_name: sdnvpn-3-2-quagga-net - quagga_subnet_name: sdnvpn-3-2-quagga-subnet - quagga_subnet_cidr: 10.10.11.0/24 - quagga_router_name: sdnvpn-3-2-quagga-router - quagga_instance_name: sdnvpn-3-2-quagga - quagga_instance_ip: 10.10.11.5 - instance_1_name: sdnvpn-3-1 - instance_1_ip: 10.10.10.5 - import_targets: '31:31' - export_targets: '32:32' diff --git a/etc/userconfig/sdnvpn_config_testcase4.yaml b/etc/userconfig/sdnvpn_config_testcase4.yaml deleted file mode 100644 index 42554952..00000000 --- a/etc/userconfig/sdnvpn_config_testcase4.yaml +++ /dev/null @@ -1,36 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.testcase_4: - enabled: true - description: VPN provides connectivity between subnets using router association - testname_db: functest_testcase_4 - instance_1_name: sdnvpn-4-1 - instance_2_name: sdnvpn-4-2 - instance_3_name: sdnvpn-4-3 - instance_4_name: sdnvpn-4-4 - instance_5_name: sdnvpn-4-5 - image_name: sdnvpn-image - net_1_name: sdnvpn-4-1-net - subnet_1_name: sdnvpn-4-1-subnet - subnet_1_cidr: 10.10.10.0/24 - router_1_name: sdnvpn-4-1-router - net_2_name: sdnvpn-4-2-net - subnet_2_name: sdnvpn-4-2-subnet - subnet_2_cidr: 10.10.11.0/24 - router_2_name: sdnvpn-4-2-router - secgroup_name: sdnvpn-sg - secgroup_descr: Security group for SDNVPN test cases - targets1: '88:88' - targets2: '55:55' - route_distinguishers: '12:12' diff --git a/etc/userconfig/sdnvpn_config_testcase8.yaml b/etc/userconfig/sdnvpn_config_testcase8.yaml deleted file mode 100644 index 073f45f9..00000000 --- a/etc/userconfig/sdnvpn_config_testcase8.yaml +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################## -# Copyright (c) 2019 opnfv. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -defaults: - flavor: m1.tiny # adapt to your environment - -testcases: - sdnvpn.test.functest.testcase_8: - enabled: true - description: Test floating IP and router assoc coexistence - testname_db: functest_testcase_8 - image_name: sdnvpn-image - instance_1_name: sdnvpn-8-1 - instance_2_name: sdnvpn-8-2 - net_1_name: sdnvpn-8-1 - subnet_1_name: sdnvpn-8-1-subnet - subnet_1_cidr: 10.10.10.0/24 - router_1_name: sdnvpn-8-1-router - net_2_name: sdnvpn-8-2 - subnet_2_name: sdnvpn-8-2-subnet - subnet_2_cidr: 10.10.20.0/24 - router_2_name: sdnvpn-8-2-router - secgroup_name: sdnvpn-sg - secgroup_descr: Security group for SDNVPN test cases - targets: '88:88' - route_distinguishers: '18:18' |