diff options
22 files changed, 472 insertions, 64 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index 7b3d99ed..499624f8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -40,3 +40,8 @@ RUN \ pip install -e . WORKDIR ${REPOS_DIR}/dovetail + +# get db schema from opnfv sites +RUN mkdir -p ${REPOS_DIR}/dovetail/utils/local_db +ADD get_db_schema.py ${REPOS_DIR}/dovetail/utils/local_db +RUN cd ${REPOS_DIR}/dovetail/utils/local_db && python get_db_schema.py diff --git a/docker/get_db_schema.py b/docker/get_db_schema.py new file mode 100644 index 00000000..9a9d10d4 --- /dev/null +++ b/docker/get_db_schema.py @@ -0,0 +1,61 @@ +############################################################################## +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# 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 +############################################################################## + +import requests +import json + + +source_url = 'http://testresults.opnfv.org/test/api/v1' + + +def get(url): + try: + ret = requests.get(url) + return ret.json() + except: + return None + + +def pod(): + source = '{}/pods'.format(source_url) + try: + pods = get(source)['pods'] + with open("pods.json", "w") as f: + f.write(json.dumps(pods, indent=4)) + except: + return + + +def project(): + source = '{}/projects'.format(source_url) + + try: + projects = get(source)['projects'] + with open("projects.json", "w") as f: + f.write(json.dumps(projects, indent=4)) + except: + return + + for p in projects: + source = '{}/projects/{}/cases'.format(source_url, p['name']) + print(p['name']) + print(source) + try: + cases = get(source) + with open("cases.json", "a+") as f: + f.write(json.dumps(cases)) + f.write('\n') + f.close() + except: + print("useless data") + + +if __name__ == '__main__': + pod() + project() diff --git a/docs/testing/developer/testscope/index.rst b/docs/testing/developer/testscope/index.rst new file mode 100644 index 00000000..ffa91fd1 --- /dev/null +++ b/docs/testing/developer/testscope/index.rst @@ -0,0 +1,363 @@ +.. This work is lit_snapshots_list_details_with_paramsensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) Ericsson AB + +======================================================= +Compliance and Verification program accepted test cases +======================================================= + +.. toctree:: + :maxdepth: 2 + + +Mandatory CVP 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_server_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.ListImagesTest.test_get_image_schema +tempest.api.image.v2.test_images.ListImagesTest.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.ListImagesTest.test_list_no_params + + +Image list tests using the Glance v2 API +---------------------------------------- +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_container_format +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_disk_format +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_limit +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_min_max_size +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_size +tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_status +tempest.api.image.v2.test_images.ListImagesTest.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_all_attributes +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_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_with_out_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_create_get_delete_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_create_get_delete_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.VolumesV2SnapshotTestJSON.test_snapshots_list_details_with_params +tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.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 + + + +Optional CVP Test Areas +======================== + diff --git a/docs/testing/user/testspecification/old_files/ipv6/ipv6_all_testcases.rst b/docs/testing/user/testspecification/old_files/ipv6/ipv6_all_testcases.rst index 462219a8..02115ec3 100644 --- a/docs/testing/user/testspecification/old_files/ipv6/ipv6_all_testcases.rst +++ b/docs/testing/user/testspecification/old_files/ipv6/ipv6_all_testcases.rst @@ -31,7 +31,6 @@ Test Case 2: Create, Update and Delete an IPv6 Network and Subnet .. code-block:: bash tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_create_update_delete_network_subnet ---------------------------------------------- Test Case 3: Check External Network Visibility @@ -40,7 +39,6 @@ Test Case 3: Check External Network Visibility .. code-block:: bash tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_external_network_visibility ------------------------------------------------------- Test Case 4: List IPv6 Networks and Subnets of a Tenant @@ -50,8 +48,6 @@ 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 - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_list_networks - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_list_subnets ----------------------------------------------------------- Test Case 5: Show Information of an IPv6 Network and Subnet @@ -61,8 +57,6 @@ 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 - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_show_network - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_show_subnet ------------------------------------------------------------ Test Case 6: Create an IPv6 Port in Allowed Allocation Pools diff --git a/docs/testing/user/testspecification/old_files/ipv6/testspecification.rst b/docs/testing/user/testspecification/old_files/ipv6/testspecification.rst index 6f7caba8..e51f2a5b 100644 --- a/docs/testing/user/testspecification/old_files/ipv6/testspecification.rst +++ b/docs/testing/user/testspecification/old_files/ipv6/testspecification.rst @@ -21,7 +21,10 @@ test case specification. It may be a good idea to reference the source documents Environmental requirements ========================== -TBD +For ipv6 Test Case 18-25, those test cases are scenario tests, they need to boot virtual +machines and ping6 in addition to test APIs, ping6 to vRouter is not supported by SDN controller +yet, such as Opendaylight (Boron and previous releases), so they are scenario dependent, +i.e., currently ipv6 Test Case 18-25 can only run on scenario os-nosdn-nofeature. Preconditions and procedural requirements ========================================= diff --git a/dovetail/compliance/proposed_tests.yml b/dovetail/compliance/proposed_tests.yml index fa9c5b8a..aaaa2023 100644 --- a/dovetail/compliance/proposed_tests.yml +++ b/dovetail/compliance/proposed_tests.yml @@ -7,10 +7,10 @@ proposed_tests: # - dovetail.defcore.tc002 # ipv6 - dovetail.ipv6.tc001 - # - dovetail.ipv6.tc002 - # - dovetail.ipv6.tc003 - # - dovetail.ipv6.tc004 - # - dovetail.ipv6.tc005 + - dovetail.ipv6.tc002 + - dovetail.ipv6.tc003 + - dovetail.ipv6.tc004 + - dovetail.ipv6.tc005 - dovetail.ipv6.tc006 - dovetail.ipv6.tc007 - dovetail.ipv6.tc008 diff --git a/dovetail/testcase/ipv6.tc002.yml b/dovetail/testcase/ipv6.tc002.yml index 48aeafa3..c8254bb8 100644 --- a/dovetail/testcase/ipv6.tc002.yml +++ b/dovetail/testcase/ipv6.tc002.yml @@ -11,5 +11,3 @@ dovetail.ipv6.tc002: report: sub_testcase_list: - tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221,smoke] - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_create_update_delete_network_subnet - diff --git a/dovetail/testcase/ipv6.tc003.yml b/dovetail/testcase/ipv6.tc003.yml index d9c93799..339d405b 100644 --- a/dovetail/testcase/ipv6.tc003.yml +++ b/dovetail/testcase/ipv6.tc003.yml @@ -11,4 +11,3 @@ dovetail.ipv6.tc003: report: sub_testcase_list: - tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility[id-af774677-42a9-4e4b-bb58-16fe6a5bc1ec,smoke] - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_external_network_visibility diff --git a/dovetail/testcase/ipv6.tc004.yml b/dovetail/testcase/ipv6.tc004.yml index a69b9fcd..514a846e 100644 --- a/dovetail/testcase/ipv6.tc004.yml +++ b/dovetail/testcase/ipv6.tc004.yml @@ -12,5 +12,3 @@ dovetail.ipv6.tc004: sub_testcase_list: - tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43,smoke] - tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a,smoke] - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_list_networks - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_list_subnets diff --git a/dovetail/testcase/ipv6.tc005.yml b/dovetail/testcase/ipv6.tc005.yml index 52cae5f5..3dcca9b2 100644 --- a/dovetail/testcase/ipv6.tc005.yml +++ b/dovetail/testcase/ipv6.tc005.yml @@ -12,5 +12,3 @@ dovetail.ipv6.tc005: sub_testcase_list: - tempest.api.network.test_networks.NetworksIpV6Test.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e,smoke] - tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc,smoke] - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_show_network - - tempest.api.network.test_networks.NetworksIpV6TestAttrs.test_show_subnet diff --git a/dovetail/testcase/ipv6.tc018.yml b/dovetail/testcase/ipv6.tc018.yml index 93ae1235..406e02af 100644 --- a/dovetail/testcase/ipv6.tc018.yml +++ b/dovetail/testcase/ipv6.tc018.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc018: name: dovetail.ipv6.tc018 - objective: VIM ipv6 operations, to show information of an IPv6 port + objective: VIM ipv6 operations, to show information of an IPv6 port, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc019.yml b/dovetail/testcase/ipv6.tc019.yml index fab0acdb..1e3c171b 100644 --- a/dovetail/testcase/ipv6.tc019.yml +++ b/dovetail/testcase/ipv6.tc019.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc019: name: dovetail.ipv6.tc019 - objective: VIM ipv6 operations, to do IPv6 address assignment - dual stack, DHCPv6 stateless + objective: VIM ipv6 operations, to do IPv6 address assignment - dual stack, DHCPv6 stateless, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc020.yml b/dovetail/testcase/ipv6.tc020.yml index b31cd727..f7ab8b47 100644 --- a/dovetail/testcase/ipv6.tc020.yml +++ b/dovetail/testcase/ipv6.tc020.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc020: name: dovetail.ipv6.tc020 - objective: VIM ipv6 operations, to do IPv6 Address Assignment - Multiple Prefixes, DHCPv6 Stateless + objective: VIM ipv6 operations, to do IPv6 Address Assignment - Multiple Prefixes, DHCPv6 Stateless, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc021.yml b/dovetail/testcase/ipv6.tc021.yml index f8820f1d..466b75ca 100644 --- a/dovetail/testcase/ipv6.tc021.yml +++ b/dovetail/testcase/ipv6.tc021.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc021: name: dovetail.ipv6.tc021 - objective: VIM ipv6 operations, to do IPv6 Address Assignment - Dual Stack, Multiple Prefixes, DHCPv6 Stateless + objective: VIM ipv6 operations, to do IPv6 Address Assignment - Dual Stack, Multiple Prefixes, DHCPv6 Stateless, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc022.yml b/dovetail/testcase/ipv6.tc022.yml index 6c61702e..c1d371d6 100644 --- a/dovetail/testcase/ipv6.tc022.yml +++ b/dovetail/testcase/ipv6.tc022.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc022: name: dovetail.ipv6.tc022 - objective: VIM ipv6 operations, to do IPv6 Address Assignment - SLAAC + objective: VIM ipv6 operations, to do IPv6 Address Assignment - SLAAC, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc023.yml b/dovetail/testcase/ipv6.tc023.yml index 25193708..aea1a12b 100644 --- a/dovetail/testcase/ipv6.tc023.yml +++ b/dovetail/testcase/ipv6.tc023.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc023: name: dovetail.ipv6.tc023 - objective: VIM ipv6 operations, to do IPv6 Address Assignment - Dual Stack, SLAAC + objective: VIM ipv6 operations, to do IPv6 Address Assignment - Dual Stack, SLAAC, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc024.yml b/dovetail/testcase/ipv6.tc024.yml index 9a5f331e..8d248901 100644 --- a/dovetail/testcase/ipv6.tc024.yml +++ b/dovetail/testcase/ipv6.tc024.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc024: name: dovetail.ipv6.tc024 - objective: VIM ipv6 operations, to do IPv6 address assignment - multiple prefixes, SLAAC + objective: VIM ipv6 operations, to do IPv6 address assignment - multiple prefixes, SLAAC, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/testcase/ipv6.tc025.yml b/dovetail/testcase/ipv6.tc025.yml index 4cf3a005..35ef78c7 100644 --- a/dovetail/testcase/ipv6.tc025.yml +++ b/dovetail/testcase/ipv6.tc025.yml @@ -1,7 +1,7 @@ --- dovetail.ipv6.tc025: name: dovetail.ipv6.tc025 - objective: VIM ipv6 operations, to do IPv6 address assignment - dual stack, multiple prefixes, SLAAC + objective: VIM ipv6 operations, to do IPv6 address assignment - dual stack, multiple prefixes, SLAAC, scenario os-nosdn-nofeature dependent validate: type: functest testcase: tempest_custom diff --git a/dovetail/utils/dovetail_utils.py b/dovetail/utils/dovetail_utils.py index 7b613488..83390e9d 100644 --- a/dovetail/utils/dovetail_utils.py +++ b/dovetail/utils/dovetail_utils.py @@ -169,11 +169,11 @@ def show_progress_bar(length): def check_docker_version(logger=None): - ret, server_ver = exec_cmd("docker version -f'{{.Server.Version}}'", + ret, server_ver = exec_cmd("sudo docker version -f'{{.Server.Version}}'", logger=logger) - ret, client_ver = exec_cmd("docker version -f'{{.Client.Version}}'", + ret, client_ver = exec_cmd("sudo docker version -f'{{.Client.Version}}'", logger=logger) - logger.info("\ndocker version: \nclient:%s\nservr:%s", client_ver, + logger.info("\ndocker version: \nclient:%s\nserver:%s", client_ver, server_ver) if(LooseVersion(client_ver) <= LooseVersion('1.8.0') or LooseVersion(server_ver) <= LooseVersion('1.8.0')): diff --git a/utils/init_db.py b/dovetail/utils/local_db/init_db.py index 129c61f8..246139c4 100644 --- a/utils/init_db.py +++ b/dovetail/utils/local_db/init_db.py @@ -14,7 +14,6 @@ import sys db_host_ip = sys.argv[1] testapi_port = sys.argv[2] -source_url = 'http://testresults.opnfv.org/test/api/v1' target_url = 'http://{}:{}/api/v1'.format(db_host_ip, testapi_port) print(target_url) @@ -30,10 +29,10 @@ def post(url, data): def pod(): - source = '{}/pods'.format(source_url) target = '{}/pods'.format(target_url) - pods = get(source)['pods'] + with open('pods.json', 'r') as f: + pods = json.load(f) for p in pods: post(target, p) @@ -42,24 +41,25 @@ def pod(): def project(): - source = '{}/projects'.format(source_url) target = '{}/projects'.format(target_url) - - projects = get(source)['projects'] + with open('projects.json', 'r') as f: + projects = json.load(f) for p in projects: post(target, p) def cases(): - project_list = ['yardstick', 'functest', 'dovetail'] - - for p in project_list: - source = '{}/projects/{}/cases'.format(source_url, p) - target = '{}/projects/{}/cases'.format(target_url, p) - - cases = get(source)['testcases'] - for c in cases: - post(target, c) + with open('cases.json', 'r') as f: + for line in f: + try: + cases = json.loads(line) + for c in cases["testcases"]: + target = '{}/projects/{}/cases'.format(target_url, + c['project_name']) + print(target) + post(target, c) + except: + print("useless data") def add_pod(name, mode): diff --git a/utils/launch_db.sh b/dovetail/utils/local_db/launch_db.sh index f3681665..77646713 100755 --- a/utils/launch_db.sh +++ b/dovetail/utils/local_db/launch_db.sh @@ -29,10 +29,12 @@ echo "===================" echo "Create the mongodb." echo "===================" +set +e # pull image kkltcjk/mongodb:reporting mongodb_img="kkltcjk/mongodb:reporting" echo "Step1: pull the image $mongodb_img." -sudo docker pull $mongodb_img > /dev/null +sudo docker pull $mongodb_img +set -e container_name='mongodb' @@ -56,10 +58,12 @@ echo "==========================" echo "Create the testapi service." echo "==========================" +set +e # pull image kkltcjk/testapi:reporting testapi_img="kkltcjk/testapi:reporting" echo "Step1: pull the image $testapi_img." -sudo docker pull $testapi_img > /dev/null +sudo docker pull $testapi_img +set -e container_name='testapi' @@ -76,32 +80,17 @@ cmd="sudo docker run -itd -p ${testapi_port}:8000 --name ${container_name} -e mo echo $cmd ${cmd} -echo "Successfully create the testapi service." +echo "Wait for testapi to work..." +sleep 10 echo "=================================" echo "Upload default project info to DB" echo "=================================" -# For Ubuntu, there is file /etc/lsb-release -# For Centos and redhat, there is file /etc/redhat-release -if [ -f /etc/lsb-release ]; then - sudo apt-get update > /dev/null - sudo apt-get install -y python-pip > /dev/null -elif [ -f /etc/redhat-release ]; then - sudo yum -y update > /dev/null - sudo yum -y install epel-release > /dev/null - sudo yum -y install python-pip > /dev/null -else - echo "This operating system is not currently supported." - exit 1 -fi - -pip install requests > /dev/null - echo "Init DB info..." cmd="python ./init_db.py ${db_host_ip} ${testapi_port}" echo ${cmd} -${cmd} > /dev/null +${cmd} echo "Successfully load DB info." diff --git a/utils/restart_db.sh b/dovetail/utils/local_db/restart_db.sh index 39b60e05..39b60e05 100755 --- a/utils/restart_db.sh +++ b/dovetail/utils/local_db/restart_db.sh |