Add concept of generic resource pools

Registered by Jay Pipes

Adds a concept of a generic resource pool that can be managed via a simple RESTful API

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
High
Drafter:
Jay Pipes
Direction:
Approved
Assignee:
Chris Dent
Definition:
Approved
Series goal:
Accepted for newton
Implementation:
Implemented
Milestone target:
milestone icon newton-3
Started by
Jay Pipes
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/generic-resource-pools,n,z

Addressed by: https://review.openstack.org/253187
    Add concept of generic resource pools

Addressed by: https://review.openstack.org/280333
    Add migration and models for resource-pools

Addressed by: https://review.openstack.org/280906
    WIP Nova object for ResourcePool

Addressed by: https://review.openstack.org/281837
    WIP Adjust resource-providers models for resource-pools

Addressed by: https://review.openstack.org/281945
    WIP Add name to ResourceProvider object

Addressed by: https://review.openstack.org/277466
    resource-provider versioned objects

Addressed by: https://review.openstack.org/282442
    WIP: Add Allocation object

Addressed by: https://review.openstack.org/282519
    Add a column for uuid to aggregate_hosts

Addressed by: https://review.openstack.org/282520
    Allocate uuids for aggregates as they are created or loaded

Addressed by: https://review.openstack.org/284895
    Add a get_by_uuid for aggregates

Gerrit topic: https://review.openstack.org/#q,topic:resource-pool-object,n,z

Gerrit topic: https://review.openstack.org/#q,topic:cd/resource-pool-api,n,z

Addressed by: https://review.openstack.org/284963
    Add ResourcePool and ResourcePoolList objects

Addressed by: https://review.openstack.org/293104
    WIP resource-pools/placement api

Gerrit topic: https://review.openstack.org/#q,topic:bp/resource-providers,n,z

Addressed by: https://review.openstack.org/300175
    resource-providers: Migrate compute node inventory

Addressed by: https://review.openstack.org/300176
    resource-providers: generic resource pools

Addressed by: https://review.openstack.org/308503
    WIP Add notifications for resource pools

Addressed by: https://review.openstack.org/312193
    WIP Add update_inventories to ResourceProvider

Addressed by: https://review.openstack.org/315288
    WIP Correct the Inventory object

Addressed by: https://review.openstack.org/315681
    Add resource provider tables to the api database

Addressed by: https://review.openstack.org/315682
    Make Inventory and ResourceProvider objects use the API DB instead

Addressed by: https://review.openstack.org/317049
    Make compute nodes update their own inventory records

Gerrit topic: https://review.openstack.org/#q,topic:bp/generic-resource-pools-patch14,n,z

Gerrit topic: https://review.openstack.org/#q,topic:revert-inventory-linkage,n,z

Addressed by: https://review.openstack.org/326440
    Add set_inventory() method on ResourceProvider

Addressed by: https://review.openstack.org/326578
    Adjust field types and defaults on Inventory

Addressed by: https://review.openstack.org/326706
    Add ResourceProvider.save()

Addressed by: https://review.openstack.org/326707
    Make create_inventory() handle name change

Gerrit topic: https://review.openstack.org/#q,topic:bug/1572555,n,z

Addressed by: https://review.openstack.org/328276
    WIP Add delete_inventory, InventoryList.replace and Inventory.capacity

Addressed by: https://review.openstack.org/328307
    Add a ResourceProviderList object

Addressed by: https://review.openstack.org/329149
    Add initial framing of placement API

Addressed by: https://review.openstack.org/329150
    Add microversion support for the placement API

Addressed by: https://review.openstack.org/329151
    Add support for resource_providers urls

Addressed by: https://review.openstack.org/329152
    Add support for resource inventories to placement API

Addressed by: https://review.openstack.org/329575
    WIP Add a Usage and UsageList object

Addressed by: https://review.openstack.org/329643
    Add support for usages in the placement API

Addressed by: https://review.openstack.org/330745
    Fix docstring nits from ResourceProvider.set_inventory() review

Addressed by: https://review.openstack.org/331482
    Remove faultwrap middleware

Addressed by: https://review.openstack.org/331483
    Transform selector 404 and 405 into webob exceptions

Addressed by: https://review.openstack.org/334031
    rt: Pass nodename to internal RT methods

Addressed by: https://review.openstack.org/334032
    rt: Pass the nodename to RT.instance_claim()

Addressed by: https://review.openstack.org/334033
    rt: Pass nodename into RT.re[build|size]_claim()

Addressed by: https://review.openstack.org/334034
    rt: Remove RT.nodename attribute entirely

Addressed by: https://review.openstack.org/334035
    rt: Add virt driver get_inventory() method

Addressed by: https://review.openstack.org/334036
    rt: Implement Hyper-V get_inventory() method

Addressed by: https://review.openstack.org/334037
    rt: Add get_inventory() implementation for vCenter

Addressed by: https://review.openstack.org/334038
    rt: Add get_inventory() method for Ironic

Addressed by: https://review.openstack.org/334039
    WIP - rt: Manage resource provider and inventory

Addressed by: https://review.openstack.org/337925
    Implement ResourceProvider.destroy()

Addressed by: https://review.openstack.org/338618
    Amend placement REST API with allocation records

Addressed by: https://review.openstack.org/339204
    rt: Implement XenAPI get_inventory() method

Addressed by: https://review.openstack.org/339281
    Clean up helper methods in ResourceProvider

