nova/nova/scheduler/filters
Dan Smith bbfc4230ef Refined fix for validating image on rebuild
This aims to fix the issue described in bug 1664931 where a rebuild
fails to validate the existing host with the scheduler when a new
image is provided. The previous attempt to do this could cause rebuilds
to fail unnecessarily because we ran _all_ of the filters during a
rebuild, which could cause usage/resource filters to prevent an otherwise
valid rebuild from succeeding.

This aims to classify filters as useful for rebuild or not, and only apply
the former during a rebuild scheduler check. We do this by using an internal
scheduler hint, indicating our intent. This should (a) filter out
all hosts other than the one we're running on and (b) be detectable by
the filtering infrastructure as an internally-generated scheduling request
in order to trigger the correct filtering behavior.

Conflicts:
      nova/scheduler/filters/exact_core_filter.py
      nova/scheduler/filters/exact_disk_filter.py
      nova/scheduler/filters/exact_ram_filter.py
      nova/scheduler/filters/type_filter.py

NOTE(mriedem): The conflicts were due to deprecation warnings
which don't exist in Ocata. The functional test also needed a missing
import and to use api_put() instead of put_service().

Closes-Bug: #1664931
Change-Id: I1a46ef1503be2febcd20f4594f44344d05525446
(cherry picked from commit f7c688b8ef)
(cherry picked from commit b29a461a8b)
2017-11-28 09:48:20 -05:00
..
__init__.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
affinity_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
aggregate_image_properties_isolation.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
aggregate_instance_extra_specs.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
aggregate_multitenancy_isolation.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
all_hosts_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
availability_zone_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
compute_capabilities_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
compute_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
core_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
disk_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
exact_core_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
exact_disk_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
exact_ram_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
extra_specs_ops.py Removed unused variables 2015-05-20 14:31:33 +03:00
image_props_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
io_ops_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
isolated_hosts_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
json_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
metrics_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
num_instances_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
numa_topology_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
pci_passthrough_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
ram_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
retry_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
trusted_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
type_filter.py Refined fix for validating image on rebuild 2017-11-28 09:48:20 -05:00
utils.py scheduler: fix incorrect log message 2015-11-19 08:55:11 +08:00