Add concept of resource providers (partial)

Registered by Jay Pipes

This blueprint aims to address the problem of Nova assuming all resources are provided by a single compute node by introducing a new concept -- a resource provider -- that will allow Nova to accurately track and reserve resources regardless of whether the resource is being exposed by a single compute node or some shared pool or service.

Blueprint information

John Garbutt
Jay Pipes
Chris Dent
Series goal:
Accepted for newton
Milestone target:
milestone icon newton-1
Started by
John Garbutt
Completed by
Matt Riedemann

Related branches



Gerrit topic:,topic:bp/resource-providers,n,z

Addressed by:
    WIP: db-specific changes related to resource providers blueprint. Added ResourceClass, ResourceProvider, ResourcePool, HostAggregateResourcePool, Inventory and Allocation classes into model. Added appropriate migration files. Added uuid field to compute_n

Addressed by:
    WIP: Add concept of resource providers

Addressed by:
    Adds ResourceClass field type definition

Addressed by:
    Adds resource_classes lookup table to API DB

Addressed by:
    WIP: Adds ResourceClass object

Addressed by:
    WIP: Adds ResourcePool object

Addressed by:
    WIP: Adds Resource objects

Addressed by:
    WIP: Adds ResourceProvider object

Addressed by:
    resource_providers, allocations and inventories models

Addressed by:
    WIP resource-provider versioned objects

Addressed by:
    Implement an indexed ResourceClass Enum object

Addressed by:
    Allocate UUID for compute node

Addressed by:
    Make Service.get_minimum_version() work for multiple binaries

Addressed by:
    WIP: Migrate compute node stats to Inventory objects

Gerrit topic:,topic:bp/generic-resource-pools,n,z

Addressed by:
    Amend resource-providers database schema

Addressed by:
    Adjust resource-providers models for resource-pools

Addressed by:
    Add Allocation and AllocationList objects

Gerrit topic:,topic:bp/compute-node-inventory,n,z

Gerrit topic:,topic:bp/compute-node-inventory-patch23,n,z

Gerrit topic:,topic:resource-pool-object,n,z

Marking this as partially complete, as we hit the deadline -johnthetubaguy 2nd march 2016

Gerrit topic:,topic:cd/resource-pool-api,n,z

I've re-opened this for newton, there is only one remaining change:

It's just easier to re-open this and continue the work there given the big dependency chain we have.

-- mriedem 20160323

Addressed by:
    Add name to ResourceProvider object

Addressed by:
    Add a get_by_uuid for aggregates

Addressed by:
    Add ResourcePool and ResourcePoolList objects

Addressed by:
    WIP resource-pools/placement api

Gerrit topic:,topic:resource-providers,n,z

Addressed by:
    rt: remove old

Addressed by:
    rt: rename test_tracker -> test_resource_tracker


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.