diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 09648a665..f42431aed 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -13,6 +13,7 @@ - [Groups] Ability to delete multiple groups at once (PR [#5264](https://github.com/vatesfr/xen-orchestra/pull/5264)) - [Backup/logs] Log's tasks pagination [#4406](https://github.com/vatesfr/xen-orchestra/issues/4406) (PR [#5209](https://github.com/vatesfr/xen-orchestra/pull/5209)) - [Backup logs] Ability to filter by VM/pool name [#4406](https://github.com/vatesfr/xen-orchestra/issues/4406) (PR [#5208](https://github.com/vatesfr/xen-orchestra/pull/5208)) +- [Tasks] Show XO objects linked to pending/finished tasks [#4275](https://github.com/vatesfr/xen-orchestra/issues/4275) (PR [#5267](https://github.com/vatesfr/xen-orchestra/pull/5267)) ### Bug fixes @@ -44,5 +45,6 @@ - @xen-orchestra/fs patch - xo-vmdk-to-vhd patch +- xo-server minor - xo-web minor - xo-server patch diff --git a/packages/xo-server/src/xapi-object-to-xo.js b/packages/xo-server/src/xapi-object-to-xo.js index 2b56535a0..310051d57 100644 --- a/packages/xo-server/src/xapi-object-to-xo.js +++ b/packages/xo-server/src/xapi-object-to-xo.js @@ -117,6 +117,7 @@ const TRANSFORMS = { pool(obj) { const cpuInfo = obj.cpu_info return { + current_operations: obj.current_operations, default_SR: link(obj, 'default_SR'), HA_enabled: Boolean(obj.ha_enabled), master: link(obj, 'master'), @@ -525,6 +526,7 @@ const TRANSFORMS = { physical_usage: +obj.physical_utilisation, allocationStrategy: ALLOCATION_BY_TYPE[srType], + current_operations: obj.current_operations, name_description: obj.name_description, name_label: obj.name_label, size: +obj.physical_size, @@ -609,6 +611,7 @@ const TRANSFORMS = { tags: obj.tags, usage: +obj.physical_utilisation, VDI_type: obj.type, + current_operations: obj.current_operations, $SR: link(obj, 'SR'), $VBDs: link(obj, 'VBDs'), @@ -682,6 +685,7 @@ const TRANSFORMS = { return { automatic: obj.other_config?.automatic === 'true', bridge: obj.bridge, + current_operations: obj.current_operations, defaultIsLocked: obj.default_locking_mode === 'disabled', MTU: +obj.MTU, name_description: obj.name_description, @@ -718,6 +722,7 @@ const TRANSFORMS = { progress: +obj.progress, result: obj.result, status: obj.status, + xapiRef: obj.$ref, $host: link(obj, 'resident_on'), } diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index 9f1a623d3..04e126863 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -1546,6 +1546,7 @@ const messages = { destroyTask: 'Destroy', cancelTasks: 'Cancel selected tasks', destroyTasks: 'Destroy selected tasks', + objects: 'Objects', pool: 'Pool', task: 'Task', progress: 'Progress', diff --git a/packages/xo-web/src/xo-app/tasks/index.js b/packages/xo-web/src/xo-app/tasks/index.js index d0a3af8fc..391c2c0c6 100644 --- a/packages/xo-web/src/xo-app/tasks/index.js +++ b/packages/xo-web/src/xo-app/tasks/index.js @@ -1,9 +1,11 @@ import _, { messages } from 'intl' import Collapse from 'collapse' import Component from 'base-component' +import defined from '@xen-orchestra/defined' import Icon from 'icon' import Link from 'link' import React from 'react' +import renderXoItem, { Pool } from 'render-xo-item' import SortedTable from 'sorted-table' import { FormattedDate, injectIntl } from 'react-intl' import { SelectPool } from 'select-objects' @@ -13,12 +15,14 @@ import { differenceBy, flatMap, flatten, + forOwn, + groupBy, isEmpty, keys, + map, some, toArray, } from 'lodash' -import { Pool } from 'render-xo-item' import { createFilter, createGetObject, @@ -41,6 +45,16 @@ const HEADER = ( ) +const Ul = props =>