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)