From e4ef71b78e0c84a244eaf4aaf8c39e55278fdbde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Tue, 11 Feb 2025 08:25:27 +0100 Subject: [PATCH] querier: handle datasource-not-found (#100175) --- pkg/registry/apis/query/client/plugin.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/registry/apis/query/client/plugin.go b/pkg/registry/apis/query/client/plugin.go index 2ffad9fa52b..434f3b049f9 100644 --- a/pkg/registry/apis/query/client/plugin.go +++ b/pkg/registry/apis/query/client/plugin.go @@ -2,7 +2,9 @@ package client import ( "context" + "errors" "fmt" + "net/http" "sync" "time" @@ -18,6 +20,7 @@ import ( "github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext" "github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore" "github.com/grafana/grafana/pkg/setting" + apierrors "k8s.io/apimachinery/pkg/api/errors" ) type pluginClient struct { @@ -69,6 +72,14 @@ func (d *pluginClient) QueryData(ctx context.Context, req data.QueryDataRequest) // NOTE: this depends on uid unique across datasources settings, err := d.pCtxProvider.GetDataSourceInstanceSettings(ctx, dsRef.UID) if err != nil { + if errors.Is(err, datasources.ErrDataSourceNotFound) { + status := metav1.Status{ + Status: metav1.StatusFailure, + Code: http.StatusNotFound, + Message: "datasource not found", + } + return nil, &apierrors.StatusError{ErrStatus: status} + } return nil, err }