Initial draft of 2015.03 guideline
Initial draft of 2015.03 guideline as passed by the board. We are condensing two steps into one here > format & content. After we accept this, we will create a new prelim guideline for the next review cycle (target at 2015.04!). I've also moved from files out of the root directory for cleanup. The RST and JSON files should match in content. Change-Id: I40623b38e80a7d4a65a66d7210f6dfad5835c371
This commit is contained in:
parent
dc3bc3ca45
commit
32ce79536e
4
.gitreview
Normal file
4
.gitreview
Normal file
@ -0,0 +1,4 @@
|
||||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=openstack/defcore
|
520
2015.03.json
Normal file
520
2015.03.json
Normal file
@ -0,0 +1,520 @@
|
||||
{
|
||||
"id": "2015.03",
|
||||
"schema": "1.1",
|
||||
"status": "approved",
|
||||
"replaces": "2014.07",
|
||||
"releases": ["havana", "icehouse"],
|
||||
"platform": {
|
||||
"required": ["compute", "object"],
|
||||
"advisory": [],
|
||||
"deprecated": [],
|
||||
"removed": []
|
||||
},
|
||||
"components": {
|
||||
"compute": {
|
||||
"required": [
|
||||
"compute-auth",
|
||||
"compute-flavors",
|
||||
"compute-images",
|
||||
"compute-instance-actions",
|
||||
"compute-keypairs",
|
||||
"compute-quotas",
|
||||
"compute-servers",
|
||||
"compute-volume",
|
||||
"images-v2"],
|
||||
"advisory": [
|
||||
"auth-token",
|
||||
"compute-servers-metadata"],
|
||||
"deprecated": [],
|
||||
"removed": [
|
||||
"compute-floating-ips",
|
||||
"images-v1",
|
||||
"volume"]
|
||||
},
|
||||
"object": {
|
||||
"required": ["objectstore-object"],
|
||||
"advisory": [],
|
||||
"deprecated": [],
|
||||
"removed": []
|
||||
}
|
||||
},
|
||||
"capabilities": {
|
||||
"compute-images": {
|
||||
"achievements": [
|
||||
"tools",
|
||||
"clients",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Image operations within the Compute API",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-flavors": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Flavor operations in the Compute API",
|
||||
"flagged": [],
|
||||
"name": "compute-flavors",
|
||||
"tests": []
|
||||
},
|
||||
"compute-floating-ips": {
|
||||
"achievements": [],
|
||||
"admin": false,
|
||||
"status": "removed",
|
||||
"guidelines": ["2014.07"],
|
||||
"description": "Manage floating IPs through the Compute API. Not consistently implemented between Nova net and Neutron",
|
||||
"flagged": [],
|
||||
"name": "Compute Floating IPs",
|
||||
"tests": []
|
||||
},
|
||||
"compute-auth": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"sticky",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Auth related tests using Compute API",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-instance-actions": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"foundation",
|
||||
"atomic"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Basic support Compute API for server actions such as reboot, rebuild, resize",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-keypairs": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"atomic"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Generate, import, and delete SSH keys within Compute services",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-quotas": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Quotas management in Compute API",
|
||||
"flagged": [],
|
||||
"name": "compute-quotas",
|
||||
"tests": [
|
||||
"tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas",
|
||||
"tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas"
|
||||
]
|
||||
},
|
||||
"compute-servers": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"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"
|
||||
],
|
||||
"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_server_actions.ServerActionsTestJSON.test_get_console_output",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-volume": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Retrieve volume information through the Compute API",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"compute-servers-metadata": {
|
||||
"achievements": [
|
||||
"deployed",
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"sticky",
|
||||
"foundation"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "advisory",
|
||||
"guidelines": [],
|
||||
"description": "Manage the access to ip extended attribute for servers through the Compute API",
|
||||
"flagged": [],
|
||||
"name": "compute-servers-metadata",
|
||||
"tests": []
|
||||
},
|
||||
"images-v1": {
|
||||
"achievements": [],
|
||||
"admin": false,
|
||||
"status": "removed",
|
||||
"guidelines": ["2014.07"],
|
||||
"description": "Basic image management in the Images API v1",
|
||||
"flagged": [],
|
||||
"name": "images-v1",
|
||||
"tests": []
|
||||
},
|
||||
"images-v2": {
|
||||
"achievements": [
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"discover",
|
||||
"doc",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "CRUD image operations in Images API v2",
|
||||
"flagged": [],
|
||||
"name": "images-v2",
|
||||
"tests": [
|
||||
"tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params"
|
||||
]
|
||||
},
|
||||
"objectstore-object": {
|
||||
"achievements": [
|
||||
"tools",
|
||||
"clients",
|
||||
"future",
|
||||
"complete",
|
||||
"stable",
|
||||
"doc",
|
||||
"foundation",
|
||||
"atomic",
|
||||
"proximity"
|
||||
],
|
||||
"admin": false,
|
||||
"status": "required",
|
||||
"guidelines": ["2014.07", "2015.03"],
|
||||
"description": "Basic object operations in Object Storage API",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"auth-token": {
|
||||
"achievements": [],
|
||||
"admin": false,
|
||||
"status": "advisory",
|
||||
"guidelines": [],
|
||||
"description": "Generate an auth token given an identity endpoint",
|
||||
"flagged": [],
|
||||
"name": "auth-token",
|
||||
"tests": []
|
||||
}
|
||||
},
|
||||
"volume": {
|
||||
"achievements": [],
|
||||
"admin": true,
|
||||
"status": "removed",
|
||||
"guidelines": ["2014.07"],
|
||||
"description": "CRUD operations for volumes management in Block Storage API",
|
||||
"flagged": [],
|
||||
"name": "volume",
|
||||
"tests": []
|
||||
},
|
||||
"criteria": {
|
||||
"atomic": {
|
||||
"Description": "Capabilities is unique and cannot be built out of other must-pass capabilities",
|
||||
"name": "Atomic",
|
||||
"weight": 8
|
||||
},
|
||||
"clients": {
|
||||
"Description": "Candidates are widely used capabilities: Should be included if part of common libraries (Fog, Apache jclouds, etc)",
|
||||
"name": "Used by Clients",
|
||||
"weight": 8
|
||||
},
|
||||
"complete": {
|
||||
"Description": "Where the code being tested has a designated area of alternate implementation (extension framework) as per the Core Principles, there should be parity in capability tested across extension implementations. This also implies that the capability test is not configuration specific or locked to non-open technology",
|
||||
"name": "Complete",
|
||||
"weight": 8
|
||||
},
|
||||
"deployed": {
|
||||
"Description": "Candidates are widely deployed capabilities. We favor capabilities that are supported by multiple public cloud providers and private cloud products",
|
||||
"name": "Widely Deployed",
|
||||
"weight": 8
|
||||
},
|
||||
"discover": {
|
||||
"Description": "Capability being tested is Service Discoverable (can be found in Keystone and via service introspection)",
|
||||
"name": "Discoverable",
|
||||
"weight": 8
|
||||
},
|
||||
"doc": {
|
||||
"Description": "Should be well documented, particularly the expected behavior. This can be a very subjective measure and we expect to refine this definition over time",
|
||||
"name": "Documented",
|
||||
"weight": 8
|
||||
},
|
||||
"foundation": {
|
||||
"Description": "Test capabilities that are required by other must-pass tests and/or depended on by many other capabilities",
|
||||
"name": "Foundation",
|
||||
"weight": 8
|
||||
},
|
||||
"future": {
|
||||
"Description": "Should reflect future technical direction (from the project technical teams and the TC) and help manage deprecated capabilities",
|
||||
"name": "Future Direction",
|
||||
"weight": 9
|
||||
},
|
||||
"proximity": {
|
||||
"Description": "Sometimes called a Test Cluster, selects for Capabilities that are related to Core Capabilities. This helps ensure that related capabilities are managed together",
|
||||
"name": "Proximity",
|
||||
"weight": 8
|
||||
},
|
||||
"stable": {
|
||||
"Description": "Test is required stable for >2 releases because we don't want DefCore capabilities that do not have dependable APIs",
|
||||
"name": "Stable",
|
||||
"weight": 9
|
||||
},
|
||||
"sticky": {
|
||||
"Description": "A test that is a must-pass test should stay a must-pass test. This makes DefCore capabilities sticky release per release. Leaving Core is disruptive to the ecosystem",
|
||||
"name": "Core in Last Release",
|
||||
"weight": 9
|
||||
},
|
||||
"tools": {
|
||||
"Description": "Candidates are widely used capabilities:Should be included if supported by common tools (RightScale, Scalr, CloudForms, ...)",
|
||||
"name": "Used by Tools",
|
||||
"weight": 9
|
||||
}
|
||||
}
|
||||
}
|
118
2015.03.rst
Normal file
118
2015.03.rst
Normal file
@ -0,0 +1,118 @@
|
||||
=================================
|
||||
OpenStack DefCore 2015.03
|
||||
=================================
|
||||
|
||||
Status: Approved
|
||||
Replaces: 2014.07
|
||||
|
||||
This document outlines the mandatory and advisory capabilities
|
||||
required to exist in a software installation in order to be
|
||||
eligible to use marks controlled by the OpenStack Foundation.
|
||||
|
||||
This document supersedes the companion JSON version.
|
||||
|
||||
|
||||
Releases Covered
|
||||
==============================
|
||||
Applies to Havana, Icehouse
|
||||
|
||||
|
||||
Platform Components
|
||||
==============================
|
||||
Required: Compute and Object
|
||||
|
||||
Advisory: None
|
||||
|
||||
Deprecated: None
|
||||
|
||||
Removed: None
|
||||
|
||||
Compute Component Capabilities
|
||||
==============================
|
||||
|
||||
======================== ====================
|
||||
Capability Name Associated Project
|
||||
------------------------ --------------------
|
||||
compute-auth Nova
|
||||
compute-flavors Nova
|
||||
compute-images Nova
|
||||
compute-instance-actions Nova
|
||||
compute-keypairs Nova
|
||||
compute-quotas Nova
|
||||
compute-servers Nova
|
||||
compute-volume Nova
|
||||
images-v2 Glance
|
||||
======================== ====================
|
||||
|
||||
Advisory Capabilities
|
||||
------------------------------
|
||||
|
||||
======================== ====================
|
||||
Capability Name Associated Project
|
||||
------------------------ --------------------
|
||||
auth-token Keystone
|
||||
compute-servers-metadata Nova
|
||||
======================== ====================
|
||||
|
||||
Deprecated Capabilities
|
||||
------------------------------
|
||||
None.
|
||||
|
||||
Removed Capabilities
|
||||
------------------------------
|
||||
|
||||
======================== ====================
|
||||
Capability Name Associated Project
|
||||
------------------------ --------------------
|
||||
compute-floating-ips Nova
|
||||
images-v1 Glance
|
||||
volume Nova
|
||||
======================== ====================
|
||||
|
||||
|
||||
Object Component Capabilities
|
||||
==============================
|
||||
|
||||
======================== ====================
|
||||
Capability Name Associated Project
|
||||
------------------------ --------------------
|
||||
objectstore-object Swift
|
||||
======================== ====================
|
||||
|
||||
Advisory Capabilities
|
||||
------------------------------
|
||||
None.
|
||||
|
||||
Deprecated Capabilities
|
||||
------------------------------
|
||||
None.
|
||||
|
||||
Removed Capabilities
|
||||
------------------------------
|
||||
None.
|
||||
|
||||
|
||||
Designated Sections
|
||||
==============================
|
||||
|
||||
The following designated sections apply to the same releases as
|
||||
this specification.
|
||||
|
||||
* Nova is by default designated except scheduler, filter, drivers, API
|
||||
extensions and networking.
|
||||
* Glance designated sections are the API implementation code and domain model.
|
||||
* Swift designated sections are proxy server, object server, container server,
|
||||
account server and select middleware (complete list provided by community in
|
||||
linked json document).
|
||||
|
||||
|
||||
Advisory Designated Sections
|
||||
------------------------------------
|
||||
|
||||
None.
|
||||
|
||||
Functional Information
|
||||
======================
|
||||
Format: RestructuredText
|
||||
|
||||
Layout: 1.0
|
89
README.rst
89
README.rst
@ -1,10 +1,8 @@
|
||||
=================================================
|
||||
Understanding the DefCore JSON Schema
|
||||
Understanding the DefCore Guidelines
|
||||
=================================================
|
||||
|
||||
This folder contains DefCore committee managed files that provide trusted guidance for the OpenStack community.
|
||||
|
||||
Assets for each release are tracked in dedicated subdirectories so JSON schema may change per release if needed.
|
||||
This repository contains DefCore committee managed files that provide guidance for the OpenStack community.
|
||||
|
||||
NOTE: Changes to file requires approval of the DefCore committee chair(s).
|
||||
|
||||
@ -12,68 +10,59 @@ NOTE: Changes to file requires approval of the DefCore committee chair(s).
|
||||
DefCore Process Flow
|
||||
====================
|
||||
|
||||
See: https://wiki.openstack.org/w/images/6/68/DefCoreProcessFlow.pdf
|
||||
TBD
|
||||
|
||||
Terminology
|
||||
====================
|
||||
|
||||
See: https://wiki.openstack.org/wiki/Governance/DefCoreLexicon
|
||||
TBD
|
||||
|
||||
JSON Schema
|
||||
====================
|
||||
|
||||
The JSON files have a specific schema to support
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
{ "release": "havana",
|
||||
"schema": "1.0",
|
||||
"criteria" : {
|
||||
{ "id": "2015.03", # Spec name (date based)
|
||||
"schema": "1.1", # 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": {
|
||||
"example-cap" : { "achievements" : [ "deployed",
|
||||
"capabilities": { # capabilities listed in components
|
||||
"example-cap" : # capability
|
||||
{ "achievements" : # array of criteria met
|
||||
[ "deployed",
|
||||
"future",
|
||||
"complete"],
|
||||
"admin" : true,
|
||||
"core" : false,
|
||||
"admin" : false, # is admin API
|
||||
"status" : "required", # de-normalized from components
|
||||
"description" : "Helpful Description",
|
||||
"flagged" : [ ],
|
||||
"flagged" : [ ], # flagged tests array
|
||||
"name" : "Friendly Short Name",
|
||||
"tests" : [ "tempest.api.project.file.class.test_name" ]
|
||||
"tests" : # list of tests (please use UUIDs)
|
||||
[ "tempest.api.project.file.class.test_name" ]
|
||||
},
|
||||
|
||||
Schema Explanation:
|
||||
-------------------
|
||||
|
||||
* release: provides the release described in the JSON file
|
||||
* schema: version of the schema
|
||||
* criteria: block describing the scoring criteria for the release
|
||||
* criteria/[id]: block for a specific criteria (using an ID)
|
||||
* criteria/[id]/name: friendly name for the criteria
|
||||
* criteria/[id]/description: longer description for the criteria
|
||||
* criteria/[id]/weight: weight applied. All criteria together should = 100
|
||||
* capabilities: block describing all the capabilities identified for the release
|
||||
* capabilities/[id]: block for a specific capability (using an ID)
|
||||
* capabilities/[id]/name: friend name for the capability
|
||||
* capabilities/[id]/description: longer description for the capability
|
||||
* capabilities/[id]/core: boolean set by Board if capability is required
|
||||
* capabilities/[id]/admin: boolean set by PTL if capability is for admin use
|
||||
* capabilities/[id]/achievements: list of criteria passed for this capability (set by Board)
|
||||
* capabilities/[id]/tests: list of tests included in the capability (set by PTL)
|
||||
* capabilities/[id]/flagged: tests that have been excluded for this capability (set by Board)
|
||||
|
||||
Ownership for Changes
|
||||
=====================
|
||||
|
||||
TC/PTL
|
||||
---------------------
|
||||
1. Capabilities Description
|
||||
1. Capabilities Test List
|
||||
|
||||
DefCore
|
||||
---------------------
|
||||
1. Flagged Tests
|
||||
1. Capabilities "Score
|
||||
1. Criteria Names and Descriptions
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user