diff --git a/packages/xo-web/src/icons.scss b/packages/xo-web/src/icons.scss index d702e8ba3..04c853812 100644 --- a/packages/xo-web/src/icons.scss +++ b/packages/xo-web/src/icons.scss @@ -378,6 +378,11 @@ @extend .fa-folder; } + &-health { + @extend .fa; + @extend .fa-heartbeat; + } + // Jobs &-jobs { @extend .fa; diff --git a/packages/xo-web/src/xo-app/logs/backup-ng/log-alert-body.js b/packages/xo-web/src/xo-app/logs/backup-ng/log-alert-body.js index f3848199d..1197f6e23 100644 --- a/packages/xo-web/src/xo-app/logs/backup-ng/log-alert-body.js +++ b/packages/xo-web/src/xo-app/logs/backup-ng/log-alert-body.js @@ -201,6 +201,23 @@ const SnapshotTask = ({ className, task }) => ( ) +const HealthCheckTask = ({ children, className, task }) => ( +
  • + {task.message} + {children} + + + +
  • +) +const HealthCheckVmStartTask = ({ children, className, task }) => ( +
  • + {task.message} + + + +
  • +) const RemoteTask = ({ children, className, task }) => (
  • @@ -234,7 +251,17 @@ const TransferMergeTask = ({ className, task }) => { return (
  • - {task.message} + {task.message === 'transfer' ? ( + task.parent?.message === 'health check' ? ( + + ) : ( + + ) + ) : ( + + )}{' '} + {task.message} + @@ -263,6 +290,8 @@ const COMPONENT_BY_MESSAGE = { snapshot: SnapshotTask, merge: TransferMergeTask, transfer: TransferMergeTask, + 'health check': HealthCheckTask, + vmstart: HealthCheckVmStartTask, } const TaskLi = ({ task, ...props }) => { @@ -287,7 +316,20 @@ export default decorate([ addSubscriptions(({ id }) => ({ log: cb => subscribeBackupNgLogs(logs => { - cb(logs[id]) + const linkParent = parent => { + const { tasks } = parent + if (tasks !== undefined) { + for (const task of tasks) { + task.parent = parent + linkParent(task) + } + } + } + const log = logs[id] + if (log !== undefined) { + linkParent(log) + } + cb(log) }), })), connectStore({ @@ -469,7 +511,13 @@ export default decorate([
      {map(subTaskLog.tasks, subSubTaskLog => ( - + +
        + {map(subSubTaskLog.tasks, subSubSubTaskLog => ( + + ))} +
      +
      ))}