nova/nova/tests/functional/api_sample_tests
Dan Peschman 2f7bf29d47 Use uuid for id in os-services API
This patch introduces a new microversion to identify services by uuid
instead of id, to ensure uniqueness across cells. GET /os-services
returns uuid in the id field, and uuid must be provided to delete a
service with DELETE /os-services/{service_uuid}.

The old PUT /os-services/* APIs are now capped and replaced
with a new PUT /os-services/{service_uuid} which takes a uuid path
parameter to uniquely identify the service to update. It also restricts
updates to nova-compute services only, since disabling or forcing-down
a non-compute service like nova-scheduler doesn't make sense as it
doesn't do anything.

The new update() method in this microversion also avoids trying to
re-use the existing private action methods like _enable and _disable
since those are predicated on looking up the service by host/binary,
are confusing to follow for code flow, and just don't really make sense
with a pure PUT resource update method.

Part of blueprint service-hyper-uuid-in-api

Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>

Change-Id: I45494a4df7ee4454edb3ef8e7c5817d8c4e9e5ad
2017-07-18 15:39:57 -04:00
..
api_samples Use uuid for id in os-services API 2017-07-18 15:39:57 -04:00
README.rst add api-samples tox target 2015-12-03 22:43:26 +00:00
__init__.py Move legacy v2 api smaple tests 2015-08-15 12:30:20 +10:00
api_sample_base.py Add 'networks' quota in quota sample files 2017-07-04 23:45:30 +00:00
test_admin_actions.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_admin_password.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_agents.py api-ref: Example verification for os-agents.inc 2016-06-27 21:29:26 +09:00
test_aggregates.py Return uuid attribute for aggregates 2017-01-05 14:32:43 -05:00
test_assisted_volume_snapshots.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_attach_interfaces.py API support for tagged device attachment 2017-06-30 09:05:34 +03:00
test_availability_zone.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_baremetal_nodes.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_block_device_mapping_boot.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_cells.py Remove deprecated manager option in cells.py 2016-08-02 16:54:09 +00:00
test_console_auth_tokens.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_console_output.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_consoles.py Merge "tests: Replace use of CONF with monkey patching" 2017-01-24 12:03:07 +00:00
test_create_backup.py 2.45: Remove Location header from createImage and createBackup responses 2017-04-25 15:52:14 -04:00
test_deferred_delete.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_evacuate.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_extension_info.py policy: clean-up 2016-06-30 19:56:14 +00:00
test_fixed_ips.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_flavor_access.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_flavor_extraspecs.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_flavor_manage.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_flavors.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_floating_ip_dns.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_floating_ip_pools.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_floating_ips.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_floating_ips_bulk.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_fping.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_hide_server_addresses.py conf: Move api options to a group 2016-11-25 16:32:31 -06:00
test_hosts.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_hypervisors.py Fix non-parameterized service id in hypervisors sample tests 2017-01-06 09:32:50 -08:00
test_images.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_instance_actions.py Add ability to signal and perform online volume size change 2017-07-12 11:53:20 -04:00
test_instance_usage_audit_log.py Fix invalid import order 2016-07-04 11:23:52 +05:30
test_keypairs.py Replace uuid4() with uuidsentinel 2016-10-05 18:27:50 +05:30
test_limits.py [proxy-api] microversion 2.39 deprecates image-metadata proxy API 2016-12-07 19:22:43 +03:00
test_lock_server.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_migrate_server.py Add missing ComputeHostNotFound exception in live-migration 2016-07-29 10:17:26 +02:00
test_migrations.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_multinic.py api-ref: Fix examples for add/removeFixedIp action 2017-05-15 01:19:54 +00:00
test_multiple_create.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_networks.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_networks_associate.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_pause_server.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_preserve_ephemeral_rebuild.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_quota_classes.py Fix quota class set APIs 2017-07-10 21:44:08 +00:00
test_quota_sets.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_remote_consoles.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_rescue.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_security_group_default_rules.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_security_groups.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_server_diagnostics.py Standardization of VM diagnostics info API. 2017-06-05 07:45:51 +00:00
test_server_external_events.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_server_groups.py Remove unused code 2016-09-23 09:42:39 +00:00
test_server_metadata.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_server_migrations.py Fix data error in api samples doc 2016-11-16 20:58:06 +08:00
test_server_password.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_server_tags.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_servers.py Support tag instances when boot(4/4) 2017-07-17 15:59:42 -04:00
test_servers_ips.py Move config options from nova/api directory (5) 2016-05-17 13:07:47 +00:00
test_services.py Use uuid for id in os-services API 2017-07-18 15:39:57 -04:00
test_shelve.py Fixes to get all functional tests working on py35 2017-01-14 13:06:56 -05:00
test_simple_tenant_usage.py Fix urllib.urlencode issue in functional tests on Python 3 2016-12-23 17:13:54 +08:00
test_suspend_server.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_tenant_networks.py Count networks to check quota 2017-06-19 21:51:46 +00:00
test_versions.py parametrize max_api_version in tests 2016-02-05 18:54:58 -05:00
test_virtual_interfaces.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_volumes.py API support for tagged device attachment 2017-06-30 09:05:34 +03:00

README.rst

Api Samples

This part of the tree contains templates for API samples. The documentation in doc/api_samples is completely autogenerated from the tests in this directory.

To add a new api sample, add tests for the common passing and failing cases in this directory for your extension, and modify test_samples.py for your tests.

Then run the following command:

tox -e api-samples

Which will create the files on doc/api_samples.

If new tests are added or the .tpl files are changed due to bug fixes, the samples must be regenerated so they are in sync with the templates, as there is an additional test which reloads the documentation and ensures that it's in sync.

Debugging sample generation

If a .tpl is changed, its matching .json must be removed else the samples won't be generated. If an entirely new extension is added, a directory for it must be created before its samples will be generated.