Scheduler: a framework for scheduler functional tests

Registered by Yingxin

Scheduler functional test framework is aimed to test the sanity of scheduler decisions in the project level and make sure the nova conductor, scheduler and compute services are collaborating during scheduling.

The implementation is based on the following requirements:
1. This framework should be a foundation of all scheduler functional tests, those tests can be easily extended to test features including, but not limited to, image properties, host aggregates, availability zones, compute capabilities, servergroups, forced hosts, metrics etc.
2. The functional test framework is going to support future scheduler implementations, so it won't relay on any specific logic inside scheduler. It only maintains a controlled environment by overriding configurations, faking interfaces that are external to scheduler, and attaching monitoring logic to notify framework the scheduling progress.
3. This framework should be easy to use. It provides simple interfaces to configure the controlled environment, and to wait and query the final scheduling results.
4. Fast and accurate. All the major overhead outside scheduler should be faked or accelerated. And the framework should be notified that scheduling is finished, rather than polling the db to wait for the results which is used by `nova.tests.functional.test_server_group`. Those optimizations must not affect the test accuracy.

This blueprint is discussed to be a spec-less bp.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Yingxin
Direction:
Needs approval
Assignee:
Yingxin
Definition:
Pending Approval
Series goal:
Proposed for newton
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.