Postgres: Fix test datasource always returns success (#43762)

This commit is contained in:
Zoltán Bedi
2022-01-07 10:39:25 +01:00
committed by GitHub
parent 20574c130a
commit 85246d7179
2 changed files with 90 additions and 3 deletions

View File

@ -167,16 +167,37 @@ export class PostgresDatasource extends DataSourceWithBackend<PostgresQuery, Pos
);
}
private _metaRequest(rawSql: string) {
const refId = 'meta';
const range = this.timeSrv.timeRange();
const query = {
refId: refId,
datasource: this.getRef(),
rawSql,
format: 'table',
};
return getBackendSrv().fetch<BackendDataSourceResponse>({
url: '/api/ds/query',
method: 'POST',
data: {
from: range.from.valueOf().toString(),
to: range.to.valueOf().toString(),
queries: [query],
},
requestId: refId,
});
}
getVersion(): Promise<any> {
return this.metricFindQuery("SELECT current_setting('server_version_num')::int/100", {});
return lastValueFrom(this._metaRequest("SELECT current_setting('server_version_num')::int/100"));
}
getTimescaleDBVersion(): Promise<any> {
return this.metricFindQuery("SELECT extversion FROM pg_extension WHERE extname = 'timescaledb'", {});
return lastValueFrom(this._metaRequest("SELECT extversion FROM pg_extension WHERE extname = 'timescaledb'"));
}
testDatasource(): Promise<any> {
return this.metricFindQuery('SELECT 1', {})
return lastValueFrom(this._metaRequest('SELECT 1'))
.then(() => {
return { status: 'success', message: 'Database Connection OK' };
})