|
|
|
@ -382,7 +382,8 @@ class Monitor extends BeanModel {
|
|
|
|
|
|
|
|
|
|
if (children.length > 0) {
|
|
|
|
|
bean.status = UP;
|
|
|
|
|
bean.msg = "All children up and running";
|
|
|
|
|
bean.msg = "";
|
|
|
|
|
let errorChildNames = [];
|
|
|
|
|
for (const child of children) {
|
|
|
|
|
if (!child.active) {
|
|
|
|
|
// Ignore inactive childs
|
|
|
|
@ -399,11 +400,24 @@ class Monitor extends BeanModel {
|
|
|
|
|
} else if (bean.status === PENDING && lastBeat.status === DOWN) {
|
|
|
|
|
bean.status = lastBeat.status;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bean.status !== UP) {
|
|
|
|
|
bean.msg = "Child inaccessible";
|
|
|
|
|
if(lastBeat && (lastBeat.status === PENDING || lastBeat.status === DOWN)) {
|
|
|
|
|
console.log(lastBeat.monitor_id);
|
|
|
|
|
const childMonitor = await Monitor.getMonitor(lastBeat.monitor_id);
|
|
|
|
|
console.log(childMonitor)
|
|
|
|
|
if(errorChildNames.length > 0)
|
|
|
|
|
bean.msg += "\r\n";
|
|
|
|
|
|
|
|
|
|
bean.msg += "- " + childMonitor.name + ":\r\n" + lastBeat.msg.trim().replace(/^/gm, " ");
|
|
|
|
|
errorChildNames.push(childMonitor.name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bean.status === UP) {
|
|
|
|
|
bean.msg = "All children up and running";
|
|
|
|
|
} else if(bean.status === PENDING || bean.status === DOWN) {
|
|
|
|
|
bean.msg = "Some Children are having problems (" + errorChildNames.join(', ') + ")\r\n" + bean.msg;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// Set status pending if group is empty
|
|
|
|
|
bean.status = PENDING;
|
|
|
|
@ -1604,6 +1618,20 @@ class Monitor extends BeanModel {
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets Monitor with specific ID
|
|
|
|
|
* @param {number} monitorID ID of monitor to get
|
|
|
|
|
* @returns {Promise<LooseObject<any>>} Children
|
|
|
|
|
*/
|
|
|
|
|
static async getMonitor(monitorID) {
|
|
|
|
|
return await R.getRow(`
|
|
|
|
|
SELECT * FROM monitor
|
|
|
|
|
WHERE id = ?
|
|
|
|
|
`, [
|
|
|
|
|
monitorID,
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets Parent of the monitor
|
|
|
|
|
* @param {number} monitorID ID of monitor to get
|
|
|
|
|