Bug 1042128 - [RFE][oslo]: Move common scheduler code from components to oslo
Summary: [RFE][oslo]: Move common scheduler code from components to oslo
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: RFEs
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: ---
Assignee: RHOS Maint
QA Contact:
URL: https://blueprints.launchpad.net/oslo...
Whiteboard: upstream_milestone_none upstream_stat...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-12 21:06 UTC by RHOS Integration
Modified: 2015-03-19 17:31 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-19 17:31:31 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description RHOS Integration 2013-12-12 21:06:43 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/oslo/+spec/oslo-scheduler.

Description:

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.

Specification URL (additional information):

None


Note You need to log in before you can comment on or make changes to this bug.