AzureMonitor: strongly-typed AzureCredentials and correct resolution of auth type and cloud (#36284)

This commit is contained in:
Sergey Kostrukov
2021-07-05 03:20:12 -07:00
committed by GitHub
parent 719e78f333
commit 89ba607382
15 changed files with 749 additions and 404 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/azcredentials"
"github.com/stretchr/testify/require"
)
@@ -22,14 +23,16 @@ func TestNewInstanceSettings(t *testing.T) {
{
name: "creates an instance",
settings: backend.DataSourceInstanceSettings{
JSONData: []byte(`{"cloudName":"azuremonitor"}`),
JSONData: []byte(`{"azureAuthType":"msi"}`),
DecryptedSecureJSONData: map[string]string{"key": "value"},
ID: 40,
},
expectedModel: datasourceInfo{
Settings: azureMonitorSettings{CloudName: "azuremonitor"},
Routes: routes["azuremonitor"],
JSONData: map[string]interface{}{"cloudName": string("azuremonitor")},
Cloud: setting.AzurePublic,
Credentials: &azcredentials.AzureManagedIdentityCredentials{},
Settings: azureMonitorSettings{},
Routes: routes[setting.AzurePublic],
JSONData: map[string]interface{}{"azureAuthType": "msi"},
DatasourceID: 40,
DecryptedSecureJSONData: map[string]string{"key": "value"},
},
@@ -37,9 +40,15 @@ func TestNewInstanceSettings(t *testing.T) {
},
}
cfg := &setting.Cfg{
Azure: setting.AzureSettings{
Cloud: setting.AzurePublic,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
factory := NewInstanceSettings()
factory := NewInstanceSettings(cfg)
instance, err := factory(tt.settings)
tt.Err(t, err)
if !cmp.Equal(instance, tt.expectedModel, cmpopts.IgnoreFields(datasourceInfo{}, "Services", "HTTPCliOpts")) {