![Bence Romsics](/assets/img/avatar_default.png)
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)
13 lines
521 B
YAML
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.
|