Unhardcode netapp and scheduler options
this patch makes it possible to set custom filter_function and
goodness_function for the NetApp backend in Cinder.
In order for those to have any effect, the scheduler_default_filters
(where not yet unhardcoded) and scheduler_default_weighers options
are also unhardcoded so appropriate filters and weighers can be enabled
in their values.
Change-Id: I26dd040fa7cffa2d00440b8688bd04b15b64a0f4
Closes-Issue: PROD-33656
diff --git a/cinder/files/backend/_netapp.conf b/cinder/files/backend/_netapp.conf
index 3dfc798..e342eb5 100644
--- a/cinder/files/backend/_netapp.conf
+++ b/cinder/files/backend/_netapp.conf
@@ -36,3 +36,9 @@
{%- if backend.nas_secure_file_operations is defined %}
nas_secure_file_operations={{ backend.nas_secure_file_operations }}
{%- endif %}
+{%- if backend.filter_function is defined %}
+filter_function={{ backend.filter_function }}
+{%- endif %}
+{%- if backend.goodness_function is defined %}
+goodness_function={{ backend.goodness_function }}
+{%- endif %}
diff --git a/cinder/files/mitaka/cinder.conf.controller.Debian b/cinder/files/mitaka/cinder.conf.controller.Debian
index ac804f1..b3c5bac 100644
--- a/cinder/files/mitaka/cinder.conf.controller.Debian
+++ b/cinder/files/mitaka/cinder.conf.controller.Debian
@@ -120,6 +120,13 @@
cinder_internal_tenant_project_id={{ controller.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters={{ controller.scheduler_default_filters }}
+{%- endif %}
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if controller.notification is mapping %}
driver = {{ controller.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/mitaka/cinder.conf.volume.Debian b/cinder/files/mitaka/cinder.conf.volume.Debian
index 4a9cd1d..a47e1d8 100644
--- a/cinder/files/mitaka/cinder.conf.volume.Debian
+++ b/cinder/files/mitaka/cinder.conf.volume.Debian
@@ -101,6 +101,13 @@
cinder_internal_tenant_project_id={{ volume.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters={{ volume.scheduler_default_filters }}
+{%- endif %}
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ volume.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if volume.notification is mapping %}
driver = {{ volume.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/newton/cinder.conf.controller.Debian b/cinder/files/newton/cinder.conf.controller.Debian
index 6f12b2b..2f7eb78 100644
--- a/cinder/files/newton/cinder.conf.controller.Debian
+++ b/cinder/files/newton/cinder.conf.controller.Debian
@@ -135,6 +135,13 @@
cinder_internal_tenant_project_id={{ controller.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters={{ controller.scheduler_default_filters }}
+{%- endif %}
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if controller.notification is mapping %}
driver = {{ controller.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/newton/cinder.conf.volume.Debian b/cinder/files/newton/cinder.conf.volume.Debian
index c85f01e..38d6310 100644
--- a/cinder/files/newton/cinder.conf.volume.Debian
+++ b/cinder/files/newton/cinder.conf.volume.Debian
@@ -121,6 +121,13 @@
cinder_internal_tenant_project_id={{ volume.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters={{ volume.scheduler_default_filters }}
+{%- endif %}
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ volume.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if volume.notification is mapping %}
driver = {{ volume.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/ocata/cinder.conf.controller.Debian b/cinder/files/ocata/cinder.conf.controller.Debian
index fd636bc..c69c60e 100644
--- a/cinder/files/ocata/cinder.conf.controller.Debian
+++ b/cinder/files/ocata/cinder.conf.controller.Debian
@@ -139,6 +139,13 @@
cinder_internal_tenant_project_id={{ controller.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters={{ controller.scheduler_default_filters }}
+{%- endif %}
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if controller.notification is mapping %}
driver = {{ controller.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/ocata/cinder.conf.volume.Debian b/cinder/files/ocata/cinder.conf.volume.Debian
index 395078c..e347641 100644
--- a/cinder/files/ocata/cinder.conf.volume.Debian
+++ b/cinder/files/ocata/cinder.conf.volume.Debian
@@ -125,6 +125,13 @@
cinder_internal_tenant_project_id={{ volume.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters={{ volume.scheduler_default_filters }}
+{%- endif %}
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ volume.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if volume.notification is mapping %}
driver = {{ volume.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/pike/cinder.conf.controller.Debian b/cinder/files/pike/cinder.conf.controller.Debian
index f582ec9..a897e4e 100644
--- a/cinder/files/pike/cinder.conf.controller.Debian
+++ b/cinder/files/pike/cinder.conf.controller.Debian
@@ -153,6 +153,13 @@
cinder_internal_tenant_project_id={{ controller.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters={{ controller.scheduler_default_filters }}
+{%- endif %}
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if controller.notification is mapping %}
driver = {{ controller.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/pike/cinder.conf.volume.Debian b/cinder/files/pike/cinder.conf.volume.Debian
index dda4ae5..b91870d 100644
--- a/cinder/files/pike/cinder.conf.volume.Debian
+++ b/cinder/files/pike/cinder.conf.volume.Debian
@@ -136,6 +136,13 @@
cinder_internal_tenant_project_id={{ volume.cinder_internal_tenant_project_id }}
{%- endif %}
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters={{ volume.scheduler_default_filters }}
+{%- endif %}
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ volume.scheduler_default_weighers }}
+{%- endif %}
+
[oslo_messaging_notifications]
{%- if volume.notification is mapping %}
driver = {{ volume.notification.get('driver', 'messagingv2') }}
diff --git a/cinder/files/queens/cinder.conf.controller.Debian b/cinder/files/queens/cinder.conf.controller.Debian
index 3952e6f..691a359 100644
--- a/cinder/files/queens/cinder.conf.controller.Debian
+++ b/cinder/files/queens/cinder.conf.controller.Debian
@@ -570,6 +570,9 @@
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
# Which handler to use for selecting the host/pool after weighing (string
# value)
diff --git a/cinder/files/queens/cinder.conf.volume.Debian b/cinder/files/queens/cinder.conf.volume.Debian
index 0d4cf18..a46b222 100644
--- a/cinder/files/queens/cinder.conf.volume.Debian
+++ b/cinder/files/queens/cinder.conf.volume.Debian
@@ -564,6 +564,9 @@
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers = {{ volume.scheduler_default_weighers }}
+{%- endif %}
# Which handler to use for selecting the host/pool after weighing (string
# value)
diff --git a/cinder/files/rocky/cinder.conf.controller.Debian b/cinder/files/rocky/cinder.conf.controller.Debian
index e781e1a..2ac30c5 100644
--- a/cinder/files/rocky/cinder.conf.controller.Debian
+++ b/cinder/files/rocky/cinder.conf.controller.Debian
@@ -578,6 +578,9 @@
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
+{%- if controller.scheduler_default_weighers is defined %}
+scheduler_default_weighers={{ controller.scheduler_default_weighers }}
+{%- endif %}
# Which handler to use for selecting the host/pool after weighing (string
# value)
diff --git a/cinder/files/rocky/cinder.conf.volume.Debian b/cinder/files/rocky/cinder.conf.volume.Debian
index 65d3ff5..e3f003f 100644
--- a/cinder/files/rocky/cinder.conf.volume.Debian
+++ b/cinder/files/rocky/cinder.conf.volume.Debian
@@ -573,6 +573,9 @@
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
+{%- if volume.scheduler_default_weighers is defined %}
+scheduler_default_weighers = {{ volume.scheduler_default_weighers }}
+{%- endif %}
# Which handler to use for selecting the host/pool after weighing (string
# value)