From 65fbbc06fdbefdaa73d3eb5227775122228b0e99 Mon Sep 17 00:00:00 2001 From: ismail simsek Date: Tue, 31 Jan 2023 14:38:02 +0100 Subject: [PATCH] InfluxDB: Move database information into jsondata (#62308) * Use dbName in jsonData instead of database * Use dbName in instead of database * Remove database fields and define dbName instead * Fix tests * set database field as empty string --- devenv/datasources.yaml | 5 ++-- devenv/datasources_docker.yaml | 5 ++-- pkg/tsdb/influxdb/influxdb.go | 8 +++++-- pkg/tsdb/influxdb/influxdb_test.go | 2 +- pkg/tsdb/influxdb/mocks_test.go | 2 +- pkg/tsdb/influxdb/models/datasource_info.go | 2 +- .../influxdb/components/ConfigEditor.tsx | 24 +++++++++++++------ .../plugins/datasource/influxdb/datasource.ts | 2 +- .../app/plugins/datasource/influxdb/types.ts | 4 +++- 9 files changed, 36 insertions(+), 18 deletions(-) diff --git a/devenv/datasources.yaml b/devenv/datasources.yaml index abf0494225c..eaaffdcfeac 100644 --- a/devenv/datasources.yaml +++ b/devenv/datasources.yaml @@ -76,11 +76,12 @@ datasources: - name: gdev-influxdb1-influxql type: influxdb access: proxy - database: site user: grafana url: http://localhost:8087 secureJsonData: password: grafana + jsonData: + dbName: site - name: gdev-influxdb-flux type: influxdb @@ -98,9 +99,9 @@ datasources: - name: gdev-influxdb-influxql type: influxdb access: proxy - database: mybucket url: http://localhost:8086 jsonData: + dbName: mybucket httpHeaderName1: "Authorization" secureJsonData: httpHeaderValue1: "Token mytoken" diff --git a/devenv/datasources_docker.yaml b/devenv/datasources_docker.yaml index 37ca475461a..bf6ea520222 100644 --- a/devenv/datasources_docker.yaml +++ b/devenv/datasources_docker.yaml @@ -32,11 +32,12 @@ datasources: - name: gdev-influxdb1-influxql type: influxdb access: proxy - database: site user: grafana url: http://influxdb1:8086 secureJsonData: password: grafana + jsonData: + dbName: site - name: gdev-influxdb-flux type: influxdb @@ -52,9 +53,9 @@ datasources: - name: gdev-influxdb-influxql type: influxdb access: proxy - database: mybucket url: http://influxdb:8086 jsonData: + dbName: mybucket httpHeaderName1: "Authorization" secureJsonData: httpHeaderValue1: "Token mytoken" diff --git a/pkg/tsdb/influxdb/influxdb.go b/pkg/tsdb/influxdb/influxdb.go index 04f43d79f51..9e4f3221029 100644 --- a/pkg/tsdb/influxdb/influxdb.go +++ b/pkg/tsdb/influxdb/influxdb.go @@ -69,10 +69,14 @@ func newInstanceSettings(httpClientProvider httpclient.Provider) datasource.Inst if version == "" { version = influxVersionInfluxQL } + database := jsonData.DbName + if database == "" { + database = settings.Database + } model := &models.DatasourceInfo{ HTTPClient: client, URL: settings.URL, - Database: settings.Database, + DbName: database, Version: version, HTTPMode: httpMode, TimeInterval: jsonData.TimeInterval, @@ -178,7 +182,7 @@ func (s *Service) createRequest(ctx context.Context, logger log.Logger, dsInfo * req.Header.Set("User-Agent", "Grafana") params := req.URL.Query() - params.Set("db", dsInfo.Database) + params.Set("db", dsInfo.DbName) params.Set("epoch", "ms") if httpMode == "GET" { diff --git a/pkg/tsdb/influxdb/influxdb_test.go b/pkg/tsdb/influxdb/influxdb_test.go index 5aedf3b5309..5580e71e671 100644 --- a/pkg/tsdb/influxdb/influxdb_test.go +++ b/pkg/tsdb/influxdb/influxdb_test.go @@ -15,7 +15,7 @@ import ( func TestExecutor_createRequest(t *testing.T) { datasource := &models.DatasourceInfo{ URL: "http://awesome-influxdb:1337", - Database: "awesome-db", + DbName: "awesome-db", HTTPMode: "GET", } query := "SELECT awesomeness FROM somewhere" diff --git a/pkg/tsdb/influxdb/mocks_test.go b/pkg/tsdb/influxdb/mocks_test.go index 068bc86a391..c916da9b027 100644 --- a/pkg/tsdb/influxdb/mocks_test.go +++ b/pkg/tsdb/influxdb/mocks_test.go @@ -68,7 +68,7 @@ func (f *fakeInstance) Get(pluginContext backend.PluginContext) (instancemgmt.In HTTPClient: client, Token: "sometoken", URL: "https://awesome-influx.com", - Database: "testdb", + DbName: "testdb", Version: f.version, HTTPMode: "GET", TimeInterval: "10s", diff --git a/pkg/tsdb/influxdb/models/datasource_info.go b/pkg/tsdb/influxdb/models/datasource_info.go index da0d15db470..dbe3f5e8ce4 100644 --- a/pkg/tsdb/influxdb/models/datasource_info.go +++ b/pkg/tsdb/influxdb/models/datasource_info.go @@ -9,7 +9,7 @@ type DatasourceInfo struct { Token string URL string - Database string `json:"database"` + DbName string `json:"dbName"` Version string `json:"version"` HTTPMode string `json:"httpMode"` TimeInterval string `json:"timeInterval"` diff --git a/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx b/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx index 331f5fed3c2..787ace327bc 100644 --- a/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx +++ b/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx @@ -3,13 +3,13 @@ import React, { PureComponent } from 'react'; import { DataSourcePluginOptionsEditorProps, - SelectableValue, - onUpdateDatasourceOption, - updateDatasourcePluginResetOption, onUpdateDatasourceJsonDataOption, onUpdateDatasourceJsonDataOptionSelect, + onUpdateDatasourceOption, onUpdateDatasourceSecureJsonDataOption, + SelectableValue, updateDatasourcePluginJsonDataOption, + updateDatasourcePluginResetOption, } from '@grafana/data'; import { Alert, @@ -18,15 +18,16 @@ import { InlineField, InlineFormLabel, LegacyForms, - Select, SecureSocksProxySettings, + Select, } from '@grafana/ui'; import { config } from 'app/core/config'; -const { Input, SecretFormField } = LegacyForms; import { BROWSER_MODE_DISABLED_MESSAGE } from '../constants'; import { InfluxOptions, InfluxSecureJsonData, InfluxVersion } from '../types'; +const { Input, SecretFormField } = LegacyForms; + const httpModes: SelectableValue[] = [ { label: 'GET', value: 'GET' }, { label: 'POST', value: 'POST' }, @@ -199,8 +200,17 @@ export class ConfigEditor extends PureComponent { { + this.props.onOptionsChange({ + ...options, + database: '', + jsonData: { + ...options.jsonData, + dbName: event.target.value, + }, + }); + }} /> diff --git a/public/app/plugins/datasource/influxdb/datasource.ts b/public/app/plugins/datasource/influxdb/datasource.ts index 33dabd8cd23..fbfddf123d0 100644 --- a/public/app/plugins/datasource/influxdb/datasource.ts +++ b/public/app/plugins/datasource/influxdb/datasource.ts @@ -62,11 +62,11 @@ export default class InfluxDatasource extends DataSourceWithBackend