Support nested resource providers
Add support for trees of resource providers. Canonical examples of nested resource providers include creating resource providers for each NUMA node on a compute host and resource providers for SRIOV-enabled physical functions on a compute host.
Blueprint information
- Status:
- Complete
- Approver:
- Matt Riedemann
- Priority:
- High
- Drafter:
- Jay Pipes
- Direction:
- Approved
- Assignee:
- Jay Pipes
- Definition:
- Approved
- Series goal:
- Accepted for queens
- Implementation:
-
Implemented
- Milestone target:
- None
- Started by
- Matt Riedemann
- Completed by
- Matt Riedemann
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Correct bug in microversion headers in placement
Addressed by: https:/
placement: adds REST API for nested providers
Addressed by: https:/
placement: add get_all_
Addressed by: https:/
placement: add nested resource providers
Addressed by: https:/
placement: update client to set parent provider
Addressed by: https:/
Add concept of nested resource providers
Addressed by: https:/
pci: add uuid field to PciDevice object
Addressed by: https:/
DNM:placement: SRIOV PF devices as child providers
Addressed by: https:/
virt: adds InventoryTree for nested resources
Addressed by: https:/
virt: add update_inventory() driver method
We're now past the feature freeze for Ocata so I've deferred this to Pike. -- mriedem 20170128
Addressed by: https:/
Re-propose nested resource providers spec
Addressed by: https:/
pci: add uuid field to PciDevice object
Addressed by: https:/
placement: set/check if inventory change in tree
Addressed by: https:/
placement: add ProviderTree.
We're past feature freeze for Pike so I'm deferring this to Queens. Please re-propose the spec for re-approval in Queens and make any adjustments to the spec as necessary if the design has changed. -- mriedem 20170728
Addressed by: https:/
Re-propose nested resource providers spec
(Re-)approved for Queens. -- mriedem 20171003
Addressed by: https:/
rp: streamline InventoryList.
Addressed by: https:/
rp: remove dead code in Allocation.
Addressed by: https:/
rp: remove ability to delete 1 allocation record
Addressed by: https:/
rp: fix up AllocList.
Addressed by: https:/
rp: rework AllocList.
Addressed by: https:/
rp: remove CRUD operations on Inventory class
Addressed by: https:/
Reformat _get_all_
Addressed by: https:/
placement: Modify scheduler and report API to accept parent uuid
Addressed by: https:/
Iterator for a provider tree
Addressed by: https:/
WIP: Use update_inventory from the resource tracker
Addressed by: https:/
Scheduler set_inventory_
Addressed by: https:/
SchedulerRe
Addressed by: https:/
WIP: ProviderTree.
Addressed by: https:/
SchedulerRe
Addressed by: https:/
WIP: Scheduler[
Addressed by: https:/
WIP: ComputeDriver.
Addressed by: https:/
(WIP)
Addressed by: https:/
WIP: placement: GET /RPs with aggs, inventories, traits
Addressed by: https:/
Follow up this patch because it is related with xenapi vgpu implementation
Addressed by: https:/
Make _Provider really private
Gerrit topic: https:/
Addressed by: https:/
Traits ops on ProviderTree
Addressed by: https:/
Aggregate ops on ProviderTree
Addressed by: https:/
Move aggregates from report client to ProviderTree
Addressed by: https:/
Track provider traits in report client
Addressed by: https:/
Update nova-status and docs for nova-compute requiring placement 1.14
Addressed by: https:/
Track associated sharing RPs in report client
Addressed by: https:/
Raise on API errors getting aggregates/traits
Addressed by: https:/
Track tree-associated providers in report client
Addressed by: https:/
[placement] Fix API reference for microversion 1.14
Addressed by: https:/
WIP: Add nested resources to server moving tests
Addressed by: https:/
Modify PciDevice.uuid generation code
Addressed by: https:/
Add an online migration for PciDevice.uuid
Addressed by: https:/
Fix nits in update_
Addressed by: https:/
func tests for nested providers in alloc candidate
Addressed by: https:/
add _has_provider_
Addressed by: https:/
placement: _get_trees_
Addressed by: https:/
add tests for _get_trees_
Addressed by: https:/
Raise conflict exception on RP create 409
Addressed by: https:/
WIP: SchedulerReport
Addressed by: https:/
WIP: ProviderTree.find => ReadOnlyProvider
Addressed by: https:/
SchedulerRe
Addressed by: https:/
WIP: Scheduler[
Addressed by: https:/
add test for scenario with sum of child resources
Addressed by: https:/
fix _get_trees_
Addressed by: https:/
add _get_usages_
Addressed by: https:/
WIP - populate alloc cands for trees
Addressed by: https:/
SchedulerRe
Addressed by: https:/
Move refresh time from report client to prov tree
Addressed by: https:/
WIP: VMware: implement update_
Addressed by: https:/
validate provider summary structure
Addressed by: https:/
ProviderTre
Addressed by: https:/
set_
Addressed by: https:/
fix _ensure_
Addressed by: https:/
Add update_
Addressed by: https:/
WIP: New-style _set_inventory_
Addressed by: https:/
Make generation optional in ProviderTree
We're past feature freeze for Queens so I'm deferring this to Rocky. Please re-propose the spec for re-approval in Rocky and make any adjustments to the spec as necessary if the design has changed. Note that there are still a few patches approved for Queens which we're waiting to merge, up to https:/
Addressed by: https:/
Ensure resource classes correctly
Addressed by: https:/
Update Queens NRP spec to reflect reality
Given the spec amendment: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Work Items
Dependency tree

* Blueprints in grey have been implemented.