Add goodness-function config

This allows specifying functions that further optimize the scheduling
of shares across backend stanzas.

This is needed due to a netapp-driver specific problem when using
SVM scoped accounts. It does not have enough permissions to obtain
the total_capacity_gb information, so it cannot calculate utilization,
and therefore the goodness_function always returns 50 and end up
scheduling shares always to the same pool.

Closes-bug: #2073537
Change-Id: Ia151c50421e75282f633e0b004c2e6c1bda638f3
This commit is contained in:
Rodrigo Barbieri 2024-07-18 17:09:24 -03:00
parent 6be969b0dc
commit 94a4d30901
2 changed files with 11 additions and 1 deletions

View File

@ -131,3 +131,11 @@ options:
LIF through which the share is exported. A Vserver static route is
configured using this gateway.
default: "172.16.31.1"
goodness-function:
type: string
description: |
Specify an optional goodness function (as a string) that will be
run against the backend to determine its goodness score for scheduling.
Please refer to the Manila documentation for the function structure,
valid operands and operators.
default: ""

View File

@ -11,7 +11,9 @@ netapp_transport_type = {{ options.transport_type }}
netapp_server_port = {{ options.netapp_server_port }}
backend_availability_zone = {{ options.backend_availability_zone }}
netapp_aggregate_name_search_pattern = {{ options.aggregate_name_search_pattern }}
{% if options.goodness_function %}
goodness_function = "{{ options.goodness_function }}"
{% endif %}
{%- if options.driver_handles_share_servers %}
netapp_root_volume_aggregate = {{ options.root_volume_aggregate_name }}
netapp_root_volume_name = {{ options.root_volume_name }}