nova/nova/tests/functional/api_sample_tests
Matt Riedemann 3f0605c289 Sync COMPUTE_STATUS_DISABLED from API
This adds the os-services API change which will
call the compute service when the service's disabled
value changes to sync the COMPUTE_STATUS_DISABLED trait
on the compute node resource providers managed by the
updated compute service.

If the compute service is down or not yet upgraded to
the service version from change
Ia95de2f23f12b002b2189c9294ec190569a628ab then the
API will not call the service. In this case the change
from I3005b46221ac3c0e559e1072131a7e4846c9867c will
sync the trait when the compute service is restarted.

Since the compute service could be running the ironic
driver and managing hundreds or over 1000 compute nodes,
the set_host_enabled RPC call now uses the long_rpc_timeout
configuration option.

A functional test is added which covers the 2.53+
PUT /os-services/{service_id} API and pre-2.53 os-services
APIs for enabling/disabling and forcing down a service.
The functional test also covers the sync-on-restart behavior
from change I3005b46221ac3c0e559e1072131a7e4846c9867c.
The scheduler pre-filter added in change
I317cabbe49a337848325f96df79d478fd65811d9 is also tested
as part of the functional test.

Closes-Bug: #1805984

Implements blueprint pre-filter-disabled-computes

Change-Id: If32bca070185937ef83f689b7163d965a89ec10a
2019-07-02 18:57:38 -04:00
..
api_samples Remove global state from the FakeDriver 2019-06-21 10:37:20 +02:00
README.rst add api-samples tox target 2015-12-03 22:43:26 +00:00
__init__.py
api_sample_base.py Move slight bonkers IP management to privsep. 2019-03-17 23:19:08 +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 remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_agents.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
test_aggregates.py hacking: Resolve W605 (invalid escape sequence) 2019-06-24 14:24:06 -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 Add microversion to expose virtual device tags 2019-02-21 13:38:51 +00:00
test_availability_zone.py Stop using "nova" in API samples when creating a server 2019-03-01 10:43:08 -05: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 '/os-cells' REST APIs 2019-04-16 18:26:13 +01:00
test_compare_result.py Bump to hacking 1.1.0 2019-04-12 16:23:49 +01:00
test_console_auth_tokens.py Add 'path' query parameter to console access url 2019-06-14 18:01:24 +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 Remove unused request API sample template 2018-08-03 07:00:13 +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 API: Remove evacuate/live-migrate 'force' parameter 2019-02-08 17:05:19 -05:00
test_extension_info.py policy: clean-up 2016-06-30 19:56:14 +00:00
test_fixed_ips.py Remove support for /os-fixed-ips REST API 2018-06-26 09:20:28 -04: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 Add microversion to allow setting flavor description 2017-11-15 22:10:39 +00:00
test_flavors.py Add microversion to support extra_specs in flavor API. 2018-04-11 17:47:57 +08:00
test_floating_ip_dns.py Remove support for /os-floating-ip-dns REST API 2018-07-18 22:23:45 -04: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 Remove unused request API sample template 2018-08-03 07:00:13 +00:00
test_floating_ips_bulk.py Remove support for /os-floating-ips-bulk REST API 2018-07-18 22:23:45 -04:00
test_fping.py Remove support for /os-fping REST API 2018-05-10 15:26:13 -04:00
test_hosts.py Enable all extension for all remaining sample tests 2016-06-10 06:03:02 +00:00
test_hypervisors.py Remove global state from the FakeDriver 2019-06-21 10:37:20 +02:00
test_images.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_instance_actions.py Resource retrieving: add changes-before filter 2018-09-19 09:56:56 -04:00
test_instance_usage_audit_log.py Fix invalid import order 2016-07-04 11:23:52 +05:30
test_keypairs.py Use uuidsentinel from oslo.utils 2018-09-05 09:08:54 -05:00
test_limits.py Deprecate file injection 2017-12-12 09:22:21 -05:00
test_lock_server.py Microversion 2.73: Support adding the reason behind a server lock 2019-05-11 21:48:27 +00:00
test_migrate_server.py API: Remove evacuate/live-migrate 'force' parameter 2019-02-08 17:05:19 -05:00
test_migrations.py Add Migration.cross_cell_move and get_by_uuid 2019-06-12 17:17:49 -04:00
test_multinic.py Fix functional tests for USE_NEUTRON 2017-12-21 19:11:46 -05: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 Deprecate file injection 2017-12-12 09:22:21 -05:00
test_quota_sets.py Deprecate file injection 2017-12-12 09:22:21 -05:00
test_remote_consoles.py hacking: Resolve W605 (invalid escape sequence) 2019-06-24 14:24:06 -05:00
test_rescue.py hacking: Resolve W605 (invalid escape sequence) 2019-06-24 14:24:06 -05: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 Fix functional tests for USE_NEUTRON 2017-12-21 19:11:46 -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 Microversion 2.64 - Use new format policy in server group 2018-07-13 10:43:42 +08:00
test_server_metadata.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_server_migrations.py Reject migrate with port having resource request 2019-01-28 15:51:10 +01: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 hacking: Resolve W605 (invalid escape sequence) 2019-06-24 14:24:06 -05:00
test_servers.py hacking: Resolve W605 (invalid escape sequence) 2019-06-24 14:24:06 -05:00
test_servers_ips.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_services.py Sync COMPUTE_STATUS_DISABLED from API 2019-07-02 18:57:38 -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 os-simple-tenant-usage result order 2018-10-26 14:47:52 +00: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 Use uuidsentinel from oslo.utils 2018-09-05 09:08:54 -05:00
test_volumes.py Add microversion to expose virtual device tags 2019-02-21 13:38:51 +00: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.