[openstack-dev] Implications of switching to entry points for scheduler filtering/weighing
markmc at redhat.com
Thu Jan 3 12:22:32 UTC 2013
There are some patches proposed for oslo-incubator which adds Nova's
filter and weighing infrastructure so that it can be re-used by Cinder:
One part of this is that we would move to loading filters and weighers
from entry points. I want to make sure Nova folks are aware of the
implications of this before merging it into Oslo.
My thinking is we should aim to have zero impact on users who just use
the standard filters/weighers but users who add custom code (should)
have the expectation that their code will occasionally stop working as
things upstream and that both code and configuration will need to be
I'd appreciate people's thoughts on the summary below.
1) Users who don't add custom filters or weighers:
o If a user has set the scheduler_default_filters config option to
enable or disable some filters, this should keep working without
the user having to update their config files. The current patch
renames ComputeCapabilitiesFilter to CapabilitiesFilter which
breaks this rule, but should be able to fix that the former is
retained for compatibility.
o The behaviour of the filters should not change at all. For example,
they operate on the same set of filter_properties provided to
run_instance() so you should be able to update the scheduler before
updating the API server.
o It is proposed that we remove the scheduler_available_filters
config option and use the default "all_filters" behaviour. I can't
imagine that this class of users would have changed this option.
o It is also proposed that we remove the scheduler_weight_classes
config option. It's somewhat plausible that users may have used
this to disable the RAM weigher, so maybe we need a config option
which lists the subset of available weighing functions which should
2) Users who have added their own custom filters or weighers.
o There were previously two ways of adding new code - drop a file
into the right directory Nova's codebase or install it elsewhere
and update the available_filters or weight_classes options. Neither
of these methods will work anymore. Instead, you need to register
your filter as an entry point.
o The code needs to be updated to use the new Oslo filter/weigher
More information about the OpenStack-dev