diff --git a/2015.05.rst b/2015.05.rst index 24eda0c1..1b1e6047 100644 --- a/2015.05.rst +++ b/2015.05.rst @@ -95,7 +95,7 @@ Required Designated Sections Advisory Designated Sections ---------------------------- -* Keystone : Update pending from PTL +None Deprecated Designated Sections ------------------------------ diff --git a/2015.next.json b/2015.next.json index 0ce4bb1e..57e7ee10 100644 --- a/2015.next.json +++ b/2015.next.json @@ -1,6 +1,7 @@ { "id": "2015.next", - "schema": "1.2", + "schema": "1.3", + "reference": "https://git.openstack.org/cgit/openstack/defcore/schema/1.3.rst", "source": "http://git.openstack.org/cgit/openstack/defcore/", "status": "draft", "replaces": "2015.05", @@ -39,8 +40,14 @@ "removed": [] } }, - "capabilities": { - "identity-auth": { + "test-repositories": { + "tempest": { + "git-sha: "26149b612d", + "url": "https://git.openstack.org/cgit/openstack/tempest/" + } + }, + "capabilities": { + "identity-auth": { "achievements": [ "deployed", "tools", @@ -57,14 +64,20 @@ ], "admin": false, "status": "required", - "guidelines": ["2015.05"], + "guidelines": ["see required-since"], + "required-since": "2015.05", "description": "Auth operations within the Identity API", - "flagged": [], + "project": "keystone", + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "identity-auth", - "tests": [ - "tempest.api.identity.v2.test_tokens.TokensTest.test_create_token", - "tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token" - ] + "tests": { + "tempest.api.identity.v2.test_tokens.TokensTest.test_create_token": { + "idempotent_id": "id-65ae3b78-91ff-467b-a705-f6678863b8ec" + }, + "tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token": { + "idempotent_id": "id-6f8e4436-fc96-4282-8122-e41df57197a9" + } + } }, "compute-images": { "achievements": [ @@ -80,46 +93,71 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Image operations within the Compute API", - "flagged": [ - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_id", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_changes_since", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_status", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_type", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_ref", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_name", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_type", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_status", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_server_ref", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_limit_results", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_name", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_limit_results", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_changes_since" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-images", - "tests": [ - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_id", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_changes_since", - "tempest.api.compute.images.test_images.ImagesTestJSON.test_delete_saving_image", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_status", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_type", - "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_get_image", - "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_ref", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_name", - "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images_with_detail", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_type", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_status", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_server_ref", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_limit_results", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_name", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_limit_results", - "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images", - "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name", - "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_changes_since" - ] + "tests": { + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_id": { + "idempotent_id": "id-9f238683-c763-45aa-b848-232ec3ce3105" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_changes_since": { + "idempotent_id": "id-7d439e18-ac2e-4827-b049-7e18004712c4" + }, + "tempest.api.compute.images.test_images.ImagesTestJSON.test_delete_saving_image": { + "idempotent_id": "id-aa06b52b-2db5-4807-b218-9441f75d74e3" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_status": { + "idempotent_id": "id-9b0ea018-6185-4f71-948a-a123a107988e" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_type": { + "idempotent_id": "id-e3356918-4d3e-4756-81d5-abc4524ba29f" + }, + "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_get_image": { + "idempotent_id": "id-490d0898-e12a-463f-aef0-c50156b9f789" + }, + "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image": { + "idempotent_id": "id-3731d080-d4c5-4872-b41a-64d0d0021314" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_ref": { + "idempotent_id": "id-05a377b8-28cf-4734-a1e6-2ab5c38bf606" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_name": { + "idempotent_id": "id-33163b73-79f5-4d07-a7ea-9213bcc468ff" + }, + "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images_with_detail": { + "idempotent_id": "id-9f94cb6b-7f10-48c5-b911-a0b84d7d4cd6" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_type": { + "idempotent_id": "id-888c0cc0-7223-43c5-9db0-b125fd0a393b" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_status": { + "idempotent_id": "id-a3f5b513-aeb3-42a9-b18e-f091ef73254d" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_server_ref": { + "idempotent_id": "id-8c78f822-203b-4bf6-8bba-56ebd551cf84" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_limit_results": { + "idempotent_id": "id-3a484ca9-67ba-451e-b494-7fcf28d32d62" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_name": { + "idempotent_id": "id-644ea267-9bd9-4f3b-af9f-dffa02396a17" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_limit_results": { + "idempotent_id": "id-ba2fa9a9-b672-47cc-b354-3b4c0600e2cb" + }, + "tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images": { + "idempotent_id": "id-fd51b7f4-d4a3-4331-9885-866658112a6f" + }, + "tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name": { + "idempotent_id": "id-3b7c6fe4-dfe7-477c-9243-b06359db51e6" + }, + "tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_changes_since": { + "idempotent_id": "id-18bac3ae-da27-436c-92a9-b22474d13aab" + } + } }, "compute-flavors": { "achievements": [ @@ -138,23 +176,25 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Flavor operations in the Compute API", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-flavors", - "tests": [] + "tests": {} }, "compute-floating-ips": { "achievements": [], "admin": false, "status": "removed", - "guidelines": ["2014.07"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Manage floating IPs through the Compute API. Not consistently implemented between Nova net and Neutron", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "Compute Floating IPs", - "tests": [] + "tests": {} }, "compute-auth": { "achievements": [ @@ -173,22 +213,26 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Auth related tests using Compute API", - "flagged": [ - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_with_unauthorized_image", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_metadata_of_alt_account_server_fails", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_fails_when_tenant_incorrect", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_set_metadata_of_alt_account_server_fails" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-auth", - "tests": [ - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_with_unauthorized_image", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_metadata_of_alt_account_server_fails", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_fails_when_tenant_incorrect", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_set_metadata_of_alt_account_server_fails" - ] + "tests": { + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_with_unauthorized_image": { + "idempotent_id": "id-95d445f6-babc-4f2e-aea3-aa24ec5e7f0d" + }, + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_metadata_of_alt_account_server_fails": { + "idempotent_id": "id-dea1936a-473d-49f2-92ad-97bb7aded22e" + }, + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_server_fails_when_tenant_incorrect": { + "idempotent_id": "id-acf8724b-142b-4044-82c3-78d31a533f24" + }, + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_set_metadata_of_alt_account_server_fails": { + "idempotent_id": "id-c5f52351-53d9-4fc9-83e5-917f7f5e3d71" + } + } }, "compute-instance-actions": { "achievements": [ @@ -204,15 +248,20 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Basic support Compute API for server actions such as reboot, rebuild, resize", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-instance-actions", - "tests": [ - "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions", - "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action" - ] + "tests": { + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions": { + "idempotent_id": "id-77ca5cc5-9990-45e0-ab98-1de8fead201a" + }, + "tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action": { + "idempotent_id": "id-aacc71ca-1d70-4aa5-bbf6-0ff71470e43c" + } + } }, "compute-keypairs": { "achievements": [ @@ -229,19 +278,23 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Generate, import, and delete SSH keys within Compute services", - "flagged": [ - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_keypair_in_analt_user_tenant", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_keypair_of_alt_account_fails" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-keypairs", - "tests": [ - "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_keypair_in_analt_user_tenant", - "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_keypair_of_alt_account_fails" - ] + "tests": { + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair": { + "idempotent_id": "id-f9e15296-d7f9-4e62-b53f-a04e89160833" + }, + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_create_keypair_in_analt_user_tenant": { + "idempotent_id": "id-f03d1ded-7fd4-4d29-bc13-e2391f29c625" + }, + "tempest.api.compute.test_authorization.AuthorizationTestJSON.test_get_keypair_of_alt_account_fails": { + "idempotent_id": "id-85bcdd8f-56b4-4868-ae56-63fbf6f7e405" + } + } }, "compute-quotas": { "achievements": [ @@ -260,15 +313,20 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Quotas management in Compute API", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-quotas", - "tests": [ - "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas", - "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas" - ] + "tests": { + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas": { + "idempotent_id": "id-9bfecac7-b966-4f47-913f-1a9e2c12134a" + }, + "tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas": { + "idempotent_id": "id-f1ef0a97-dbbb-4cca-adc5-c9fbc4f76107" + } + } }, "compute-servers": { "achievements": [ @@ -287,112 +345,239 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Basic server operations in the Compute API", - "flagged": [ - "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip_regex", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_change_server_password", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_soft", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_get_console_output", - "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_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_with_a_deleted_server", - "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_by_limits_greater_than_actual_count", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_null_flavor", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_non_existent_flavor", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_confirm", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_revert", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-servers", - "tests": [ - "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_network_uuid", - "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_with_invalid_image", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name", - "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_delete_a_server_of_another_tenant", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_reboot_deleted_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_null_flavor", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_non_existent_flavor", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_of_another_tenant", - "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_set_empty_name", - "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256", - "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_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_with_a_deleted_server", - "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_by_limits_greater_than_actual_count", - "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip_regex", - "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_detailed_filter_by_server_status", - "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_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor", - "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_limit", - "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_filtered_by_ip", - "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_detailed_filter_by_server_name", - "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_confirm", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_change_server_password", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_revert", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server", - "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_soft", - "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address", - "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name", - "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password", - "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name", - "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus", - "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.ServersTestJSON.test_verify_server_details", - "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name", - "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata", - "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata", - "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_set_server_metadata", - "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item", - "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus", - "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name", - "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details", - "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers", - "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail" - ] + "tests": { + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256": { + "idempotent_id": "id-c3e0fb12-07fc-4d76-a22e-37409887afe8" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor": { + "idempotent_id": "id-18f5227f-d155-4429-807c-ccb103887537" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid": { + "idempotent_id": "id-4e72dc2d-44c5-4336-9667-f7972e95c402" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit": { + "idempotent_id": "id-7fc74810-0bd2-4cd7-8244-4f33a9db865a" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image": { + "idempotent_id": "id-fcba1052-0a50-4cf3-b1ac-fae241edf02f" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name": { + "idempotent_id": "id-fd57f159-68d6-4c2a-902b-03070828a87e" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit": { + "idempotent_id": "id-f4d7279b-5fd2-4bf2-9ba4-ae35df0d18c5" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id": { + "idempotent_id": "id-75f79124-277c-45e6-a373-a1d6803f4cc4" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_a_server_of_another_tenant": { + "idempotent_id": "id-5c75009d-3eea-423e-bea3-61b09fd25f9c" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server": { + "idempotent_id": "id-3436b02f-1b1e-4f03-881e-c6a602327439" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address": { + "idempotent_id": "id-5226dd80-1e9c-4d8a-b5f9-b26ca4763fd0" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server": { + "idempotent_id": "id-d4c023a0-9c55-4747-9dd5-413b820143c7" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_reboot_deleted_server": { + "idempotent_id": "id-98fa0458-1485-440f-873b-fe7f0d714930" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server": { + "idempotent_id": "id-d86141a7-906e-4731-b187-d64a2ea61422" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_null_flavor": { + "idempotent_id": "id-45436a7d-a388-4a35-a9d8-3adc5d0d940b" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_resize_server_with_non_existent_flavor": { + "idempotent_id": "id-ced1a1d7-2ab6-45c9-b90f-b27d87b30efd" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank": { + "idempotent_id": "id-dbbfd247-c40c-449e-8f6c-d2aa7c7da7cf" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server": { + "idempotent_id": "id-a31460a9-49e1-42aa-82ee-06e0bb7c2d03" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_of_another_tenant": { + "idempotent_id": "id-543d84c1-dd2e-4c6d-8cb2-b9da0efaa384" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server": { + "idempotent_id": "id-aa8eed43-e2cb-4ebf-930b-da14f6a21d81" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name": { + "idempotent_id": "id-38204696-17c6-44da-9590-40f87fb5a899" + }, + "tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256": { + "idempotent_id": "id-5c8e244c-dada-4590-9944-749c455b431f" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date": { + "idempotent_id": "id-74745ad8-b346-45b5-b9b8-509d7447fc1f" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date": { + "idempotent_id": "id-87d12517-e20a-4c9c-97b6-dd1628d6d6c9" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits": { + "idempotent_id": "id-12c80a9f-2dec-480e-882b-98ba15757659" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value": { + "idempotent_id": "id-62610dd9-4713-4ee0-8beb-fd2c1aa7f950" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string": { + "idempotent_id": "id-679bc053-5e70-4514-9800-3dfab1a380a6" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor": { + "idempotent_id": "id-5913660b-223b-44d4-a651-a0fbfd44ca75" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image": { + "idempotent_id": "id-ff01387d-c7ad-47b4-ae9e-64fa214638fe" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name": { + "idempotent_id": "id-e2c77c4a-000a-4af3-a0bd-629a328bde7c" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted": { + "idempotent_id": "id-93055106-2d34-46fe-af68-d9ddbf7ee570" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server": { + "idempotent_id": "id-24a26f1a-1ddc-4eea-b0d7-a90cc874ad8f" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing": { + "idempotent_id": "id-fcdf192d-0f74-4d89-911f-1ec002b822c4" + }, + "tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count": { + "idempotent_id": "id-d47c17fb-eebd-4287-8e95-f20a7e627b18" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip_regex": { + "idempotent_id": "id-a905e287-c35e-42f2-b132-d02b09f3654a" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name": { + "idempotent_id": "id-9b067a7b-7fee-4f6a-b29c-be43fe18fc5a" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status": { + "idempotent_id": "id-de2612ab-b7dd-4044-b0b1-d2539601911f" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status": { + "idempotent_id": "id-ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard": { + "idempotent_id": "id-e9f624ee-92af-4562-8bec-437945a18dcb" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor": { + "idempotent_id": "id-573637f5-7325-47bb-9144-3476d0416908" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results": { + "idempotent_id": "id-67aec2d0-35fe-4503-9f92-f13272b867ed" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit": { + "idempotent_id": "id-614cdfc1-d557-4bac-915b-3e67b48eee76" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image": { + "idempotent_id": "id-b3304c3b-97df-46d2-8cd3-e2b6659724e7" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip": { + "idempotent_id": "id-43a1242e-7b31-48d1-88f2-3f72aa9f2077" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image": { + "idempotent_id": "id-05e8a8e7-9659-459a-989d-92c2f501f4ba" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name": { + "idempotent_id": "id-f9eb2b70-735f-416c-b260-9914ac6181e4" + }, + "tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor": { + "idempotent_id": "id-80c574cc-0925-44ba-8602-299028357dd9" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_confirm": { + "idempotent_id": "id-1499262a-9328-4eda-9068-db1ac57498d2" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard": { + "idempotent_id": "id-2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_change_server_password": { + "idempotent_id": "id-6158df09-4b82-4ab3-af6d-29cf36af858d" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server": { + "idempotent_id": "id-af8eafd4-38a7-4a4b-bdbc-75145a580560" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server": { + "idempotent_id": "id-aaa6cdf3-55a7-461a-add9-1c8596b9a07c" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_server_revert": { + "idempotent_id": "id-c03aab19-adb1-44f5-917d-c419577e9e68" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server": { + "idempotent_id": "id-80a8094c-211e-440a-ab88-9e59d556c7ee" + }, + "tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_soft": { + "idempotent_id": "id-4640e3ef-a5df-482e-95a1-ceeeb0faa84d" + }, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address": { + "idempotent_id": "id-89b90870-bc13-4b73-96af-f9d4f2b70077" + }, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name": { + "idempotent_id": "id-8fea6be7-065e-47cf-89b8-496e6f96c699" + }, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password": { + "idempotent_id": "id-b92d5ec7-b1dd-44a2-87e4-45e888c46ef0" + }, + "tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name": { + "idempotent_id": "id-5e6ccff8-349d-4852-a8b3-055df7988dd2" + }, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus": { + "idempotent_id": "id-cbc0f52f-05aa-492b-bdc1-84b575ca294b" + }, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers": { + "idempotent_id": "id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f" + }, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail": { + "idempotent_id": "id-585e934c-448e-43c4-acbf-d06a9b899997" + }, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details": { + "idempotent_id": "id-5de47127-9977-400a-936f-abcfbec1218f" + }, + "tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name": { + "idempotent_id": "id-ac1ad47f-984b-4441-9274-c9079b7a0666" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata": { + "idempotent_id": "id-344d981e-0c33-4997-8a5d-6c1d803e4134" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata": { + "idempotent_id": "id-479da087-92b3-4dcf-aeb3-fd293b2d14ce" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item": { + "idempotent_id": "id-127642d6-4c7b-4486-b7cd-07265a378658" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item": { + "idempotent_id": "id-3043c57d-7e0e-49a6-9a96-ad569c265e6a" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata": { + "idempotent_id": "id-211021f6-21de-4657-a68f-908878cfe251" + }, + "tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item": { + "idempotent_id": "id-58c02d4f-5c67-40be-8744-d3fa5982eb1c" + }, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus": { + "idempotent_id": "id-cbc0f52f-05aa-492b-bdc1-84b575ca294b" + }, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name": { + "idempotent_id": "id-ac1ad47f-984b-4441-9274-c9079b7a0666" + }, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details": { + "idempotent_id": "id-5de47127-9977-400a-936f-abcfbec1218f" + }, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers": { + "idempotent_id": "id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f" + }, + "tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail": { + "idempotent_id": "id-585e934c-448e-43c4-acbf-d06a9b899997" + } + } }, "compute-volume": { "achievements": [ @@ -411,18 +596,29 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "Retrieve volume information through the Compute API", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-volume", - "tests": [ - "tempest.api.compute.volumes.test_volumes_list.VolumesTestJSON.test_volume_list", - "tempest.api.compute.volumes.test_volumes_list.VolumesTestJSON.test_volume_list_with_details", - "tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume", - "tempest.api.compute.volumes.test_volumes_negative.VolumesNegativeTest.test_get_volume_without_passing_volume_id", - "tempest.api.compute.volumes.test_volumes_negative.VolumesNegativeTest.test_get_invalid_volume_id" - ] + "tests": { + "tempest.api.compute.volumes.test_volumes_list.VolumesTestJSON.test_volume_list": { + "idempotent_id": "id-bc2dd1a0-15af-48e5-9990-f2e75a48325d" + }, + "tempest.api.compute.volumes.test_volumes_list.VolumesTestJSON.test_volume_list_with_details": { + "idempotent_id": "id-bad0567a-5a4f-420b-851e-780b55bb867c" + }, + "tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume": { + "idempotent_id": "id-52e9045a-e90d-4c0d-9087-79d657faffff" + }, + "tempest.api.compute.volumes.test_volumes_negative.VolumesNegativeTest.test_get_volume_without_passing_volume_id": { + "idempotent_id": "id-62bab09a-4c03-4617-8cca-8572bc94af9b" + }, + "tempest.api.compute.volumes.test_volumes_negative.VolumesNegativeTest.test_get_invalid_volume_id": { + "idempotent_id": "id-f01904f2-e975-4915-98ce-cb5fa27bde4f" + } + } }, "compute-servers-metadata": { "achievements": [ @@ -442,20 +638,21 @@ "guidelines": [], "project": "nova", "description": "Manage the access to ip extended attribute for servers through the Compute API", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "compute-servers-metadata", - "tests": [] + "tests": {} }, "images-v1": { "achievements": [], "admin": false, "status": "removed", - "guidelines": ["2014.07"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "glance", "description": "Basic image management in the Images API v1", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "images-v1", - "tests": [] + "tests": {} }, "images-v2": { "achievements": [ @@ -470,16 +667,17 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "nova", "description": "CRUD image operations in Images API v2", - "flagged": [ - "tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "images-v2", - "tests": [ - "tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params" - ] + "tests": { + "tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params": { + "idempotent_id": "id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee" + } + } }, "objectstore-object": { "achievements": [ @@ -495,32 +693,59 @@ ], "admin": false, "status": "required", - "guidelines": ["2014.07", "2015.03", "2015.04", "2015.05"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "project": "swift", "description": "Basic object operations in Object Storage API", - "flagged": [ - "tempest.api.object_storage.test_object_expiry.ObjectExpiryTest.test_get_object_after_expiry_time", - "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_object_with_another_user_creds", - "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds" - ], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "objectstore-object", - "tests": [ - "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_2d_way", - "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_in_same_container", - "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_across_containers", - "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_to_itself", - "tempest.api.object_storage.test_object_services.ObjectTest.test_create_object", - "tempest.api.object_storage.test_object_services.ObjectTest.test_delete_object", - "tempest.api.object_storage.test_object_services.ObjectTest.test_get_object", - "tempest.api.object_storage.test_object_services.ObjectTest.test_get_object_if_different", - "tempest.api.object_storage.test_object_services.ObjectTest.test_object_upload_in_segments", - "tempest.api.object_storage.test_object_temp_url.ObjectTempUrlTest.test_put_object_using_temp_url", - "tempest.api.object_storage.test_object_temp_url.ObjectTempUrlTest.test_get_object_using_temp_url", - "tempest.api.object_storage.test_object_version.ContainerTest.test_versioned_container", - "tempest.api.object_storage.test_object_expiry.ObjectExpiryTest.test_get_object_after_expiry_time", - "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_object_with_another_user_creds", - "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds" - ] + "tests": { + "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_2d_way": { + "idempotent_id": "id-06f90388-2d0e-40aa-934c-e9a8833e958a" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_in_same_container": { + "idempotent_id": "id-1a9ab572-1b66-4981-8c21-416e2a5e6011" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_across_containers": { + "idempotent_id": "id-aa467252-44f3-472a-b5ae-5b57c3c9c147" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_copy_object_to_itself": { + "idempotent_id": "id-2248abba-415d-410b-9c30-22dff9cd6e67" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_create_object": { + "idempotent_id": "id-5b4ce26f-3545-46c9-a2ba-5754358a4c62" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_delete_object": { + "idempotent_id": "id-17738d45-03bd-4d45-9e0b-7b2f58f98687" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_get_object": { + "idempotent_id": "id-02610ba7-86b7-4272-9ed8-aa8d417cb3cd" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_get_object_if_different": { + "idempotent_id": "id-50d01f12-526f-4360-9ac2-75dd508d7b68" + }, + "tempest.api.object_storage.test_object_services.ObjectTest.test_object_upload_in_segments": { + "idempotent_id": "id-e3e6a64a-9f50-4955-b987-6ce6767c97fb" + }, + "tempest.api.object_storage.test_object_temp_url.ObjectTempUrlTest.test_put_object_using_temp_url": { + "idempotent_id": "id-9b08dade-3571-4152-8a4f-a4f2a873a735" + }, + "tempest.api.object_storage.test_object_temp_url.ObjectTempUrlTest.test_get_object_using_temp_url": { + "idempotent_id": "id-f91c96d4-1230-4bba-8eb9-84476d18d991" + }, + "tempest.api.object_storage.test_object_version.ContainerTest.test_versioned_container": { + "idempotent_id": "id-a151e158-dcbf-4a1f-a1e7-46cd65895a6f" + }, + "tempest.api.object_storage.test_object_expiry.ObjectExpiryTest.test_get_object_after_expiry_time": { + "idempotent_id": "id-fb024a42-37f3-4ba5-9684-4f40a7910b41" + }, + "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_object_with_another_user_creds": { + "idempotent_id": "id-54e2a2fe-42dc-491b-8270-8e4217dd4cdc" + }, + "tempest.api.object_storage.test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds": { + "idempotent_id": "id-07c9cf95-c0d4-4b49-b9c8-0ef2c9b27193" + } + } }, "auth-token": { "achievements": [], @@ -529,19 +754,20 @@ "guidelines": [], "project": "keystone", "description": "Generate an auth token given an identity endpoint", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "auth-token", - "tests": [] - }, + "tests": {} + }, "volume": { "achievements": [], "admin": true, "status": "removed", - "guidelines": ["2014.07"], + "guidelines": ["see required-since"], + "required-since": "2014.07", "description": "CRUD operations for volumes management in Block Storage API", - "flagged": [], + "flagged": ["section moved to ./tests/test_name/flagged"], "name": "volume", - "tests": [] + "tests": {} } }, "designated-sections" : { @@ -616,7 +842,7 @@ "catch_errors": { "description": "not provided", "designated": true, "comment": "middleware"}, "healthcheck": { "description": "not provided", "designated": true, "comment": ""}, "bulk": { "description": "not provided", "designated": true, "comment": ""}, - "slo": { "description": "not provided", "designated": true, "comment": ""}, + "slo": { "description": "not provided", "designated": true, "comment": ""}, "container-quotas": { "description": "not provided", "designated": true, "comment": ""}, "account-quotas": { "description": "not provided", "designated": true, "comment": ""}, "tempurl": { "description": "not provided", "designated": true, "comment": ""}, diff --git a/HACKING.rst b/HACKING.rst index 91662629..50e05fbf 100644 --- a/HACKING.rst +++ b/HACKING.rst @@ -15,23 +15,26 @@ DefCore Specific Commandments you are concerned with. - [D301] The "tests" lists in the .json capabilities lists are immutable once approved by the Board. Therefore if you desire to flag a test, - in an approved capability list, add it to the "flagged" section but do - not remove it from the "tests" section. -- [D302] If a capability is found to not meet the `Core Criteria - <./process/CoreCriteria.rst>`_ after the Board has approved a guideline, - the corresponding tests should be added to the "flagged" section of - the relevant Board-approved guidelines and removed from the "tests" - section of the .next.json file. + in an approved capability list, add a "flagged" block to the test. Do + _not_ remove it from the "tests" section. +- [D302] If a test is found to not meet the DefCore Flagging Criteria + defined in this document after the Board has approved a Guideline, + the corresponding tests should have a "flagged" block added to the + the relevant tests in the "tests" section of the relevant Board-approved + Guidelines. + - See [D307] for details about format requirements. + - See [D308] for conditions on also adding to the .next.json. - [D303] Tests that are found to inadequately test the underlying - Capability, due to bugs or design flaws should be added to the - "flagged" section of the most recent Board-approved guideline and the - .next.json list. -- [D304] When the Board approves the capabilities listed in the + Capability, due to bugs or design flaws, should have a "flagged" + block added to the section for the test in the "tests" section of + the most recent Board-approved Guideline. +- [D304] Before the Board approves the capabilities listed in the .next.json file, a committee member will submit a patch that copies the .next.json file to an appropriately named new file, updates the - "status", "replaces", and "id" fields, and updates the "guidelines" - field within each capability. These fields shouldn't be adjusted - until the Board has approved the list. + "status", "replaces", and "id" fields, and updates the "required-since" + field within newly required capabilities. The patch should include the + matching generated RST version of the JSON file. This patch should be + marked as -1 workflow until after approval. - [D305] DefCore guidelines generally cover the most recent three releases of OpenStack, though the DefCore Committee has the power to determine otherwise. The "releases" section of the .next.json file @@ -42,3 +45,10 @@ DefCore Specific Commandments definitions and processes found in the "process" directory of the repository rather than duplicating or restating them. This helps us avoid the appearance of having multiple sources of truth. +- [D307] When adding a "flagged" section to a json file, all fields + listed in the relevant schema document for the "flagged" section are + required. +- [D308] If the reason for adding a "flagged" block is not expected + to be resolved before the next Guideline is submitted to tbe Board + for approval, then matching entries should also be made in the + .next.json Guideline. diff --git a/README.rst b/README.rst index 8e13d464..fb0873c2 100644 --- a/README.rst +++ b/README.rst @@ -12,6 +12,9 @@ DefCore Process Documentation The /process directory contains details about the DefCore process. +The /schema directory contains details about the JSON schema versions used to +express Guidelines. + :Core Definition: process/CoreDefinition.rst :Process Goverance: process/2015A.rst (please check for latest) :Designated Sections: process/DesignatedSections.rst @@ -20,54 +23,3 @@ The /process directory contains details about the DefCore process. :Platform and Components: process/PlatformCap.rst :DefCore Cycles: process/ProcessCycles.rst :Terminology: process/Lexicon.rst - -JSON Schema -==================== - -The JSON files have a specific schema to support - -.. code-block:: json - - { "id": "2015.03", # Spec name (date based) - "source": "http://git.openstack.org/cgit/openstack/defcore/", # git repo for files - "schema": "1.2", # Schema version - "status": "approved", # can be draft, review or approved - "replaces": "2014.07", # previous spec - "releases": ["icehouse"], # array of releases, lower case - "platform": { # platform components - "required": ["compute", "object"], # array - "advisory": [], # incoming array - "depricated": [], # outgoing array - "removed": [] # removed array - }, - "components": { # components detail - "compute": { # component name - "required": [ # required array - "compute-auth"], - "advisory": [ # incoming array - "compute-servers-metadata"], - "deprecated": [], # outgoing array - "removed": [ # removed array - "volume"] - }, - }, - "criteria" : { # explains achievements - "atomic" : { "Description" : "blah blah blah", - "name" : "Atomic", - "weight": 8 - }, - "capabilities": { # capabilities listed in components - "example-cap" : # capability - { "achievements" : # array of criteria met - [ "deployed", - "future", - "complete"], - "admin" : false, # is admin API - "status" : "required", # de-normalized from components - "description" : "Helpful Description", - "flagged" : [ ], # flagged tests array - "name" : "Friendly Short Name", - "tests" : # list of tests (please use UUIDs) - [ "tempest.api.project.file.class.test_name" ] - }, - diff --git a/schema/1.2.rst b/schema/1.2.rst new file mode 100644 index 00000000..2bd15605 --- /dev/null +++ b/schema/1.2.rst @@ -0,0 +1,48 @@ +JSON Schema v1.2 +==================== + +.. code-block:: json + + { "id": "2015.03", # Spec name (date based) + "source": "http://git.openstack.org/cgit/openstack/defcore/", # git repo for files + "schema": "1.2", # Schema version + "status": "approved", # can be draft, review or approved + "replaces": "2014.07", # previous spec + "releases": ["icehouse"], # array of releases, lower case + "platform": { # platform components + "required": ["compute", "object"], # array + "advisory": [], # incoming array + "depricated": [], # outgoing array + "removed": [] # removed array + }, + "components": { # components detail + "compute": { # component name + "required": [ # required array + "compute-auth"], + "advisory": [ # incoming array + "compute-servers-metadata"], + "deprecated": [], # outgoing array + "removed": [ # removed array + "volume"] + }, + }, + "criteria" : { # explains achievements + "atomic" : { "Description" : "blah blah blah", + "name" : "Atomic", + "weight": 8 + }, + "capabilities": { # capabilities listed in components + "example-cap" : # capability + { "achievements" : # array of criteria met + [ "deployed", + "future", + "complete"], + "admin" : false, # is admin API + "status" : "required", # de-normalized from components + "description" : "Helpful Description", + "flagged" : [ ], # flagged tests array + "name" : "Friendly Short Name", + "tests" : # list of tests (please use UUIDs) + [ "tempest.api.project.file.class.test_name" ] + }, + diff --git a/schema/1.3.rst b/schema/1.3.rst new file mode 100644 index 00000000..c95e1c96 --- /dev/null +++ b/schema/1.3.rst @@ -0,0 +1,100 @@ +JSON Schema v1.3 +==================== + +Changes from v1.2 +:added: reference +:added: tests-repositories +:added: required-since +:added: tests now have block including idempotent_id and (optional) flagged information +:change: guidelines to point to required-since +:change: tests from array to hash +:change: add hash after test-name keys +:change: flagged points to new location tests/test-name/flagged +:change: new version 1.3 + + +.. code-block:: json + + { "id": "2015.03", # Spec name (date based) + "schema": "1.3", # Schema version + "reference": "http://github.com/openstack/defcore/schema.1.3.rst", # Schema description + "source": "http://git.openstack.org/cgit/openstack/defcore/", # git repo for files + "status": "approved", # can be draft, review or approved + "replaces": "2014.07", # previous spec + "releases": ["icehouse"], # array of releases, lower case (generally three releases) + "platform": { # platform components + "required": [ # required array + "compute", "object" + ], + "advisory": [], # incoming array + "deprecated": [], # outgoing array + "removed": [] # removed array + }, + "components": { # components detail + "compute": { # component name + "required": [ # required array + "compute-auth" + ], + "advisory": [ # incoming array + "compute-servers-metadata" + ], + "deprecated": [], # outgoing array + "removed": [ # removed array + "volume" + ] + }, + }, + "test-repositories": { # tracks difference possible test sources + "tempest": { # source of tests + "git-sha": "c77e46d8e3", # reference for automated checkout + "url": "https://git.openstack.org/cgit/openstack/tempest/" # git location from OpenStack + } + }, + "criteria" : { # explains achievements + "core01" : { + "Description" : "blah blah blah", + "name" : "readable core01", # allows more readable name than key + "weight": 8 # total of all weights must be 100 + }, + } + "capabilities": { # capabilities listed in components + "example-cap" : { # capability key (cross reference to components required) + "achievements" : ["core01"], # array of criteria met. must be one of items from "criteria" section + "admin" : false, # boolean designating whether an admin API is required + "status" : "required", # One of: required, advisory, deprecated, or removed + "guidelines" : ["deprecated"] # deprecated DO NOT USE + "required-since" : "2015.05" # guideline where capability became required, "" if not required + "description" : "Helpful Description", + "flagged" : [], # deprecated DO NOT USE, moved under test + "name" : "Friendly Short Name", + "tests" : { # hash of tests (use unique names) + "tempest.api.project.file.class.test_name" : { # test ID + "idempotent_id" : "id-123-456", # internal test identifier to track changes if test is moved + "flagged" : { # This section is required only if the test is flagged + "reason" : "why this test was flagged", # required to support flag request + "action" : "proposed action to resolve", # required path to resolve flag + "date" : "yyyy-mm-dd" # date flag was proposed (not approved) + } + }, + }, + }, + }, + "designated-sections" : { # designated sections + "required" : { # sections that are required for this Guideline + "nova" : { # project name + "guidance": "short description", # general information providing actionable detail + "comment": "optional rationale", # additional clairification + "sections": { # hash of sections, project specific + "section": { # key / name of a section + "description": "useful detail", # expand on key in useful way + "designated": false, # boolean. true if designated. must align with guidance + "comment": "none provided" # optional details + } + } + } + }, + "advisory" : { # not required in this Guideline but may be required in a future guideline }, + "deprecated" : { # no longer required in this Guideline and will be removed in futur Guidelines }, + "removed" : { # no longer required and have been removed since the last Guideline } + } + }