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

Huang Zhiteng winston.d at gmail.com
Fri Jan 4 02:48:10 UTC 2013

On Thu, Jan 3, 2013 at 8:22 PM, Mark McLoughlin <markmc at redhat.com> wrote:
> Hey,
> 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:
>   https://blueprints.launchpad.net/oslo/+spec/common-filters
> 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
> updated.
> I'd appreciate people's thoughts on the summary below.
> Cheers,
> Mark.
> 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.
Mark, thanks for putting this together.  I'll update Nova WIP patch to
add configuration option for default weighers and also the commit
message to include the user impact.

Huang Zhiteng

More information about the OpenStack-dev mailing list