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:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user