From 32fd18543a150fb8ca9436091dfa37d97d0ffd10 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Mon, 2 Mar 2026 15:35:07 +0100 Subject: [PATCH] differentiate between expected and unexpected cases in external ccms queryBuilder --- .../metricstoreclient/cc-metric-store-queries.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/metricstoreclient/cc-metric-store-queries.go b/internal/metricstoreclient/cc-metric-store-queries.go index 949efa10..7a04efc4 100644 --- a/internal/metricstoreclient/cc-metric-store-queries.go +++ b/internal/metricstoreclient/cc-metric-store-queries.go @@ -126,6 +126,7 @@ func (ccms *CCMetricStore) buildQueries( hwthreads = topology.Node } + // Note: Expected exceptions will return as empty slices -> Continue hostQueries, hostScopes := buildScopeQueries( nativeScope, requestedScope, remoteName, host.Hostname, @@ -133,8 +134,9 @@ func (ccms *CCMetricStore) buildQueries( resolution, ) - if len(hostQueries) == 0 && len(hostScopes) == 0 { - return nil, nil, fmt.Errorf("METRICDATA/INTERNAL-CCMS > TODO: unhandled case: native-scope=%s, requested-scope=%s", nativeScope, requestedScope) + // Note: Unexpected errors, such as unhandled cases, will return as nils -> Error + if hostQueries == nil && hostScopes == nil { + return nil, nil, fmt.Errorf("METRICDATA/EXTERNAL-CCMS > TODO: unhandled case: native-scope=%s, requested-scope=%s", nativeScope, requestedScope) } queries = append(queries, hostQueries...) @@ -269,6 +271,7 @@ func buildScopeQueries( // Accelerator -> Accelerator (Use "accelerator" scope if requested scope is lower than node) if nativeScope == schema.MetricScopeAccelerator && scope.LT(schema.MetricScopeNode) { if scope != schema.MetricScopeAccelerator { + // Expected Exception -> Continue -> Return Empty Slices return queries, scopes } @@ -287,6 +290,7 @@ func buildScopeQueries( // Accelerator -> Node if nativeScope == schema.MetricScopeAccelerator && scope == schema.MetricScopeNode { if len(accelerators) == 0 { + // Expected Exception -> Continue -> Return Empty Slices return queries, scopes } @@ -447,6 +451,7 @@ func buildScopeQueries( socketToDomains, err := topology.GetMemoryDomainsBySocket(memDomains) if err != nil { cclog.Errorf("Error mapping memory domains to sockets, return unchanged: %v", err) + // Rare Error Case -> Still Continue -> Return Empty Slices return queries, scopes } @@ -507,8 +512,8 @@ func buildScopeQueries( return queries, scopes } - // Unhandled case - return empty slices - return queries, scopes + // Unhandled Case -> Error -> Return nils + return nil, nil } // intToStringSlice converts a slice of integers to a slice of strings.