Bug 1042128

Summary: [RFE][oslo]: Move common scheduler code from components to oslo
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/oslo/+spec/oslo-scheduler
Whiteboard: upstream_milestone_none upstream_status_started upstream_definition_approved
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:31:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

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