From 0cf6b232ac9cf128ee9183a27c08f4f74ab2e2e6 Mon Sep 17 00:00:00 2001 From: grakiss Date: Thu, 28 Sep 2017 03:47:54 -0400 Subject: add api&web services for cvp JIRA: DOVETAIL-512 add api&web services for cvp Change-Id: I9ef9525e980fe61dc3108035ef9a3ff8783b2697 Signed-off-by: grakiss --- .../components/guidelines/data/danube.json | 590 +++++++++++++++++++++ .../testapi-ui/components/guidelines/data/gen.py | 16 + .../components/guidelines/data/mandatory.json | 248 +++++++++ .../components/guidelines/guidelines.html | 70 +++ .../components/guidelines/guidelinesController.js | 188 +++++++ .../guidelines/partials/guidelineDetails.html | 90 ++++ .../guidelines/partials/testListModal.html | 46 ++ 7 files changed, 1248 insertions(+) create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/data/danube.json create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/data/gen.py create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/data/mandatory.json create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/guidelines.html create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/guidelinesController.js create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/partials/guidelineDetails.html create mode 100644 cvp/3rd_party/static/testapi-ui/components/guidelines/partials/testListModal.html (limited to 'cvp/3rd_party/static/testapi-ui/components/guidelines') diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/data/danube.json b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/danube.json new file mode 100644 index 00000000..99613b72 --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/danube.json @@ -0,0 +1,590 @@ +{ + "mandatory": { + "name": "Mandatory CVP Test Areas", + "value": [ + { + "area_name": "Test Area VIM Operations - Compute", + "value": [ + { + "api_name": "Image operations within the Compute API", + "value": [ + "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" + ] + }, + { + "api_name": "Basic support Compute API for server actions such as reboot, rebuild, resize", + "value": [ + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action", + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions" + ] + }, + { + "api_name": "Generate, import, and delete SSH keys within Compute services", + "value": [ + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair" + ] + }, + { + "api_name": "List supported versions of the Compute API", + "value": [ + "tempest.api.compute.test_versions.TestVersions.test_list_api_versions" + ] + }, + { + "api_name": "Quotas management in Compute API", + "value": [ + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas", + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas" + ] + }, + { + "api_name": "Basic server operations in the Compute API", + "value": [ + "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" + ] + }, + { + "api_name": "Retrieve volume information through the Compute API", + "value": [ + "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" + ] + } + ] + }, + { + "area_name": "Test Area VIM Operations - Identity", + "value": [ + { + "api_name": "API discovery operations within the Identity v3 API", + "value": [ + "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" + ] + }, + { + "api_name": "Auth operations within the Identity API", + "value": [ + "tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token" + ] + } + ] + }, + { + "area_name": "Test Area VIM Operations - Image", + "value": [ + { + "api_name": "Image deletion tests using the Glance v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Image get tests using the Glance v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "CRUD image operations in Images API v2", + "value": [ + "tempest.api.image.v2.test_images.ListImagesTest.test_list_no_params" + ] + }, + { + "api_name": "Image list tests using the Glance v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Image update tests using the Glance v2 API", + "value": [ + "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" + ] + } + ] + }, + { + "area_name": "Test Area VIM Operations - Network", + "value": [ + { + "api_name": "Basic CRUD operations on L2 networks and L2 network ports", + "value": [ + "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" + ] + }, + { + "api_name": "Basic CRUD operations on security groups", + "value": [ + "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" + ] + } + ] + }, + { + "area_name": "Test Area VIM Operations - Volume", + "value": [ + { + "api_name": "Volume attach and detach operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume service availability zone operations with the Cinder v2 API", + "value": [ + "tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list" + ] + }, + { + "api_name": "Volume cloning operations with the Cinder v2 API", + "value": [ + "tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone" + ] + }, + { + "api_name": "Image copy-to-volume operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume creation and deletion operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume service extension listing operations with the Cinder v2 API", + "value": [ + "tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions" + ] + }, + { + "api_name": "Volume GET operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume listing operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume metadata operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Verification of read-only status on volumes with the Cinder v2 API", + "value": [ + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update" + ] + }, + { + "api_name": "Volume reservation operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume snapshot creation/deletion operations with the Cinder v2 API", + "value": [ + "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" + ] + }, + { + "api_name": "Volume update operations with the Cinder v2 API", + "value": [ + "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" + ] + } + ] + }, + { + "area_name": "Test Area High Availability", + "value": [ + { + "api_name": "Verify high availability of OpenStack controller services", + "value": [ + "opnfv.ha.tc001.nova-api_service_down", + "opnfv.ha.tc003.neutron-server_service_down", + "opnfv.ha.tc004.keystone_service_down", + "opnfv.ha.tc005.glance-api_service_down", + "opnfv.ha.tc006.cinder-api_service_down", + "opnfv.ha.tc009.cpu_overload", + "opnfv.ha.tc010.disk_I/O_block", + "opnfv.ha.tc011.load_balance_service_down" + ] + } + ] + }, + { + "area_name": "Test Area vPing - Basic VNF Connectivity", + "value": [ + { + "api_name": "Verify basic VNF connectivity with ICMP ping packets", + "value": [ + "opnfv.vping.userdata", + "opnfv.vping.ssh" + ] + } + ] + } + ] + }, + "optional": { + "name": "Optional CVP Test Areas", + "value": [ + { + "area_name": "Test Area BGP VPN", + "value": [ + { + "api_name": "Verify association and dissasocitation of node using route targets", + "value": [ + "opnfv.sdnvpn.subnet_connectivity", + "opnfv.sdnvpn.tenant separation", + "opnfv.sdnvpn.router_association", + "opnfv.sdnvpn.router_association_floating_ip" + ] + } + ] + }, + { + "area_name": "Test Area IPv6 Compliance Testing Methodology and Test Cases", + "value": [ + { + "api_name": "Test Case 1: Create and Delete an IPv6 Network, Port and Subnet", + "value": [ + "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" + ] + }, + { + "api_name": "Test Case 2: Create, Update and Delete an IPv6 Network and Subnet", + "value": [ + "tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet" + ] + }, + { + "api_name": "Test Case 3: Check External Network Visibility", + "value": [ + "tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility" + ] + }, + { + "api_name": "Test Case 4: List IPv6 Networks and Subnets of a Tenant", + "value": [ + "tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks", + "tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets" + ] + }, + { + "api_name": "Test Case 5: Show Information of an IPv6 Network and Subnet", + "value": [ + "tempest.api.network.test_networks.NetworksIpV6Test.test_show_network", + "tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet" + ] + }, + { + "api_name": "Test Case 6: Create an IPv6 Port in Allowed Allocation Pools", + "value": [ + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_in_allowed_allocation_pools" + ] + }, + { + "api_name": "Test Case 7: Create an IPv6 Port without Security Groups", + "value": [ + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_with_no_securitygroups" + ] + }, + { + "api_name": "Test Case 8: Create, Update and Delete an IPv6 Port", + "value": [ + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_update_delete_port" + ] + }, + { + "api_name": "Test Case 9: List IPv6 Ports of a Tenant", + "value": [ + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_list_ports" + ] + }, + { + "api_name": "Test Case 10: Show Information of an IPv6 Port", + "value": [ + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_show_port" + ] + }, + { + "api_name": "Test Case 11: Add Multiple Interfaces for an IPv6 Router", + "value": [ + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_multiple_router_interfaces" + ] + }, + { + "api_name": "Test Case 12: Add and Remove an IPv6 Router Interface with port_id", + "value": [ + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_port_id" + ] + }, + { + "api_name": "Test Case 13: Add and Remove an IPv6 Router Interface with subnet_id", + "value": [ + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_subnet_id" + ] + }, + { + "api_name": "Test Case 14: Create, Update, Delete, List and Show an IPv6 Router", + "value": [ + "tempest.api.network.test_routers.RoutersIpV6Test.test_create_show_list_update_delete_router" + ] + }, + { + "api_name": "Test Case 15: Create, Update, Delete, List and Show an IPv6 Security Group", + "value": [ + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_list_update_show_delete_security_group" + ] + }, + { + "api_name": "Test Case 16: Create, Delete and Show Security Group Rules", + "value": [ + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_show_delete_security_group_rule" + ] + }, + { + "api_name": "Test Case 17: List All Security Groups", + "value": [ + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_list_security_groups" + ] + }, + { + "api_name": "Test Case 18: IPv6 Address Assignment - Dual Stack, SLAAC, DHCPv6 Stateless", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os" + ] + }, + { + "api_name": "Test Case 19: IPv6 Address Assignment - Dual Net, Dual Stack, SLAAC, DHCPv6 Stateless", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_dhcp6_stateless_from_os" + ] + }, + { + "api_name": "Test Case 20: IPv6 Address Assignment - Multiple Prefixes, Dual Stack, SLAAC, DHCPv6 Stateless", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_dhcpv6_stateless" + ] + }, + { + "api_name": "Test Case 21: IPv6 Address Assignment - Dual Net, Multiple Prefixes, Dual Stack, SLAAC, DHCPv6 Stateless", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_dhcpv6_stateless" + ] + }, + { + "api_name": "Test Case 22: IPv6 Address Assignment - Dual Stack, SLAAC", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_slaac_from_os" + ] + }, + { + "api_name": "Test Case 23: IPv6 Address Assignment - Dual Net, Dual Stack, SLAAC", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os" + ] + }, + { + "api_name": "Test Case 24: IPv6 Address Assignment - Multiple Prefixes, Dual Stack, SLAAC", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_slaac" + ] + }, + { + "api_name": "Test Case 25: IPv6 Address Assignment - Dual Net, Dual Stack, Multiple Prefixes, SLAAC", + "value": [ + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_slaac" + ] + } + ] + } + ] + } +} diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/data/gen.py b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/gen.py new file mode 100644 index 00000000..34fb6941 --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/gen.py @@ -0,0 +1,16 @@ +import json + +with open('danube.json') as f: + data = json.load(f) +mapping = {} +for i in data['mandatory']['value']: + for j in i['value']: + for k in j['value']: + mapping[k] = True +for i in data['optional']['value']: + for j in i['value']: + for k in j['value']: + mapping[k] = False + +with open('mandatory.json', 'w') as f: + f.write(json.dumps(mapping)) diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/data/mandatory.json b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/mandatory.json new file mode 100644 index 00000000..ce2ba857 --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/data/mandatory.json @@ -0,0 +1,248 @@ +{ + "opnfv.ha.tc001.nova-api_service_down": true, + "opnfv.ha.tc003.neutron-server_service_down": true, + "opnfv.ha.tc004.keystone_service_down": true, + "opnfv.ha.tc005.glance-api_service_down": true, + "opnfv.ha.tc006.cinder-api_service_down": true, + "opnfv.ha.tc009.cpu_overload": true, + "opnfv.ha.tc010.disk_I/O_block": true, + "opnfv.ha.tc011.load_balance_service_down": true, + "opnfv.sdnvpn.router_association": false, + "opnfv.sdnvpn.router_association_floating_ip": false, + "opnfv.sdnvpn.subnet_connectivity": false, + "opnfv.sdnvpn.tenant separation": false, + "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image": true, + "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name": true, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name": true, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers": true, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail": true, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus": true, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details": true, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name": true, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers": true, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail": true, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus": true, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details": true, + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action": true, + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status": true, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing": true, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server": true, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server": true, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard": true, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server": true, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item": true, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata": true, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password": true, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair": true, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name": true, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address": true, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256": true, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name": true, + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas": true, + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas": true, + "tempest.api.compute.test_versions.TestVersions.test_list_api_versions": true, + "tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume": true, + "tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments": true, + "tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types": true, + "tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources": true, + "tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses": true, + "tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token": true, + "tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image": true, + "tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_get_image_schema": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_get_images_schema": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_container_format": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_disk_format": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_limit": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_min_max_size": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_size": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_status": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_visibility": true, + "tempest.api.image.v2.test_images.ListImagesTest.test_list_no_params": true, + "tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id": true, + "tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image": true, + "tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image": true, + "tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id": true, + "tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image": true, + "tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image": true, + "tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag": true, + "tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image": true, + "tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network": false, + "tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port": false, + "tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_subnet": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_show_network": false, + "tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet": false, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers": true, + "tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway": true, + "tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet": true, + "tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet": true, + "tempest.api.network.test_networks.NetworksTest.test_list_networks": true, + "tempest.api.network.test_networks.NetworksTest.test_list_networks_fields": true, + "tempest.api.network.test_networks.NetworksTest.test_list_subnets": true, + "tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields": true, + "tempest.api.network.test_networks.NetworksTest.test_show_network": true, + "tempest.api.network.test_networks.NetworksTest.test_show_network_fields": true, + "tempest.api.network.test_networks.NetworksTest.test_show_subnet": true, + "tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields": true, + "tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp": true, + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_in_allowed_allocation_pools": false, + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_with_no_securitygroups": false, + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_update_delete_port": false, + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_list_ports": false, + "tempest.api.network.test_ports.PortsIpV6TestJSON.test_show_port": false, + "tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port": true, + "tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools": true, + "tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port": true, + "tempest.api.network.test_ports.PortsTestJSON.test_list_ports": true, + "tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields": true, + "tempest.api.network.test_ports.PortsTestJSON.test_show_port": true, + "tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields": true, + "tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_security_group_and_extra_attributes": true, + "tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_two_security_groups_and_extra_attributes": true, + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_multiple_router_interfaces": false, + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_port_id": false, + "tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_subnet_id": false, + "tempest.api.network.test_routers.RoutersIpV6Test.test_create_show_list_update_delete_router": false, + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_list_update_show_delete_security_group": false, + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_show_delete_security_group_rule": false, + "tempest.api.network.test_security_groups.SecGroupIPv6Test.test_list_security_groups": false, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule": true, + "tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group": true, + "tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule": true, + "tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list": true, + "tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions": true, + "tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_create_get_delete_snapshot_metadata": true, + "tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item": true, + "tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_create_get_delete_volume_metadata": true, + "tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item": true, + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance": true, + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment": true, + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume": true, + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable": true, + "tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update": true, + "tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete": true, + "tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone": true, + "tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone": true, + "tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_out_passing_size": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete": true, + "tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_details_with_params": true, + "tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_with_params": true, + "tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot": true, + "tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id": true, + "tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id": true, + "tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination": true, + "tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params": true, + "tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination": true, + "tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_dhcp6_stateless_from_os": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_dhcpv6_stateless": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_slaac": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_dhcpv6_stateless": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_slaac": false, + "tempest.scenario.test_network_v6.TestGettingAddress.test_slaac_from_os": false +} diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelines.html b/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelines.html new file mode 100644 index 00000000..6e138b89 --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelines.html @@ -0,0 +1,70 @@ +

OPNFV Ready™ Guidelines

+ + +
+
+ Version: + + +
+ +
+ +
+ + +Capability Status: +
+ + +
+ + + +
+
+ + +
+ + diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelinesController.js b/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelinesController.js new file mode 100644 index 00000000..46d2042a --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/guidelinesController.js @@ -0,0 +1,188 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +(function () { + 'use strict'; + + angular + .module('testapiApp') + .controller('GuidelinesController', GuidelinesController); + + GuidelinesController.$inject = ['$http', '$uibModal', 'testapiApiUrl']; + + /** + * TestAPI Guidelines Controller + * This controller is for the '/guidelines' page where a user can browse + * through tests belonging to Interop WG defined capabilities. + */ + function GuidelinesController($http, $uibModal, testapiApiUrl) { + var ctrl = this; + + ctrl.getVersionList = getVersionList; + ctrl.update = update; + + ctrl.showMandatory = true; + ctrl.showOptional = false; + ctrl.version = ''; + ctrl.data = null; + + /** + * The template to load for displaying capability details. + */ + ctrl.detailsTemplate = 'testapi-ui/components/guidelines/partials/' + + 'guidelineDetails.html'; + + /** + * Retrieve an array of available guideline files from the TestAPI + * API server, sort this array reverse-alphabetically, and store it in + * a scoped variable. The scope's selected version is initialized to + * the latest (i.e. first) version here as well. After a successful API + * call, the function to update the capabilities is called. + * Sample API return array: ["2015.03.json", "2015.04.json"] + */ + function getVersionList() { + ctrl.versionList = ['danube']; + ctrl.update(); + } + + /** + * This will contact the TestAPI API server to retrieve the JSON + * content of the guideline file corresponding to the selected + * version. + */ + function update() { + if (ctrl.version != ''){ + var path = 'testapi-ui/components/guidelines/data/' + ctrl.version + '.json'; + $http.get(path).success(function(data){ + ctrl.data = data; + }).error(function(error){ + }); + } + } + + + ctrl.getVersionList(); + } + + + + + + angular + .module('testapiApp') + .controller('TestListModalController', TestListModalController); + + TestListModalController.$inject = [ + '$uibModalInstance', '$http', 'version', + 'target', 'status', 'testapiApiUrl' + ]; + + /** + * Test List Modal Controller + * This controller is for the modal that appears if a user wants to see the + * test list corresponding to Interop WG capabilities with the selected + * statuses. + */ + function TestListModalController($uibModalInstance, $http, version, + target, status, testapiApiUrl) { + + var ctrl = this; + + ctrl.version = version; + ctrl.target = target; + ctrl.status = status; + ctrl.close = close; + ctrl.updateTestListString = updateTestListString; + + ctrl.aliases = true; + ctrl.flagged = false; + + // Check if the API URL is absolute or relative. + if (testapiApiUrl.indexOf('http') > -1) { + ctrl.url = testapiApiUrl; + } + else { + ctrl.url = location.protocol + '//' + location.host + + testapiApiUrl; + } + + /** + * This function will close/dismiss the modal. + */ + function close() { + $uibModalInstance.dismiss('exit'); + } + + /** + * This function will return a list of statuses based on which ones + * are selected. + */ + function getStatusList() { + var statusList = []; + angular.forEach(ctrl.status, function(value, key) { + if (value) { + statusList.push(key); + } + }); + return statusList; + } + + /** + * This will get the list of tests from the API and update the + * controller's test list string variable. + */ + function updateTestListString() { + var statuses = getStatusList(); + if (!statuses.length) { + ctrl.error = 'No tests matching selected criteria.'; + return; + } + ctrl.testListUrl = [ + ctrl.url, '/guidelines/', ctrl.version, '/tests?', + 'target=', ctrl.target, '&', + 'type=', statuses.join(','), '&', + 'alias=', ctrl.aliases.toString(), '&', + 'flag=', ctrl.flagged.toString() + ].join(''); + ctrl.testListRequest = + $http.get(ctrl.testListUrl). + then(function successCallback(response) { + ctrl.error = null; + ctrl.testListString = response.data; + if (!ctrl.testListString) { + ctrl.testListCount = 0; + } + else { + ctrl.testListCount = + ctrl.testListString.split('\n').length; + } + }, function errorCallback(response) { + ctrl.testListString = null; + ctrl.testListCount = null; + if (angular.isObject(response.data) && + response.data.message) { + ctrl.error = 'Error retrieving test list: ' + + response.data.message; + } + else { + ctrl.error = 'Unknown error retrieving test list.'; + } + }); + } + + // updateTestListString(); + //getVersionList(); + update(); + } +})(); diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/guidelineDetails.html b/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/guidelineDetails.html new file mode 100644 index 00000000..05a1ef5c --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/guidelineDetails.html @@ -0,0 +1,90 @@ + + +

{{ctrl.data.mandatory.name}}

+
+

{{area.area_name}}

+
    +
  1. + {{api.api_name}}
    + Area: {{area.area_name}}
    + Status: Mandatory
    + + Tests ({{api.value.length}}) +
      +
    • + + {{test}} +
    • +
    +
  2. +
+
+ +

{{ctrl.data.optional.name}}

+
+

{{area.area_name}}

+
    +
  1. + {{api.api_name}}
    + Status: Optional
    + + Tests ({{api.value.length}}) +
      +
    • + + {{test}} +
    • +
    +
  2. +
+
+ diff --git a/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/testListModal.html b/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/testListModal.html new file mode 100644 index 00000000..5b1d698d --- /dev/null +++ b/cvp/3rd_party/static/testapi-ui/components/guidelines/partials/testListModal.html @@ -0,0 +1,46 @@ + -- cgit 1.2.3-korg