Change scheduler from proxy to queryable entity

Registered by Andrew Laski

The current scheduler model of having it proxy requests to computes makes it difficult to reason about the workflow involved in creating/resizing an instance, and makes future state management work unwieldy. Nova, most likely conductor, should query the scheduler for placement decisions and then handle the workflow for create/resize itself.

A new call will be added to the scheduler which will return a list of hosts that can be used for instance placement.

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
High
Drafter:
Andrew Laski
Direction:
Approved
Assignee:
Andrew Laski
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
Andrew Laski
Completed by
Russell Bryant

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/29091
    Call scheduler for run_instance from conductor

Addressed by: https://review.openstack.org/29994
    WIP Query scheduler for host to build instance on

Addressed by: https://review.openstack.org/29838
    Set up 'compute_task' conductor namespace.

Addressed by: https://review.openstack.org/33275
    New select_destinations scheduler call

What's completed up to this point is making the scheduler queryable. It is being queried for cold migrations and unshelving instances. Future blueprint(s) will address other code paths currently going through the scheduler and modifying them to query it instead.

Addressed by: https://review.openstack.org/68050
    Remove unused code from compute manager

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.