diff --git a/packages/xo-server-backup-reports/package.json b/packages/xo-server-backup-reports/package.json index bc8627267..19aeda430 100644 --- a/packages/xo-server-backup-reports/package.json +++ b/packages/xo-server-backup-reports/package.json @@ -1,6 +1,6 @@ { "private": true, - "name": "", + "name": "xo-server-backup-reports", "version": "0.0.0", "license": "ISC", "description": "", diff --git a/packages/xo-server-backup-reports/src/index.js b/packages/xo-server-backup-reports/src/index.js index 9176f6f41..6864e5b2a 100644 --- a/packages/xo-server-backup-reports/src/index.js +++ b/packages/xo-server-backup-reports/src/index.js @@ -1,5 +1,51 @@ import forEach from 'lodash.foreach' +function listener (status) { + let nSuccess = 0 + let nCalls = 0 + + // Backup status for each vm + forEach(status.calls, call => { + let vmStatus + + if (call.error) { + vmStatus = 'Fail' + } else { + nSuccess++ + vmStatus = 'Success' + } + + nCalls++ + + const vm = this._xo.getObject(call.params.id) + + console.log( + `VM Name: ${vm.name_label} + UUID: ${call.params.id} + Status: ${vmStatus} + Start time: ${call.start} + End time: ${call.end} + Duration: ${call.end - call.start} + ` + ) + }) + + const globalStatus = nSuccess === nCalls + ? 'Success' + : 'Fail' + + // Global status + console.log( + `Global status: ${globalStatus} + Start time: ${status.start} + End time: ${status.end} + Duration: ${status.end - status.start} + Successful backed up VM number: ${nSuccess} + Failed backed up VM: ${nCalls - nSuccess} + ` + ) +} + class BackupReportsXoPlugin { constructor (xo) { this._xo = xo @@ -10,55 +56,11 @@ class BackupReportsXoPlugin { } load () { - this._xo.on('job:terminated', status => { - let nSuccess = 0 - let nCalls = 0 - - // Backup status for each vm - forEach(status.calls, call => { - let vmStatus - - if (call.error) { - vmStatus = 'Fail' - } else { - nSuccess++ - vmStatus = 'Success' - } - - nCalls++ - - const vm = this._xo.getObject(call.params.id) - - console.log( - `VM Name: ${vm.name_label} - UUID: ${call.params.id} - Status: ${vmStatus} - Start time: ${call.start} - End time: ${call.end} - Duration: ${call.end - call.start} - ` - ) - }) - - const globalStatus = nSuccess === nCalls - ? 'Success' - : 'Fail' - - // Global status - console.log( - `Global status: ${globalStatus} - Start time: ${status.start} - End time: ${status.end} - Duration: ${status.end - status.start} - Successful backed up VM number: ${nSuccess} - Failed backed up VM: ${nCalls - nSuccess} - ` - ) - }) + this._xo.on('job:terminated', listener) } unload () { - + this._xo.removeListener(listener) } }