neutron-lib/releasenotes/notes/placement-client-optional-rp-generations-44d1f1055d5496be.yaml
Bence Romsics 74c62da3b5 Placement client: optional RP generations
The Placement API has the concept of resource provider generations to
enable the co-ordination of multiple API clients, so they can avoid
accidentally overwriting each other's updates.

However when we know that a single client writes certain resource
providers then the generation handling becomes an unnecessary extra
API round-trip. Ideally the Placement API would give us a chance to
express our ignorance about multi-client coordination (accepting that
a single client can overwrite its own previous updates).

Until the Placement API gives us such a feature we implement it in
the client lib, by making 'resource_provider_generation' parameters
optional.  This is inferior to the API doing the same because we may
still see GenerationConflict exceptions even when we said
method(..., resource_provider_generation=None).

Later changes for the minimum guaranteed bandwidth
feature need 'resource_provider_generation' to be
optional for 'update_resource_provider_traits' and
'update_resource_provider_inventories'. For the sake of consistency
we do the same to 'update_resource_provider_inventory'.

Change-Id: I4312c3f8819f7c5b74b68f6fa0507e42094eab79
Partial-Bug: #1578989
See-Also: https://review.openstack.org/502306 (nova spec)
See-Also: https://review.openstack.org/508149 (neutron spec)
2018-08-21 16:52:30 +02:00

13 lines
521 B
YAML

---
other:
- |
The ``resource_provider_generation`` parameters of the following
methods of ``PlacementAPIClient`` are now optional:
``update_resource_provider_inventories``,
``update_resource_provider_inventory`` and
``update_resource_provider_traits``.
You may call the methods without this parameter or pass ``None``
with the meaning to ignore resource provider generations. That is the
client will (in quick succession) get the object and update it supplying
the same generation.