112cd9cd1f
Previously, if _ensure_resource_provider encountered any error from the placement REST API, it would (sometimes log a message and) return None. Furthermore, a name conflict while creating the provider was treated the same as a UUID conflict, which would actually result in None being returned. With this change set, the error paths that previously returned None now raise one of the new ResourceProviderRetrievalFailed or ResourceProviderCreationFailed exceptions; and the name conflict path is detected and treated as an error condition. Note: This change set only touches the SchedulerReportClient side of these error conditions - it makes no attempt to add error handling to its callers. Case in point, the API samples tests needed fixing because they were previously running into the name conflict error condition, but not noticing. As currently implemented, the new exceptions will percolate up to ComputeManager.update_available_resource_for_node like any others coming from SchedulerReportClient, where they will be logged and ignored. Change-Id: I0c4ca6a81f213277fe7219cb905a805712f81e36 Closes-Bug: #1735430 |
||
---|---|---|
.. | ||
api_samples | ||
README.rst | ||
__init__.py | ||
api_sample_base.py | ||
test_admin_actions.py | ||
test_admin_password.py | ||
test_agents.py | ||
test_aggregates.py | ||
test_assisted_volume_snapshots.py | ||
test_attach_interfaces.py | ||
test_availability_zone.py | ||
test_baremetal_nodes.py | ||
test_block_device_mapping_boot.py | ||
test_cells.py | ||
test_console_auth_tokens.py | ||
test_console_output.py | ||
test_consoles.py | ||
test_create_backup.py | ||
test_deferred_delete.py | ||
test_evacuate.py | ||
test_extension_info.py | ||
test_fixed_ips.py | ||
test_flavor_access.py | ||
test_flavor_extraspecs.py | ||
test_flavor_manage.py | ||
test_flavors.py | ||
test_floating_ip_dns.py | ||
test_floating_ip_pools.py | ||
test_floating_ips.py | ||
test_floating_ips_bulk.py | ||
test_fping.py | ||
test_hide_server_addresses.py | ||
test_hosts.py | ||
test_hypervisors.py | ||
test_images.py | ||
test_instance_actions.py | ||
test_instance_usage_audit_log.py | ||
test_keypairs.py | ||
test_limits.py | ||
test_lock_server.py | ||
test_migrate_server.py | ||
test_migrations.py | ||
test_multinic.py | ||
test_multiple_create.py | ||
test_networks.py | ||
test_networks_associate.py | ||
test_pause_server.py | ||
test_preserve_ephemeral_rebuild.py | ||
test_quota_classes.py | ||
test_quota_sets.py | ||
test_remote_consoles.py | ||
test_rescue.py | ||
test_security_group_default_rules.py | ||
test_security_groups.py | ||
test_server_diagnostics.py | ||
test_server_external_events.py | ||
test_server_groups.py | ||
test_server_metadata.py | ||
test_server_migrations.py | ||
test_server_password.py | ||
test_server_tags.py | ||
test_servers.py | ||
test_servers_ips.py | ||
test_services.py | ||
test_shelve.py | ||
test_simple_tenant_usage.py | ||
test_suspend_server.py | ||
test_tenant_networks.py | ||
test_versions.py | ||
test_virtual_interfaces.py | ||
test_volumes.py |
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.