Addressed by: https://review.openstack.org/339874
    WIP Add support for allocations in placement API

Addressed by: https://review.openstack.org/340601
    Check capacity and allocations when changing Inventory

Gerrit topic: https://review.openstack.org/#q,topic:placement_api,n,z

Addressed by: https://review.openstack.org/342384
    WIP: placement API db bits

Addressed by: https://review.openstack.org/343046
    placement: add filtering by attrs to resource_providers

Gerrit topic: https://review.openstack.org/#q,topic:placement_bits,n,z

Addressed by: https://review.openstack.org/343120
    Update generic-resource-pools for set inventories

Addressed by: https://review.openstack.org/345059
    Replace placement API paste with own pipeline setup

Addressed by: https://review.openstack.org/348866
    [WIP] Optional separate database for placement API

Addressed by: https://review.openstack.org/349021
    [WIP] Optional separate database for placement API

Addressed by: https://review.openstack.org/352047
    Correct InventoryList model references

Addressed by: https://review.openstack.org/352573
    Add placement API web utility methods

Addressed by: https://review.openstack.org/352945
    Fix handling of status in placement API json_error_formatter

Addressed by: https://review.openstack.org/350756
    rt: Remove useless unit test in resource tracker

Addressed by: https://review.openstack.org/350757
    rt: Move unit tests for update mig usage

Addressed by: https://review.openstack.org/350754
    rt: Remove incorrect unit test of resize revert

Addressed by: https://review.openstack.org/350755
    rt: Remove dup tests in test_resource_tracker

Addressed by: https://review.openstack.org/352610
    rt: Refactor unit test for trackable migrations

Addressed by: https://review.openstack.org/352578
    rt: New unit test for rebuild_claim()

Addressed by: https://review.openstack.org/350319
    rt: Refactor test_dupe_filter unit test

Addressed by: https://review.openstack.org/349746
    rt: Refactor resize_claim unit test

Addressed by: https://review.openstack.org/350293
    rt: Remove duplicate unit test for missing mig ctx

Addressed by: https://review.openstack.org/350292
    rt: Refactor resize claim abort unit test

Addressed by: https://review.openstack.org/352561
    rt: Move monitor unit tests into test_tracker

Addressed by: https://review.openstack.org/352626
    rt: Rename test_tracker -> test_resource_tracker

Addressed by: https://review.openstack.org/352625
    rt: Create multiple resize claim unit test

Addressed by: https://review.openstack.org/352100
    rt: Move unit tests for update usage for instance

Addressed by: https://review.openstack.org/353800
    rt: delete test_resource_tracker.py

Addressed by: https://review.openstack.org/353801
    rt: rename test_tracker to test_resource_tracker

Addressed by: https://review.openstack.org/355263
    [WIP] Add {get_,set_}aggregates to objects.ResourceProvider

Addressed by: https://review.openstack.org/356036
    In placement API send microversion header when error

Addressed by: https://review.openstack.org/357993
    Implement get and set aggregates in the placement API

Addressed by: https://review.openstack.org/358348
    rt: remove ComputeNode.create_inventory

Addressed by: https://review.openstack.org/357431
    rt: rename test_tracker -> test_resource_tracker

Addressed by: https://review.openstack.org/357430
    rt: remove old test_resource_tracker.py

Addressed by: https://review.openstack.org/358361
    rt: isolate report and query sched client tests

Addressed by: https://review.openstack.org/358797
    rt: ensure resource provider records exist from RT

Addressed by: https://review.openstack.org/360572
    In InventoryList.find() raise NotFound if invalid resource class

Addressed by: https://review.openstack.org/360638
    Revert "Optional separate database for placement API"

Addressed by: https://review.openstack.org/361422
    [placement] consolidate json handling in util module

Addressed by: https://review.openstack.org/362863
    [placement] add a placement_aggregates table to api_db

Gerrit topic: https://review.openstack.org/#q,topic:rt,n,z

Addressed by: https://review.openstack.org/363039
    [placement] remove a comment that is no longer a todo

Addressed by: https://review.openstack.org/363061
    Report compute node inventories through placement

Addressed by: https://review.openstack.org/363125
    WIP - Added FaultWrapper to the placement API

Addressed by: https://review.openstack.org/363148
    rt: ensure resource provider records exist from RT

Addressed by: https://review.openstack.org/363209
    WIP Add create_all and delete_all to AllocationList

Addressed by: https://review.openstack.org/363583
    rt: write inventory records from resource tracker

Addressed by: https://review.openstack.org/362766
    Optional separate database for placement API

Addressed by: https://review.openstack.org/363705
    Remove the incomplete wsgi script placement-api.py

Addressed by: https://review.openstack.org/363746
    Remove deprecated neutron options

Addressed by: https://review.openstack.org/363699
    Register keystone opts for placement sample config

Addressed by: https://review.openstack.org/363771
    Update placement config reno

Gerrit topic: https://review.openstack.org/#q,topic:inst-alloc-new,n,z

Addressed by: https://review.openstack.org/364498
    Simple instance allocations from resource tracker

Addressed by: https://review.openstack.org/365688
    [placement] Add some tests ensuring unicode resource provider name

Gerrit topic: https://review.openstack.org/#q,topic:placementfixes,n,z

Addressed by: https://review.openstack.org/366144
    [placement] Add additional allocation tests

Addressed by: https://review.openstack.org/539038
    Update references to OSC resource provider command

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.