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:
@@ -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;
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user