nova/nova/tests/functional/api_sample_tests
Chris Dent 0044beb358 Optional separate database for placement API
If 'connection' is set in the 'placement_database' conf group use
that as the connection URL for the placement database. Otherwise if
it is None, the default, then use the entire api_database conf group
to configure a database connection.

When placement_database.connection is not None a replica of the
structure of the API database is used, using the same migrations
used for the API database.

A placement_context_manager is added and used by the OVO objects in
nova.api.openstack.placement.objects.*. If there is no separate
placement database, this is still used, but points to the API
database.

nova.test and nova.test.fixtures are adjusted to add awareness of
the placement database.

This functionality is being provided to allow deployers to choose
between establishing a new database now or requiring a migration
later. The default is migration later. A reno is added to explain
the existence of the configuration setting.

This change returns the behavior removed by the revert in commit
39fb302fd9 but done in a more
appropriate way.

Note that with the advent of the nova-status command, which checks
to see if placement is "ready" the tests here had to be adjusted.
If we do allow a separate database the code will now check the
separate database (if configured), but nothing is done with regard
to migrating from the api to placement database or checking that.

blueprint placement-extract

Change-Id: I7e1e89cd66397883453935dcf7172d977bf82e84
Implements: blueprint optional-placement-database
Co-Authored-By: Roman Podoliaka <rpodolyaka@mirantis.com>
2018-06-15 13:01:50 +01:00
..
api_samples Add trusted_image_certificates to REST API 2018-06-13 15:52:59 -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 Optional separate database for placement API 2018-06-15 13:01:50 +01: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 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 unnecessary conf imports 2018-03-09 14:30:10 -05: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 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 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 Remove support for /os-fping REST API 2018-05-10 15:26:13 -04: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 Proper error handling by _ensure_resource_provider 2017-11-30 18:30:49 +00:00
test_images.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_instance_actions.py Add host/hostId to instance action events API 2018-04-26 14:17:02 +00: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 Deprecate file injection 2017-12-12 09:22:21 -05: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 Enable cold migration with target host(2/2) 2017-11-29 20:48:16 -05:00
test_migrations.py Add pagination and Changes-since filter support for os-migrations. 2018-01-10 14:02:53 -05: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 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 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 Remove unused code 2016-09-23 09:42:39 +00:00
test_server_metadata.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_server_migrations.py Add pagination and Changes-since filter support for os-migrations. 2018-01-10 14:02:53 -05: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 Add trusted_image_certificates to REST API 2018-06-13 15:52:59 -04:00
test_servers_ips.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_services.py Cleanup RP and HM records while deleting a compute service. 2018-04-18 19:25:49 -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 Remove support for /os-virtual-interfaces REST API 2018-06-06 21:14:39 +00:00
test_volumes.py Fix invalid UUIDs in remaining tests 2018-01-30 17:15:03 +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.