From a26e0ab65b33d2a437953da13e3fff86b3bdeaf3 Mon Sep 17 00:00:00 2001 From: Nir Rozenbaum Date: Thu, 3 Jul 2025 13:38:46 +0300 Subject: [PATCH] verify fallback to default values if parameters are not defined in config file Signed-off-by: Nir Rozenbaum --- .../framework/plugins/filter/lora_affinity_filter.go | 6 ++++-- .../framework/plugins/filter/low_queue_filter.go | 6 ++++-- .../scheduling/framework/plugins/multi/prefix/plugin.go | 7 +++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pkg/epp/scheduling/framework/plugins/filter/lora_affinity_filter.go b/pkg/epp/scheduling/framework/plugins/filter/lora_affinity_filter.go index 145743f03..037cce22d 100644 --- a/pkg/epp/scheduling/framework/plugins/filter/lora_affinity_filter.go +++ b/pkg/epp/scheduling/framework/plugins/filter/lora_affinity_filter.go @@ -43,8 +43,10 @@ var _ framework.Filter = &LoraAffinityFilter{} // LoraAffinityFilterFactory defines the factory function for LoraAffinityFilter. func LoraAffinityFilterFactory(name string, rawParameters json.RawMessage, _ plugins.Handle) (plugins.Plugin, error) { parameters := loraAffinityFilterParameters{Threshold: config.DefaultLoraAffinityThreshold} - if err := json.Unmarshal(rawParameters, ¶meters); err != nil { - return nil, fmt.Errorf("failed to parse the parameters of the '%s' filter - %w", LoraAffinityFilterType, err) + if rawParameters != nil { + if err := json.Unmarshal(rawParameters, ¶meters); err != nil { + return nil, fmt.Errorf("failed to parse the parameters of the '%s' filter - %w", LoraAffinityFilterType, err) + } } return NewLoraAffinityFilter(parameters.Threshold).WithName(name), nil } diff --git a/pkg/epp/scheduling/framework/plugins/filter/low_queue_filter.go b/pkg/epp/scheduling/framework/plugins/filter/low_queue_filter.go index 8b121e726..e3f509cce 100644 --- a/pkg/epp/scheduling/framework/plugins/filter/low_queue_filter.go +++ b/pkg/epp/scheduling/framework/plugins/filter/low_queue_filter.go @@ -42,8 +42,10 @@ var _ framework.Filter = &LowQueueFilter{} // LowQueueFilterFactory defines the factory function for LowQueueFilter. func LowQueueFilterFactory(name string, rawParameters json.RawMessage, _ plugins.Handle) (plugins.Plugin, error) { parameters := lowQueueFilterParameters{Threshold: config.DefaultQueueingThresholdLoRA} - if err := json.Unmarshal(rawParameters, ¶meters); err != nil { - return nil, fmt.Errorf("failed to parse the parameters of the '%s' filter - %w", LowQueueFilterType, err) + if rawParameters != nil { + if err := json.Unmarshal(rawParameters, ¶meters); err != nil { + return nil, fmt.Errorf("failed to parse the parameters of the '%s' filter - %w", LowQueueFilterType, err) + } } return NewLowQueueFilter(parameters.Threshold).WithName(name), nil diff --git a/pkg/epp/scheduling/framework/plugins/multi/prefix/plugin.go b/pkg/epp/scheduling/framework/plugins/multi/prefix/plugin.go index a291f4761..bd7cfae67 100644 --- a/pkg/epp/scheduling/framework/plugins/multi/prefix/plugin.go +++ b/pkg/epp/scheduling/framework/plugins/multi/prefix/plugin.go @@ -125,8 +125,11 @@ func PrefixCachePluginFactory(name string, rawParameters json.RawMessage, _ plug MaxPrefixBlocksToMatch: DefaultMaxPrefixBlocks, LRUCapacityPerServer: DefaultLRUCapacityPerServer, } - if err := json.Unmarshal(rawParameters, ¶meters); err != nil { - return nil, fmt.Errorf("failed to parse the parameters of the %s plugin. Error: %s", PrefixCachePluginType, err) + + if rawParameters != nil { + if err := json.Unmarshal(rawParameters, ¶meters); err != nil { + return nil, fmt.Errorf("failed to parse the parameters of the %s plugin. Error: %s", PrefixCachePluginType, err) + } } return New(parameters).WithName(name), nil