Fallback for SLA in Zabbix 6.0, fixes #1408

This commit is contained in:
Alexander Zobnin
2022-04-29 12:15:24 +03:00
parent 59eef45b62
commit 744280798a
2 changed files with 72 additions and 3 deletions

View File

@@ -184,6 +184,11 @@ export class Zabbix implements ZabbixConnector {
return version ? semver.lt(version, '5.4.0') : true;
}
supportSLA() {
const version = this.version || this.zabbixAPI.version;
return version ? semver.gte(version, '6.0.0') : true;
}
isZabbix54OrHigher() {
const version = this.version || this.zabbixAPI.version;
return version ? semver.gte(version, '5.4.0') : false;
@@ -496,14 +501,19 @@ export class Zabbix implements ZabbixConnector {
}
}
getSLA(itservices, timeRange, target, options) {
async getSLA(itservices, timeRange, target, options) {
const itServiceIds = _.map(itservices, 'serviceid');
return this.zabbixAPI.getSLA(itServiceIds, timeRange, options)
.then(slaResponse => {
if (this.supportSLA()) {
const slaResponse = await this.zabbixAPI.getSLA60(itServiceIds, timeRange, options);
return _.map(itServiceIds, serviceid => {
const itservice = _.find(itservices, { 'serviceid': serviceid });
return responseHandler.handleSLAResponse(itservice, target.slaProperty, slaResponse);
});
}
const slaResponse = await this.zabbixAPI.getSLA(itServiceIds, timeRange, options);
return _.map(itServiceIds, serviceid => {
const itservice = _.find(itservices, { 'serviceid': serviceid });
return responseHandler.handleSLAResponse(itservice, target.slaProperty, slaResponse);
});
}
}