]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
DriverFilter: don't check volume_backend_name
authorZhiteng Huang <zhithuang@ebaysf.com>
Thu, 4 Jun 2015 18:23:58 +0000 (11:23 -0700)
committerHuang Zhiteng <winston.d@gmail.com>
Thu, 4 Jun 2015 23:27:46 +0000 (23:27 +0000)
commitb32091192b7af7b0fccab1e078480ec38ada7bcc
treeaa665238377ac458830e152dbdb784db47bf1b28
parent3ba2d0ed924248b3658dc443743e883f2979496c
DriverFilter: don't check volume_backend_name

Currently DriverFilter checks if host_state.volume_backend_name
matches type.extra_specs.volume_backend_name.  The same check has
already been done in CapabilitiesFilter and done more thoroughly and
gracefully, for example, volume_backend_name can be a set of names
not limited to one to one match.  DriverFilter should just do one
thing, that is evaluating filter_function supplied by backend.

This change removes the volume_backend_name check from DriverFilter
without touching its core function, thus has no impact on existing
documentation because the checking of volume_backend_name is an
undocumented side-effect of this filter.  This change also reduces
one warning log to debug log when no filter_function found in
host_state, for the reason it would generate a lot of warning log
for those backends don't supply filter_function.

UpgradeImpact:
DriverFilter had an undocumented side-effect before it evaluates
filter_function - it checked if volume_backend_name in host_state
reported by backend matches volume_backend_name in volume type
extra specs, and if they don't, the backend would fail to pass
the filter.  Now that this side-effect has been removed, it
would impact users only under following circumstance: 1) user
enabled DriverFilter but not CapabilitiesFilter; 2) user relied
on DriverFilter to filter backends based on exact match of
'volume_backend_name' in type extra spec.  If unfortunately this
is the case for user, enabling CapabilitiesFilter by adding
it to 'scheduler_default_filters' configure option and restart
cinder scheduler service then everything should work just fine.
CapabilitiesFilter actually does a much better job checking
volume_backend_name.

Change-Id: Ie5c48587368856faa538eebb1b6611d464bd69bd
Closes-bug: #1461770
cinder/scheduler/filters/driver_filter.py
cinder/tests/unit/scheduler/test_host_filters.py