triggers panel: fix error handling
This commit is contained in:
@@ -47,9 +47,7 @@ export class ZabbixAPIConnector {
|
|||||||
.then(() => this.request(method, params));
|
.then(() => this.request(method, params));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Handle API errors
|
return Promise.reject(error);
|
||||||
let message = error.data ? error.data : error.statusText;
|
|
||||||
return Promise.reject(message);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const REQUESTS_TO_CACHE = [
|
|||||||
|
|
||||||
const REQUESTS_TO_BIND = [
|
const REQUESTS_TO_BIND = [
|
||||||
'getHistory', 'getTrend', 'getMacros', 'getItemsByIDs', 'getEvents', 'getAlerts', 'getHostAlerts',
|
'getHistory', 'getTrend', 'getMacros', 'getItemsByIDs', 'getEvents', 'getAlerts', 'getHostAlerts',
|
||||||
'getAcknowledges', 'getITService', 'getVersion', 'login'
|
'getAcknowledges', 'getITService', 'getVersion', 'login', 'acknowledgeEvent'
|
||||||
];
|
];
|
||||||
|
|
||||||
export class Zabbix {
|
export class Zabbix {
|
||||||
|
|||||||
@@ -102,6 +102,23 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
this.events.on('refresh', this.onRefresh.bind(this));
|
this.events.on('refresh', this.onRefresh.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setPanelError(err, defaultError) {
|
||||||
|
const defaultErrorMessage = defaultError || "Request Error";
|
||||||
|
this.inspector = { error: err };
|
||||||
|
this.error = err.message || defaultErrorMessage;
|
||||||
|
if (err.data) {
|
||||||
|
if (err.data.message) {
|
||||||
|
this.error = err.data.message;
|
||||||
|
}
|
||||||
|
if (err.data.error) {
|
||||||
|
this.error = err.data.error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.events.emit('data-error', err);
|
||||||
|
console.log('Panel data error:', err);
|
||||||
|
}
|
||||||
|
|
||||||
initDatasources() {
|
initDatasources() {
|
||||||
let promises = _.map(this.panel.datasources, (ds) => {
|
let promises = _.map(this.panel.datasources, (ds) => {
|
||||||
// Load datasource
|
// Load datasource
|
||||||
@@ -161,18 +178,7 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.error = err.message || "Request Error";
|
this.setPanelError(err);
|
||||||
if (err.data) {
|
|
||||||
if (err.data.message) {
|
|
||||||
this.error = err.data.message;
|
|
||||||
}
|
|
||||||
if (err.data.error) {
|
|
||||||
this.error = err.data.error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.events.emit('data-error', err);
|
|
||||||
console.log('Panel data error:', err);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,16 +465,14 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
return Promise.reject({message: 'You have no permissions to acknowledge events.'});
|
return Promise.reject({message: 'You have no permissions to acknowledge events.'});
|
||||||
}
|
}
|
||||||
if (eventid) {
|
if (eventid) {
|
||||||
return datasource.zabbix.zabbixAPI.acknowledgeEvent(eventid, ack_message);
|
return datasource.zabbix.acknowledgeEvent(eventid, ack_message);
|
||||||
} else {
|
} else {
|
||||||
return Promise.reject({message: 'Trigger has no events. Nothing to acknowledge.'});
|
return Promise.reject({message: 'Trigger has no events. Nothing to acknowledge.'});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(this.onRefresh.bind(this))
|
.then(this.onRefresh.bind(this))
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
this.error = err.message || "Acknowledge Error";
|
this.setPanelError(err);
|
||||||
this.events.emit('data-error', err);
|
|
||||||
console.log('Panel data error:', err);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user