diff --git a/public/app/features/plugins/datasource_srv.ts b/public/app/features/plugins/datasource_srv.ts index b2ab9dc919a..c09318c59a6 100644 --- a/public/app/features/plugins/datasource_srv.ts +++ b/public/app/features/plugins/datasource_srv.ts @@ -69,6 +69,9 @@ export class DatasourceSrv implements DataSourceService { // The return name or uid needs preservet string containing the variable const clone = cloneDeep(dsSettings); clone.name = nameOrUid; + // A data source being looked up using a variable should not be considered default + clone.isDefault = false; + return clone; } diff --git a/public/app/features/plugins/specs/datasource_srv.test.ts b/public/app/features/plugins/specs/datasource_srv.test.ts index 1ff4e03af9d..63e19d13a43 100644 --- a/public/app/features/plugins/specs/datasource_srv.test.ts +++ b/public/app/features/plugins/specs/datasource_srv.test.ts @@ -77,6 +77,7 @@ describe('datasource_srv', () => { name: 'BBB', uid: 'uid-code-BBB', meta: { metrics: true }, + isDefault: true, }, Jaeger: { type: 'jaeger-db', @@ -127,6 +128,11 @@ describe('datasource_srv', () => { expect(ds?.uid).toBe('uid-code-BBB'); }); + it('should not set isDefault when being fetched via variable', () => { + const ds = dataSourceSrv.getInstanceSettings('${datasource}'); + expect(ds?.isDefault).toBe(false); + }); + it('should work with variable', () => { const ds = dataSourceSrv.getInstanceSettings('${datasourceDefault}'); expect(ds?.name).toBe('${datasourceDefault}'); @@ -182,6 +188,7 @@ describe('datasource_srv', () => { "uid": "uid-code-aaa", }, Object { + "isDefault": true, "meta": Object { "metrics": true, },