From b4295ef0496849c1bc43481d31f57d79afaf6b7b Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Thu, 10 Aug 2017 16:36:06 +0200 Subject: [PATCH] Deprecate bare metal filters This change deprecates the Exact filters, and two options commonly used to enable them. Custom resource classes should be used instead. Change-Id: I843353427c90142a366ae9ca63ee4298b4f3ecd4 --- nova/conf/scheduler.py | 14 ++++++++++++++ nova/scheduler/filters/exact_core_filter.py | 5 +++++ nova/scheduler/filters/exact_disk_filter.py | 5 +++++ nova/scheduler/filters/exact_ram_filter.py | 5 +++++ ...precate-baremetal-filters-618249af65115bf6.yaml | 14 ++++++++++++++ 5 files changed, 43 insertions(+) create mode 100644 releasenotes/notes/deprecate-baremetal-filters-618249af65115bf6.yaml diff --git a/nova/conf/scheduler.py b/nova/conf/scheduler.py index 8fac0decb69a..ecd1716f74b4 100644 --- a/nova/conf/scheduler.py +++ b/nova/conf/scheduler.py @@ -291,6 +291,13 @@ Related options: ], deprecated_name="baremetal_scheduler_default_filters", deprecated_group="DEFAULT", + deprecated_for_removal=True, + deprecated_reason=""" +These filters were used to overcome some of the baremetal scheduling +limitations in Nova prior to the use of the Placement API. Now scheduling will +use the custom resource class defined for each baremetal node to make its +selection. +""", help=""" Filters used for filtering baremetal hosts. @@ -313,6 +320,13 @@ Related options: cfg.BoolOpt("use_baremetal_filters", deprecated_name="scheduler_use_baremetal_filters", deprecated_group="DEFAULT", + deprecated_for_removal=True, + deprecated_reason=""" +These filters were used to overcome some of the baremetal scheduling +limitations in Nova prior to the use of the Placement API. Now scheduling will +use the custom resource class defined for each baremetal node to make its +selection. +""", default=False, help=""" Enable baremetal filters. diff --git a/nova/scheduler/filters/exact_core_filter.py b/nova/scheduler/filters/exact_core_filter.py index dbb8e6dfce67..f9b20f997000 100644 --- a/nova/scheduler/filters/exact_core_filter.py +++ b/nova/scheduler/filters/exact_core_filter.py @@ -25,6 +25,11 @@ LOG = logging.getLogger(__name__) class ExactCoreFilter(filters.BaseHostFilter): """Exact Core Filter.""" + def __init__(self, *args, **kwargs): + super(ExactCoreFilter, self).__init__(*args, **kwargs) + LOG.warning('ExactCoreFilter is deprecated in Pike and will be ' + 'removed in a subsequent release.') + def host_passes(self, host_state, spec_obj): """Return True if host has the exact number of CPU cores.""" if not host_state.vcpus_total: diff --git a/nova/scheduler/filters/exact_disk_filter.py b/nova/scheduler/filters/exact_disk_filter.py index 405e3b91b735..e382a70e6545 100644 --- a/nova/scheduler/filters/exact_disk_filter.py +++ b/nova/scheduler/filters/exact_disk_filter.py @@ -23,6 +23,11 @@ LOG = logging.getLogger(__name__) class ExactDiskFilter(filters.BaseHostFilter): """Exact Disk Filter.""" + def __init__(self, *args, **kwargs): + super(ExactDiskFilter, self).__init__(*args, **kwargs) + LOG.warning('ExactDiskFilter is deprecated in Pike and will be ' + 'removed in a subsequent release.') + def host_passes(self, host_state, spec_obj): """Return True if host has the exact amount of disk available.""" requested_disk = (1024 * (spec_obj.root_gb + diff --git a/nova/scheduler/filters/exact_ram_filter.py b/nova/scheduler/filters/exact_ram_filter.py index e6dd4275ee8d..d09b5d5ef1cb 100644 --- a/nova/scheduler/filters/exact_ram_filter.py +++ b/nova/scheduler/filters/exact_ram_filter.py @@ -23,6 +23,11 @@ LOG = logging.getLogger(__name__) class ExactRamFilter(filters.BaseHostFilter): """Exact RAM Filter.""" + def __init__(self, *args, **kwargs): + super(ExactRamFilter, self).__init__(*args, **kwargs) + LOG.warning('ExactRamFilter is deprecated in Pike and will be ' + 'removed in a subsequent release.') + def host_passes(self, host_state, spec_obj): """Return True if host has the exact amount of RAM available.""" requested_ram = spec_obj.memory_mb diff --git a/releasenotes/notes/deprecate-baremetal-filters-618249af65115bf6.yaml b/releasenotes/notes/deprecate-baremetal-filters-618249af65115bf6.yaml new file mode 100644 index 000000000000..27127f22ba62 --- /dev/null +++ b/releasenotes/notes/deprecate-baremetal-filters-618249af65115bf6.yaml @@ -0,0 +1,14 @@ +--- +deprecations: + - | + The configuration options ``baremetal_enabled_filters`` and + ``use_baremetal_filters`` are deprecated in Pike and should only be used if + your deployment still contains nodes that have not had their resource_class + attribute set. See `Ironic release notes `_ + for upgrade concerns. + - | + The following scheduler filters are deprecated in Pike: ``ExactRamFilter``, + ``ExactCoreFilter`` and ``ExactDiskFilter`` and should only be used if your + deployment still contains nodes that have not had their resource_class + attribute set. See `Ironic release notes `_ + for upgrade concerns. \ No newline at end of file