Fix ds provisioning with direct DB connection enabled (#723)

* fix ds provisioning with direct DB connection #711

* fix linter error
This commit is contained in:
Alexander Zobnin
2019-04-19 12:56:51 +03:00
committed by GitHub
parent e4bbecb18b
commit 869634ef62
4 changed files with 25 additions and 5 deletions

View File

@@ -28,9 +28,16 @@ export class ZabbixDSConfigController {
this.current.jsonData = migrateDSConfig(this.current.jsonData); this.current.jsonData = migrateDSConfig(this.current.jsonData);
_.defaults(this.current.jsonData, defaultConfig); _.defaults(this.current.jsonData, defaultConfig);
this.dbConnectionEnable = this.current.jsonData.dbConnectionEnable;
this.dbConnectionDatasourceId = this.current.jsonData.dbConnectionDatasourceId;
this.dbDataSources = this.getSupportedDBDataSources(); this.dbDataSources = this.getSupportedDBDataSources();
this.zabbixVersions = _.cloneDeep(zabbixVersions); this.zabbixVersions = _.cloneDeep(zabbixVersions);
this.autoDetectZabbixVersion(); this.autoDetectZabbixVersion();
if (!this.dbConnectionDatasourceId) {
this.loadCurrentDBDatasource();
}
} }
getSupportedDBDataSources() { getSupportedDBDataSources() {
@@ -41,11 +48,21 @@ export class ZabbixDSConfigController {
} }
getCurrentDatasourceType() { getCurrentDatasourceType() {
const dsId = this.current.jsonData.dbConnectionDatasourceId; const dsId = this.dbConnectionDatasourceId;
const currentDs = _.find(this.dbDataSources, { 'id': dsId }); const currentDs = _.find(this.dbDataSources, { 'id': dsId });
return currentDs ? currentDs.type : null; return currentDs ? currentDs.type : null;
} }
loadCurrentDBDatasource() {
const dsName= this.current.jsonData.dbConnectionDatasourceName;
this.datasourceSrv.loadDatasource(dsName)
.then(ds => {
if (ds) {
this.dbConnectionDatasourceId = ds.id;
}
});
}
autoDetectZabbixVersion() { autoDetectZabbixVersion() {
if (!this.current.id) { if (!this.current.id) {
return; return;

View File

@@ -88,9 +88,9 @@
<h3 class="page-heading">Direct DB Connection</h3> <h3 class="page-heading">Direct DB Connection</h3>
<gf-form-switch class="gf-form" label-class="width-12" <gf-form-switch class="gf-form" label-class="width-12"
label="Enable" label="Enable"
checked="ctrl.current.jsonData.dbConnectionEnable"> checked="ctrl.dbConnectionEnable">
</gf-form-switch> </gf-form-switch>
<div ng-if="ctrl.current.jsonData.dbConnectionEnable"> <div ng-if="ctrl.dbConnectionEnable">
<div class="gf-form max-width-30"> <div class="gf-form max-width-30">
<span class="gf-form-label width-12"> <span class="gf-form-label width-12">
Data Source Data Source
@@ -103,7 +103,7 @@
</info-popover> </info-popover>
</span> </span>
<div class="gf-form-select-wrapper max-width-16"> <div class="gf-form-select-wrapper max-width-16">
<select class="gf-form-input" ng-model="ctrl.current.jsonData.dbConnectionDatasourceId" <select class="gf-form-input" ng-model="ctrl.dbConnectionDatasourceId"
ng-options="ds.id as ds.name for ds in ctrl.dbDataSources"> ng-options="ds.id as ds.name for ds in ctrl.dbDataSources">
</select> </select>
</div> </div>

View File

@@ -65,6 +65,9 @@ export class DBConnector {
if (!this.datasourceName) { if (!this.datasourceName) {
this.datasourceName = ds.name; this.datasourceName = ds.name;
} }
if (!this.datasourceId) {
this.datasourceId = ds.id;
}
return ds; return ds;
}); });
} }