Move common scheduler code from components to oslo

Registered by Svetlana Shturm

There are few OpenStack components which share the same "logic", but use its own implementation. Moving this part of code to oslo library potentially will help to improve quality of code and decrease cost of support.
Candidates:
host_manager.py
manager.py
scheduler_options.py
filters/retry_filter.py

manager/base_service_manager.py (inhereted blueprint)
Base manager for all services that should be inherited by all services.
Manager as a part of system should be work with any services for running any specific manipulations that inhereted service can do.
Here RPC dispatcher will be run and any pre- and post- started work can be determine.
DB driver init should be done in inherited classes.

scheduler/base_host_manager.py
Base manager class for hosts.
Host state object should be declared here.
This manager should define list of acceptable filters and weights for host, chose host by this accepted settings and update capabilities.

scheduler/base_manager.py
Base manager for schedule service. Should be inherited.

scheduler/base_scheduler_options.py
Main scheduler options.
Monitors a local .json file for changes and loads
it if needed. This file is converted to a data structure and passed
into the filtering and weighing functions which can use it for
dynamic configuration.
Can be use by all schedule services without redefinition.

scheduler/filters/retry_filter.py
Common filter for all components.
Filter out all nodes that have already been attempted for scheduling purposes.

Blueprint information

Status:
Started
Approver:
Mark McLoughlin
Priority:
Medium
Drafter:
Svetlana Shturm
Direction:
Approved
Assignee:
Svetlana Shturm
Definition:
Approved
Series goal:
None
Implementation:
Started
Milestone target:
None
Started by
Svetlana Shturm

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/#/c/31471/
    Move common scheduler code from components.

We have another approach how to make one scheduler instead of using common code.
So this seems like invalid -- boris-42

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.