feat(xo-server-usage-report): ability to send daily (#3582)

Fixes #3544
This commit is contained in:
badrAZ 2018-10-23 09:20:11 +02:00 committed by Julien Fontanet
parent 60f9393d29
commit dfd66a56c3
2 changed files with 9 additions and 2 deletions

View File

@ -21,6 +21,7 @@
- [Scheduling] Merge selection and interval tabs [#1902](https://github.com/vatesfr/xen-orchestra/issues/1902) (PR [#3519](https://github.com/vatesfr/xen-orchestra/pull/3519)) - [Scheduling] Merge selection and interval tabs [#1902](https://github.com/vatesfr/xen-orchestra/issues/1902) (PR [#3519](https://github.com/vatesfr/xen-orchestra/pull/3519))
- [Backup NG/Restore] The backup selector now also shows the job name [#3366](https://github.com/vatesfr/xen-orchestra/issues/3366) (PR [#3564](https://github.com/vatesfr/xen-orchestra/pull/3564)) - [Backup NG/Restore] The backup selector now also shows the job name [#3366](https://github.com/vatesfr/xen-orchestra/issues/3366) (PR [#3564](https://github.com/vatesfr/xen-orchestra/pull/3564))
- Sort buttons by criticality in tables [#3168](https://github.com/vatesfr/xen-orchestra/issues/3168) (PR [#3545](https://github.com/vatesfr/xen-orchestra/pull/3545)) - Sort buttons by criticality in tables [#3168](https://github.com/vatesfr/xen-orchestra/issues/3168) (PR [#3545](https://github.com/vatesfr/xen-orchestra/pull/3545))
- [Usage Report] Ability to send a daily report [#3544](https://github.com/vatesfr/xen-orchestra/issues/3544) (PR [#3582](https://github.com/vatesfr/xen-orchestra/pull/3582))
### Bug fixes ### Bug fixes

View File

@ -79,7 +79,7 @@ export const configurationSchema = {
}, },
periodicity: { periodicity: {
type: 'string', type: 'string',
enum: ['monthly', 'weekly'], enum: ['monthly', 'weekly', 'daily'],
description: description:
'If you choose weekly you will receive the report every sunday and if you choose monthly you will receive it every first day of the month.', 'If you choose weekly you will receive the report every sunday and if you choose monthly you will receive it every first day of the month.',
}, },
@ -661,6 +661,12 @@ async function dataBuilder ({ xo, storedStatsPath, all }) {
// =================================================================== // ===================================================================
const CRON_BY_PERIODICITY = {
monthly: '0 6 1 * *',
weekly: '0 6 * * 0',
daily: '0 6 * * *',
}
class UsageReportPlugin { class UsageReportPlugin {
constructor ({ xo, getDataDir }) { constructor ({ xo, getDataDir }) {
this._xo = xo this._xo = xo
@ -681,7 +687,7 @@ class UsageReportPlugin {
} }
this._job = createSchedule( this._job = createSchedule(
configuration.periodicity === 'monthly' ? '00 06 1 * *' : '00 06 * * 0' CRON_BY_PERIODICITY[configuration.periodicity]
).createJob(async () => { ).createJob(async () => {
try { try {
await this._sendReport(true) await this._sendReport(true)