mirror of https://github.com/grafana/grafana.git
				
				
				
			CloudWatch: Pass feature toggles to backend (#48547)
This commit is contained in:
		
							parent
							
								
									2cc276567d
								
							
						
					
					
						commit
						da035e823f
					
				|  | @ -73,7 +73,7 @@ func TestPluginManager_int_init(t *testing.T) { | |||
| 
 | ||||
| 	hcp := httpclient.NewProvider() | ||||
| 	am := azuremonitor.ProvideService(cfg, hcp, tracer) | ||||
| 	cw := cloudwatch.ProvideService(cfg, hcp) | ||||
| 	cw := cloudwatch.ProvideService(cfg, hcp, features) | ||||
| 	cm := cloudmonitoring.ProvideService(hcp, tracer) | ||||
| 	es := elasticsearch.ProvideService(hcp) | ||||
| 	grap := graphite.ProvideService(hcp, tracer) | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ import ( | |||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
|  | @ -33,7 +34,7 @@ func TestQuery_AnnotationQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -67,7 +68,7 @@ func TestQuery_AnnotationQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  |  | |||
|  | @ -28,6 +28,7 @@ import ( | |||
| 	"github.com/grafana/grafana/pkg/components/simplejson" | ||||
| 	"github.com/grafana/grafana/pkg/infra/httpclient" | ||||
| 	"github.com/grafana/grafana/pkg/infra/log" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 	"github.com/grafana/grafana/pkg/setting" | ||||
| ) | ||||
| 
 | ||||
|  | @ -63,10 +64,10 @@ const ( | |||
| var plog = log.New("tsdb.cloudwatch") | ||||
| var aliasFormat = regexp.MustCompile(`\{\{\s*(.+?)\s*\}\}`) | ||||
| 
 | ||||
| func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider) *CloudWatchService { | ||||
| func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider, features featuremgmt.FeatureToggles) *CloudWatchService { | ||||
| 	plog.Debug("initing") | ||||
| 
 | ||||
| 	executor := newExecutor(datasource.NewInstanceManager(NewInstanceSettings(httpClientProvider)), cfg, awsds.NewSessionCache()) | ||||
| 	executor := newExecutor(datasource.NewInstanceManager(NewInstanceSettings(httpClientProvider)), cfg, awsds.NewSessionCache(), features) | ||||
| 
 | ||||
| 	return &CloudWatchService{ | ||||
| 		Cfg:      cfg, | ||||
|  | @ -83,11 +84,12 @@ type SessionCache interface { | |||
| 	GetSession(c awsds.SessionConfig) (*session.Session, error) | ||||
| } | ||||
| 
 | ||||
| func newExecutor(im instancemgmt.InstanceManager, cfg *setting.Cfg, sessions SessionCache) *cloudWatchExecutor { | ||||
| func newExecutor(im instancemgmt.InstanceManager, cfg *setting.Cfg, sessions SessionCache, features featuremgmt.FeatureToggles) *cloudWatchExecutor { | ||||
| 	cwe := &cloudWatchExecutor{ | ||||
| 		im:       im, | ||||
| 		cfg:      cfg, | ||||
| 		sessions: sessions, | ||||
| 		features: features, | ||||
| 	} | ||||
| 	cwe.resourceHandler = httpadapter.New(cwe.newResourceMux()) | ||||
| 	return cwe | ||||
|  | @ -161,6 +163,7 @@ type cloudWatchExecutor struct { | |||
| 	im       instancemgmt.InstanceManager | ||||
| 	cfg      *setting.Cfg | ||||
| 	sessions SessionCache | ||||
| 	features featuremgmt.FeatureToggles | ||||
| 
 | ||||
| 	resourceHandler backend.CallResourceHandler | ||||
| } | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import ( | |||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" | ||||
| 	"github.com/grafana/grafana/pkg/infra/httpclient" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
|  | @ -108,7 +109,7 @@ func Test_CheckHealth(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -130,7 +131,7 @@ func Test_CheckHealth(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -151,7 +152,7 @@ func Test_CheckHealth(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -171,7 +172,7 @@ func Test_CheckHealth(t *testing.T) { | |||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{getSession: func(c awsds.SessionConfig) (*session.Session, error) { | ||||
| 			return nil, fmt.Errorf("some sessions error") | ||||
| 		}}) | ||||
| 		}}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -201,7 +202,7 @@ func Test_executeLogAlertQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		sess := fakeSessionCache{} | ||||
| 		executor := newExecutor(im, newTestConfig(), &sess) | ||||
| 		executor := newExecutor(im, newTestConfig(), &sess, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			Headers:       map[string]string{"FromAlert": "some value"}, | ||||
|  | @ -228,7 +229,7 @@ func Test_executeLogAlertQuery(t *testing.T) { | |||
| 		}) | ||||
| 		sess := fakeSessionCache{} | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &sess) | ||||
| 		executor := newExecutor(im, newTestConfig(), &sess, featuremgmt.WithFeatures()) | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			Headers:       map[string]string{"FromAlert": "some value"}, | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ import ( | |||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/data" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
|  | @ -52,7 +53,7 @@ func TestQuery_DescribeLogGroups(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -108,7 +109,7 @@ func TestQuery_DescribeLogGroups(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -183,7 +184,7 @@ func TestQuery_GetLogGroupFields(t *testing.T) { | |||
| 		return datasourceInfo{}, nil | ||||
| 	}) | ||||
| 
 | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 	resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 		PluginContext: backend.PluginContext{ | ||||
| 			DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -264,7 +265,7 @@ func TestQuery_StartQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -317,7 +318,7 @@ func TestQuery_StartQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -374,7 +375,7 @@ func Test_executeStartQuery(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -410,7 +411,7 @@ func Test_executeStartQuery(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -437,7 +438,7 @@ func Test_executeStartQuery(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 		_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}}, | ||||
|  | @ -499,7 +500,7 @@ func TestQuery_StopQuery(t *testing.T) { | |||
| 		To:   time.Unix(1584700643, 0), | ||||
| 	} | ||||
| 
 | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 	resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 		PluginContext: backend.PluginContext{ | ||||
| 			DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -589,7 +590,7 @@ func TestQuery_GetQueryResults(t *testing.T) { | |||
| 		return datasourceInfo{}, nil | ||||
| 	}) | ||||
| 
 | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 	resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 		PluginContext: backend.PluginContext{ | ||||
| 			DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ package cloudwatch | |||
| import ( | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
|  | @ -10,7 +11,7 @@ import ( | |||
| func TestMetricDataQueryBuilder(t *testing.T) { | ||||
| 	t.Run("buildMetricDataQuery", func(t *testing.T) { | ||||
| 		t.Run("should use metric stat", func(t *testing.T) { | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 			query := getBaseQuery() | ||||
| 			query.MetricEditorMode = MetricEditorModeBuilder | ||||
| 			query.MetricQueryType = MetricQueryTypeSearch | ||||
|  | @ -22,7 +23,7 @@ func TestMetricDataQueryBuilder(t *testing.T) { | |||
| 		}) | ||||
| 
 | ||||
| 		t.Run("should use custom built expression", func(t *testing.T) { | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 			query := getBaseQuery() | ||||
| 			query.MetricEditorMode = MetricEditorModeBuilder | ||||
| 			query.MetricQueryType = MetricQueryTypeSearch | ||||
|  | @ -34,7 +35,7 @@ func TestMetricDataQueryBuilder(t *testing.T) { | |||
| 		}) | ||||
| 
 | ||||
| 		t.Run("should use sql expression", func(t *testing.T) { | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 			query := getBaseQuery() | ||||
| 			query.MetricEditorMode = MetricEditorModeRaw | ||||
| 			query.MetricQueryType = MetricQueryTypeQuery | ||||
|  | @ -46,7 +47,7 @@ func TestMetricDataQueryBuilder(t *testing.T) { | |||
| 		}) | ||||
| 
 | ||||
| 		t.Run("should use user defined math expression", func(t *testing.T) { | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 			query := getBaseQuery() | ||||
| 			query.MetricEditorMode = MetricEditorModeRaw | ||||
| 			query.MetricQueryType = MetricQueryTypeSearch | ||||
|  | @ -58,7 +59,7 @@ func TestMetricDataQueryBuilder(t *testing.T) { | |||
| 		}) | ||||
| 
 | ||||
| 		t.Run("should set period in user defined expression", func(t *testing.T) { | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 			executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 			query := getBaseQuery() | ||||
| 			query.MetricEditorMode = MetricEditorModeRaw | ||||
| 			query.MetricQueryType = MetricQueryTypeSearch | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ import ( | |||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/data" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 	"github.com/grafana/grafana/pkg/setting" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
|  | @ -53,7 +54,7 @@ func TestQuery_Metrics(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetMetrics( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -88,7 +89,7 @@ func TestQuery_Metrics(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetDimensionKeys( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -128,7 +129,7 @@ func TestQuery_Regions(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetRegions( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -201,7 +202,7 @@ func TestQuery_InstanceAttributes(t *testing.T) { | |||
| 		filterJson, err := json.Marshal(filterMap) | ||||
| 		require.NoError(t, err) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetEc2InstanceAttribute( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -278,7 +279,7 @@ func TestQuery_EBSVolumeIDs(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetEbsVolumeIds( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -344,7 +345,7 @@ func TestQuery_ResourceARNs(t *testing.T) { | |||
| 		tagJson, err := json.Marshal(tagMap) | ||||
| 		require.NoError(t, err) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetResourceArns( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -374,7 +375,7 @@ func TestQuery_GetAllMetrics(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetAllMetrics( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -423,7 +424,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetDimensionKeys( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -453,7 +454,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.handleGetDimensionKeys( | ||||
| 			backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -548,7 +549,8 @@ func TestQuery_ListMetricsPagination(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 3, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 3, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{}, | ||||
| 			featuremgmt.WithFeatures()) | ||||
| 		response, err := executor.listMetrics(backend.PluginContext{ | ||||
| 			DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
| 		}, "default", &cloudwatch.ListMetricsInput{}) | ||||
|  | @ -563,7 +565,8 @@ func TestQuery_ListMetricsPagination(t *testing.T) { | |||
| 		im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 		executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 1000, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 1000, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{}, | ||||
| 			featuremgmt.WithFeatures()) | ||||
| 		response, err := executor.listMetrics(backend.PluginContext{ | ||||
| 			DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
| 		}, "default", &cloudwatch.ListMetricsInput{}) | ||||
|  |  | |||
|  | @ -13,13 +13,14 @@ import ( | |||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" | ||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" | ||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
| 
 | ||||
| func TestTimeSeriesQuery(t *testing.T) { | ||||
| 	executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}) | ||||
| 	executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 	now := time.Now() | ||||
| 
 | ||||
| 	origNewCWClient := NewCWClient | ||||
|  | @ -54,7 +55,7 @@ func TestTimeSeriesQuery(t *testing.T) { | |||
| 			return datasourceInfo{}, nil | ||||
| 		}) | ||||
| 
 | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 		executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 		resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{ | ||||
| 			PluginContext: backend.PluginContext{ | ||||
| 				DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}, | ||||
|  | @ -219,7 +220,7 @@ func Test_QueryData_response_data_frame_names(t *testing.T) { | |||
| 	im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { | ||||
| 		return datasourceInfo{}, nil | ||||
| 	}) | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}) | ||||
| 	executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures()) | ||||
| 
 | ||||
| 	t.Run("where user defines search expression and alias is defined, then frame name prioritizes period and stat from expression over input", func(t *testing.T) { | ||||
| 		query := newTestQuery(t, queryParameters{ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue