Browse Source

Merge branch 'develop' of github.com:grafana/grafana into develop

Torkel Ödegaard 7 years ago
parent
commit
79933299c7

+ 1 - 1
public/app/features/explore/Explore.tsx

@@ -158,7 +158,7 @@ export class Explore extends React.PureComponent<ExploreProps, ExploreState> {
     if (!datasourceSrv) {
     if (!datasourceSrv) {
       throw new Error('No datasource service passed as props.');
       throw new Error('No datasource service passed as props.');
     }
     }
-    const datasources = datasourceSrv.getAll();
+    const datasources = datasourceSrv.getExternal();
     const exploreDatasources = datasources.map(ds => ({
     const exploreDatasources = datasources.map(ds => ({
       value: ds.name,
       value: ds.name,
       label: ds.name,
       label: ds.name,

+ 5 - 0
public/app/features/plugins/datasource_srv.ts

@@ -78,6 +78,11 @@ export class DatasourceSrv {
     return Object.keys(datasources).map(name => datasources[name]);
     return Object.keys(datasources).map(name => datasources[name]);
   }
   }
 
 
+  getExternal() {
+    const datasources = this.getAll().filter(ds => !ds.meta.builtIn);
+    return _.sortBy(datasources, ['name']);
+  }
+
   getAnnotationSources() {
   getAnnotationSources() {
     const sources = [];
     const sources = [];
 
 

+ 26 - 0
public/app/features/plugins/specs/datasource_srv.test.ts

@@ -18,6 +18,32 @@ const templateSrv = {
 describe('datasource_srv', () => {
 describe('datasource_srv', () => {
   const _datasourceSrv = new DatasourceSrv({}, {}, {}, templateSrv);
   const _datasourceSrv = new DatasourceSrv({}, {}, {}, templateSrv);
 
 
+  describe('when loading external datasources', () => {
+    beforeEach(() => {
+      config.datasources = {
+        buildInDs: {
+          name: 'buildIn',
+          meta: { builtIn: true },
+        },
+        nonBuildIn: {
+          name: 'external1',
+          meta: { builtIn: false },
+        },
+        nonExplore: {
+          name: 'external2',
+          meta: {},
+        },
+      };
+    });
+
+    it('should return list of explore sources', () => {
+      const externalSources = _datasourceSrv.getExternal();
+      expect(externalSources.length).toBe(2);
+      expect(externalSources[0].name).toBe('external1');
+      expect(externalSources[1].name).toBe('external2');
+    });
+  });
+
   describe('when loading metric sources', () => {
   describe('when loading metric sources', () => {
     let metricSources;
     let metricSources;
     const unsortedDatasources = {
     const unsortedDatasources = {

+ 1 - 0
public/app/features/templating/template_srv.ts

@@ -17,6 +17,7 @@ export class TemplateSrv {
   constructor() {
   constructor() {
     this.builtIns['__interval'] = { text: '1s', value: '1s' };
     this.builtIns['__interval'] = { text: '1s', value: '1s' };
     this.builtIns['__interval_ms'] = { text: '100', value: '100' };
     this.builtIns['__interval_ms'] = { text: '100', value: '100' };
+    this.variables = [];
   }
   }
 
 
   init(variables) {
   init(variables) {