with constant

This commit is contained in:
Ryan McKinley
2025-12-16 09:28:09 +03:00
parent fb83260911
commit d743749f47
2 changed files with 12 additions and 8 deletions
+3
View File
@@ -10,6 +10,9 @@ import (
"github.com/grafana/grafana/pkg/expr"
)
// Get results as raw protobuf
const PROTOBUF_CONTENT_TYPE = "application/vnd.grafana.pluginv2.QueryDataResponse"
// Generic query request with shared time across all values
// Copied from: https://github.com/grafana/grafana/blob/main/pkg/api/dtos/models.go#L62
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+9 -8
View File
@@ -6,17 +6,16 @@ import (
"fmt"
"net/http"
"google.golang.org/protobuf/proto"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apiserver/pkg/registry/rest"
"google.golang.org/protobuf/proto"
"github.com/grafana/grafana-app-sdk/logging"
"github.com/grafana/grafana-plugin-sdk-go/backend"
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
"github.com/grafana/grafana/pkg/apimachinery/errutil"
query "github.com/grafana/grafana/pkg/apis/query/v0alpha1"
"github.com/grafana/grafana/pkg/services/datasources"
"github.com/grafana/grafana/pkg/web"
)
@@ -116,9 +115,8 @@ func (r *subQueryREST) Connect(ctx context.Context, name string, opts runtime.Ob
// Respond with raw protobuf when requested
for _, accept := range req.Header.Values("Accept") {
if accept == "application/vnd.grafana.protobuf" {
conv := backend.ConvertToProtobuf{}
p, err := conv.QueryDataResponse(rsp)
if accept == query.PROTOBUF_CONTENT_TYPE { // pluginv2.QueryDataResponse
p, err := backend.ToProto().QueryDataResponse(rsp)
if err != nil {
responder.Error(err)
return
@@ -128,9 +126,12 @@ func (r *subQueryREST) Connect(ctx context.Context, name string, opts runtime.Ob
responder.Error(err)
return
}
w.Header().Add("Content-Type", "application/vnd.grafana.protobuf")
w.Header().Add("Content-Type", query.PROTOBUF_CONTENT_TYPE)
w.WriteHeader(code)
_, _ = w.Write(data)
_, err = w.Write(data)
if err != nil {
logging.FromContext(ctx).Warn("unable to write protobuf result", "err", err)
}
return
}
}