Plugins: Update PDC pattern from latest plugin SDK changes (#76036)

* update with sdk

* do sql

* fix core plugins

* fix proxy settings

* bump SDK version

* tidy

* enable pdc for test

* add codeowners
This commit is contained in:
Will Browne
2023-10-13 14:42:15 +02:00
committed by GitHub
parent e2ba399e30
commit 151f6d6216
35 changed files with 113 additions and 81 deletions
+4 -4
View File
@@ -63,9 +63,9 @@ type Service struct {
resourceHandler backend.CallResourceHandler
}
func getDatasourceService(settings *backend.DataSourceInstanceSettings, cfg *setting.Cfg, clientProvider *httpclient.Provider, dsInfo types.DatasourceInfo, routeName string) (types.DatasourceService, error) {
func getDatasourceService(ctx context.Context, settings *backend.DataSourceInstanceSettings, cfg *setting.Cfg, clientProvider *httpclient.Provider, dsInfo types.DatasourceInfo, routeName string) (types.DatasourceService, error) {
route := dsInfo.Routes[routeName]
client, err := newHTTPClient(route, dsInfo, settings, cfg, clientProvider)
client, err := newHTTPClient(ctx, route, dsInfo, settings, cfg, clientProvider)
if err != nil {
return types.DatasourceService{}, err
}
@@ -76,7 +76,7 @@ func getDatasourceService(settings *backend.DataSourceInstanceSettings, cfg *set
}
func NewInstanceSettings(cfg *setting.Cfg, clientProvider *httpclient.Provider, executors map[string]azDatasourceExecutor) datasource.InstanceFactoryFunc {
return func(_ context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
return func(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
jsonDataObj := map[string]any{}
err := json.Unmarshal(settings.JSONData, &jsonDataObj)
if err != nil {
@@ -116,7 +116,7 @@ func NewInstanceSettings(cfg *setting.Cfg, clientProvider *httpclient.Provider,
}
for routeName := range executors {
service, err := getDatasourceService(&settings, cfg, clientProvider, model, routeName)
service, err := getDatasourceService(ctx, &settings, cfg, clientProvider, model, routeName)
if err != nil {
return nil, err
}
+3 -2
View File
@@ -1,6 +1,7 @@
package azuremonitor
import (
"context"
"crypto/tls"
"fmt"
"net/http"
@@ -20,8 +21,8 @@ type Provider interface {
GetTLSConfig(...httpclient.Options) (*tls.Config, error)
}
func newHTTPClient(route types.AzRoute, model types.DatasourceInfo, settings *backend.DataSourceInstanceSettings, cfg *setting.Cfg, clientProvider Provider) (*http.Client, error) {
clientOpts, err := settings.HTTPClientOptions()
func newHTTPClient(ctx context.Context, route types.AzRoute, model types.DatasourceInfo, settings *backend.DataSourceInstanceSettings, cfg *setting.Cfg, clientProvider Provider) (*http.Client, error) {
clientOpts, err := settings.HTTPClientOptions(ctx)
if err != nil {
return nil, fmt.Errorf("error getting HTTP options: %w", err)
}
+4 -3
View File
@@ -1,6 +1,7 @@
package azuremonitor
import (
"context"
"crypto/tls"
"encoding/json"
"net/http"
@@ -39,7 +40,7 @@ func TestHttpClient_AzureCredentials(t *testing.T) {
Scopes: []string{"https://management.azure.com/.default"},
}
_, err := newHTTPClient(route, model, settings, cfg, provider)
_, err := newHTTPClient(context.Background(), route, model, settings, cfg, provider)
require.NoError(t, err)
require.NotNil(t, provider.opts)
@@ -52,7 +53,7 @@ func TestHttpClient_AzureCredentials(t *testing.T) {
Scopes: []string{},
}
_, err := newHTTPClient(route, model, settings, cfg, provider)
_, err := newHTTPClient(context.Background(), route, model, settings, cfg, provider)
require.NoError(t, err)
assert.NotNil(t, provider.opts)
@@ -73,7 +74,7 @@ func TestHttpClient_AzureCredentials(t *testing.T) {
"GrafanaHeader": "GrafanaValue",
"AzureHeader": "AzureValue",
}
_, err := newHTTPClient(route, model, settings, cfg, provider)
_, err := newHTTPClient(context.Background(), route, model, settings, cfg, provider)
require.NoError(t, err)
assert.NotNil(t, provider.opts)