Scheduler: a framework for scheduler functional tests
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.
This blueprint is discussed to be a spec-less bp.