[openstack-dev] Implications of switching to entry points for scheduler filtering/weighing

Mark McLoughlin 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
     be used.

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 
     base classes.

More information about the OpenStack-dev mailing list