diff --git a/@vates/fuse-vhd/package.json b/@vates/fuse-vhd/package.json index ab2bd529a8..b3368abf6d 100644 --- a/@vates/fuse-vhd/package.json +++ b/@vates/fuse-vhd/package.json @@ -19,7 +19,7 @@ }, "main": "./index.mjs", "dependencies": { - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "fuse-native": "^2.2.6", "lru-cache": "^7.14.0", diff --git a/@vates/nbd-client/package.json b/@vates/nbd-client/package.json index 928e0fa334..0cbfdbfc94 100644 --- a/@vates/nbd-client/package.json +++ b/@vates/nbd-client/package.json @@ -22,7 +22,7 @@ "@vates/async-each": "^1.0.3", "@vates/read-chunk": "^1.2.1", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/disk-transform": "^1.3.2", + "@xen-orchestra/disk-transform": "^1.3.3", "@xen-orchestra/log": "^0.7.2", "promise-toolbox": "^0.21.0", "xen-api": "^4.8.0" diff --git a/@vates/types/package.json b/@vates/types/package.json index d709cc2341..5d3039bc15 100644 --- a/@vates/types/package.json +++ b/@vates/types/package.json @@ -1,7 +1,7 @@ { "name": "@vates/types", "private": false, - "version": "1.29.0", + "version": "1.30.0", "main": "./dist/index.mjs", "exports": { ".": { diff --git a/@xen-orchestra/acl/package.json b/@xen-orchestra/acl/package.json index e15f7f9a79..3cc1953dc3 100644 --- a/@xen-orchestra/acl/package.json +++ b/@xen-orchestra/acl/package.json @@ -30,7 +30,7 @@ }, "devDependencies": { "@eslint/js": "^9.19.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "rimraf": "^6.0.1", "typescript": "~5.6", "typescript-eslint": "^8.61.0" diff --git a/@xen-orchestra/backup-archive/package.json b/@xen-orchestra/backup-archive/package.json index 3bd7a4a6f9..461ae9f218 100644 --- a/@xen-orchestra/backup-archive/package.json +++ b/@xen-orchestra/backup-archive/package.json @@ -1,6 +1,6 @@ { "name": "@xen-orchestra/backup-archive", - "version": "1.1.0", + "version": "1.1.1", "description": "Helper to handle generic backup archives", "license": "ISC", "author": "", @@ -21,12 +21,12 @@ "tar-stream": "^3.1.8", "@types/tar-stream": "^3.1.4", "tmp": "^0.2.1", - "@vates/types": "^1.29.0" + "@vates/types": "^1.30.0" }, "dependencies": { "@xen-orchestra/log": "^0.7.1", - "@xen-orchestra/fs": "^4.9.2", - "@xen-orchestra/disk-transform": "^1.3.2", + "@xen-orchestra/fs": "^4.9.3", + "@xen-orchestra/disk-transform": "^1.3.3", "@vates/task": "0.7.0", "golike-defer": "0.5.1", "uuid": "^9.0.0", diff --git a/@xen-orchestra/backups-cli/package.json b/@xen-orchestra/backups-cli/package.json index f0f9ad23f2..2187c76d29 100644 --- a/@xen-orchestra/backups-cli/package.json +++ b/@xen-orchestra/backups-cli/package.json @@ -8,8 +8,8 @@ "dependencies": { "@vates/async-each": "^1.0.3", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/backups": "^0.73.8", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/backups": "^0.73.9", + "@xen-orchestra/fs": "^4.9.3", "filenamify": "^6.0.0", "getopts": "^2.2.5", "lodash": "^4.18.0", diff --git a/@xen-orchestra/backups/package.json b/@xen-orchestra/backups/package.json index 8ac51c0eb7..8920f712b7 100644 --- a/@xen-orchestra/backups/package.json +++ b/@xen-orchestra/backups/package.json @@ -8,7 +8,7 @@ "type": "git", "url": "https://github.com/vatesfr/xen-orchestra.git" }, - "version": "0.73.8", + "version": "0.73.9", "engines": { "node": ">=14.18" }, @@ -30,14 +30,14 @@ "@vates/nbd-client": "^3.4.0", "@vates/parse-duration": "^0.1.1", "@vates/task": "^0.7.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/disk-transform": "^1.3.2", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/disk-transform": "^1.3.3", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "@xen-orchestra/qcow2": "^1.3.1", "@xen-orchestra/template": "^0.1.1", - "@xen-orchestra/backup-archive": "^1.1.0", + "@xen-orchestra/backup-archive": "^1.1.1", "app-conf": "^3.0.0", "compare-versions": "^6.0.0", "d3-time-format": "^4.1.0", @@ -67,7 +67,7 @@ "typescript": "^5.9.3" }, "peerDependencies": { - "@xen-orchestra/xapi": "^8.10.0" + "@xen-orchestra/xapi": "^8.10.1" }, "license": "AGPL-3.0-or-later", "author": { diff --git a/@xen-orchestra/disk-cli/package.json b/@xen-orchestra/disk-cli/package.json index d26cba548e..36e99464f4 100644 --- a/@xen-orchestra/disk-cli/package.json +++ b/@xen-orchestra/disk-cli/package.json @@ -20,10 +20,10 @@ }, "dependencies": { "@vates/async-each": "^1.0.3", - "@xen-orchestra/backups": "^0.73.8", - "@xen-orchestra/backup-archive": "^1.1.0", - "@xen-orchestra/disk-transform": "^1.3.2", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/backups": "^0.73.9", + "@xen-orchestra/backup-archive": "^1.1.1", + "@xen-orchestra/disk-transform": "^1.3.3", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/qcow2": "^1.3.1", "promise-toolbox": "^0.21.0", "vhd-lib": "^4.16.1" diff --git a/@xen-orchestra/disk-transform/package.json b/@xen-orchestra/disk-transform/package.json index 966009bca9..86cf8bc85e 100644 --- a/@xen-orchestra/disk-transform/package.json +++ b/@xen-orchestra/disk-transform/package.json @@ -1,6 +1,6 @@ { "name": "@xen-orchestra/disk-transform", - "version": "1.3.2", + "version": "1.3.3", "main": "./dist/index.mjs", "license": "MIT", "private": false, diff --git a/@xen-orchestra/fs/package.json b/@xen-orchestra/fs/package.json index 231e5b26b8..af30240bfe 100644 --- a/@xen-orchestra/fs/package.json +++ b/@xen-orchestra/fs/package.json @@ -1,7 +1,7 @@ { "private": false, "name": "@xen-orchestra/fs", - "version": "4.9.2", + "version": "4.9.3", "license": "AGPL-3.0-or-later", "description": "The File System for Xen Orchestra backups.", "homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/fs", diff --git a/@xen-orchestra/immutable-backups/package.json b/@xen-orchestra/immutable-backups/package.json index 96035cd831..9a55d4e803 100644 --- a/@xen-orchestra/immutable-backups/package.json +++ b/@xen-orchestra/immutable-backups/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@vates/async-each": "^1.0.3", - "@xen-orchestra/backups": "^0.73.8", + "@xen-orchestra/backups": "^0.73.9", "@xen-orchestra/log": "^0.7.2", "app-conf": "^3.0.0", "execa": "^5.0.0", diff --git a/@xen-orchestra/lite/package.json b/@xen-orchestra/lite/package.json index 64a5a85830..81f7ce8181 100644 --- a/@xen-orchestra/lite/package.json +++ b/@xen-orchestra/lite/package.json @@ -28,13 +28,13 @@ "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", "@types/node": "^18.19.80", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/tsconfig": "^0.9.0", "@vueuse/core": "^14.0.0", "@vueuse/math": "^14.0.0", "@vueuse/shared": "^14.0.0", - "@xen-orchestra/web-core": "^0.57.0", + "@xen-orchestra/web-core": "^0.58.0", "complex-matcher": "^1.1.1", "d3-time-format": "^4.1.0", "decorator-synchronized": "^0.6.0", diff --git a/@xen-orchestra/mcp/package.json b/@xen-orchestra/mcp/package.json index b5075e846d..e85de56828 100644 --- a/@xen-orchestra/mcp/package.json +++ b/@xen-orchestra/mcp/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@eslint/js": "^9.19.0", "@types/node": "^22.3.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "rimraf": "^6.0.0", "typescript": "~5.6.3", "typescript-eslint": "^8.61.0" diff --git a/@xen-orchestra/proxy/package.json b/@xen-orchestra/proxy/package.json index 61d8c6ace6..a5aba67d06 100644 --- a/@xen-orchestra/proxy/package.json +++ b/@xen-orchestra/proxy/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@xen-orchestra/proxy", - "version": "0.31.3", + "version": "0.31.4", "license": "AGPL-3.0-or-later", "description": "XO Proxy used to remotely execute backup jobs", "keywords": [ @@ -33,13 +33,13 @@ "@vates/disposable": "^0.1.6", "@vates/task": "^0.7.0", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/backups": "^0.73.8", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/backups": "^0.73.9", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "@xen-orchestra/mixin": "^0.2.1", "@xen-orchestra/mixins": "^0.20.1", "@xen-orchestra/self-signed": "^0.2.1", - "@xen-orchestra/xapi": "^8.10.0", + "@xen-orchestra/xapi": "^8.10.1", "ajv": "^8.0.3", "app-conf": "^3.0.0", "async-iterator-to-stream": "^1.1.0", diff --git a/@xen-orchestra/qa-test/package.json b/@xen-orchestra/qa-test/package.json index 781c0f5f3f..65b002e3d6 100644 --- a/@xen-orchestra/qa-test/package.json +++ b/@xen-orchestra/qa-test/package.json @@ -21,8 +21,8 @@ }, "dependencies": { "@vates/async-each": "^1.0.3", - "@xen-orchestra/backups": "^0.73.8", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/backups": "^0.73.9", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "nodemailer": "^7.0.13", "xo-lib": "^0.11.2" diff --git a/@xen-orchestra/qcow2/package.json b/@xen-orchestra/qcow2/package.json index 0b1cc8cd58..92f0ebb2e2 100644 --- a/@xen-orchestra/qcow2/package.json +++ b/@xen-orchestra/qcow2/package.json @@ -36,6 +36,6 @@ "typescript-eslint": "^8.61.0" }, "dependencies": { - "@xen-orchestra/disk-transform": "^1.3.2" + "@xen-orchestra/disk-transform": "^1.3.3" } } diff --git a/@xen-orchestra/rest-api/package.json b/@xen-orchestra/rest-api/package.json index a84ecb3a9b..de08502252 100644 --- a/@xen-orchestra/rest-api/package.json +++ b/@xen-orchestra/rest-api/package.json @@ -6,7 +6,7 @@ "main": "./dist/index.mjs", "name": "@xen-orchestra/rest-api", "homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/rest-api", - "version": "0.36.0", + "version": "0.37.0", "description": "REST API to manage your XOA", "license": "AGPL-3.0-or-later", "private": false, @@ -36,11 +36,11 @@ "dependencies": { "@vates/async-each": "^1.0.3", "@vates/task": "^0.7.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@xen-orchestra/acl": "^1.5.0", - "@xen-orchestra/backups": "^0.73.8", + "@xen-orchestra/backups": "^0.73.9", "@xen-orchestra/log": "^0.7.2", - "@xen-orchestra/xapi": "^8.10.0", + "@xen-orchestra/xapi": "^8.10.1", "complex-matcher": "^1.1.1", "golike-defer": "^0.5.1", "inversify": "^6.2.2", diff --git a/@xen-orchestra/web-core/package.json b/@xen-orchestra/web-core/package.json index 0e7c0f793e..4ac617a12a 100644 --- a/@xen-orchestra/web-core/package.json +++ b/@xen-orchestra/web-core/package.json @@ -1,7 +1,7 @@ { "name": "@xen-orchestra/web-core", "type": "module", - "version": "0.57.0", + "version": "0.58.0", "private": false, "exports": { "./*": { diff --git a/@xen-orchestra/web/package.json b/@xen-orchestra/web/package.json index 64afe3fed1..144c82e300 100644 --- a/@xen-orchestra/web/package.json +++ b/@xen-orchestra/web/package.json @@ -1,6 +1,6 @@ { "name": "@xen-orchestra/web", - "version": "0.56.0", + "version": "0.57.0", "type": "module", "scripts": { "dev": "vite", @@ -28,14 +28,14 @@ "@types/d3-time-format": "^4.0.3", "@types/lodash-es": "^4.17.12", "@types/node": "^18.19.80", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/tsconfig": "^0.9.0", "@vueuse/core": "^14.0.0", "@vueuse/integrations": "^14.0.0", "@vueuse/math": "^14.0.0", "@vueuse/shared": "^14.0.0", - "@xen-orchestra/web-core": "^0.57.0", + "@xen-orchestra/web-core": "^0.58.0", "complex-matcher": "^1.1.1", "d3-time-format": "^4.1.0", "human-format": "^1.2.1", diff --git a/@xen-orchestra/xapi/package.json b/@xen-orchestra/xapi/package.json index 22ddcd17db..a4fddc3ea5 100644 --- a/@xen-orchestra/xapi/package.json +++ b/@xen-orchestra/xapi/package.json @@ -1,6 +1,6 @@ { "name": "@xen-orchestra/xapi", - "version": "8.10.0", + "version": "8.10.1", "homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/xapi", "bugs": "https://github.com/vatesfr/xen-orchestra/issues", "repository": { @@ -30,7 +30,7 @@ "@vates/read-chunk": "^1.2.1", "@vates/task": "^0.7.0", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/disk-transform": "^1.3.2", + "@xen-orchestra/disk-transform": "^1.3.3", "@xen-orchestra/log": "^0.7.2", "@xen-orchestra/qcow2": "^1.3.1", "d3-time-format": "^4.1.0", diff --git a/CHANGELOG.md b/CHANGELOG.md index 676026d10b..17ffdf359f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - [REST API] Expose `/rest/v0/acl-roles/:id/groups` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085)) - [REST API] Expose `/rest/v0/groups/:id/acl-roles` (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085)) - [REST API] Add `POST /srs` REST route to create a storage repository (PR [#9990](https://github.com/vatesfr/xen-orchestra/pull/9990)) +- [REST API] Possibility of sending `shutdownPinnedVms` in the body of the `/pools/:id/actions/rolling_update` and `rolling_reboot` endpoints (PR [#10125](https://github.com/vatesfr/xen-orchestra/pull/10125)) - **RBAC** check for REST API endpoints: - `/pools/:id/actions/create_bonded_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891)) - `/pools/:id/actions/create_internal_network` (PR [#9891](https://github.com/vatesfr/xen-orchestra/pull/9891)) @@ -25,12 +26,16 @@ - [XO/Pool] XO now reconnects to a surviving pool member when the master becomes unreachable (e.g. HA promoted a new master after the old one died), instead of staying stuck on the dead master, including after an XO restart (PR [#10016](https://github.com/vatesfr/xen-orchestra/pull/10016)) - [RPU] Trace rolling pool updates/reboots to disk to allow diagnosis even after xo-server restarts (PR [#10078](https://github.com/vatesfr/xen-orchestra/pull/10078)) - [RPU/RPR] Re-check that each host can still be evacuated right before evacuating it, to fail early with an explicit error (PR [#10097](https://github.com/vatesfr/xen-orchestra/pull/10097)) +- [RPU/RPR] New `shutdownPinnedVms` option: VMs that cannot be migrated because they use a host-bound device (PCI passthrough, vGPU, SR-IOV VIF) are cleanly shut down before their host reboots and started again on it afterwards, instead of aborting the whole run. When such VMs block the run, XO now lists them and asks for confirmation instead of failing with a raw `CANNOT_EVACUATE_HOST` error (PR [#10125](https://github.com/vatesfr/xen-orchestra/pull/10125)) - [RPU] Re-enable the load balancer after a configurable safe delay (30 minutes by default) when a rolling pool update ends (PR [#10111](https://github.com/vatesfr/xen-orchestra/pull/10111)) - [vm stats] Reduce the memory consumption of the rrd stats (PR [#10039](https://github.com/vatesfr/xen-orchestra/pull/10039)) - [XO5/Hub] Recipes are now available to all plans, not just Premium (PR [#10117](https://github.com/vatesfr/xen-orchestra/pull/10117)) - [XO5/Hub] Kubernetes cluster recipe no longer requires the XOA plugin to work (PR [#10127](https://github.com/vatesfr/xen-orchestra/pull/10127)) +- [i18n] Update Czech, Dutch, German, Korean, Portuguese and Slovak translations (PR [#10033](https://github.com/vatesfr/xen-orchestra/pull/10033)) - [XO6] Fix some design inconsistency between pages (PR [#10109](https://github.com/vatesfr/xen-orchestra/pull/10109)) - [XO6] Input fields now support prefix/suffix sections, and display validation messages ordered by severity (PR [#10009](https://github.com/vatesfr/xen-orchestra/pull/10009)) +- [XO6] Add copy all button for IP list and bond device (PR [#10081](https://github.com/vatesfr/xen-orchestra/pull/10081)) +- [Treeview] Fix hosts alignment in Treeview when hosts have different numbers of VMs (PR [#10153](https://github.com/vatesfr/xen-orchestra/pull/10153)) - [Users] Add Users Table (PR [#10029](https://github.com/vatesfr/xen-orchestra/pull/10029)) - [Site] Add "New VM" and "Connect pool" actions to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047)) - [Site] Add "Connect pool" action to the site infrastructure tree (PR [#10047](https://github.com/vatesfr/xen-orchestra/pull/10047)) @@ -46,6 +51,7 @@ - [Tasks] Resolve objects in tasks names [Forum#100894](https://xcp-ng.org/forum/post/100894) (PR [#9830](https://github.com/vatesfr/xen-orchestra/pull/9830)) - [Traffic rules] Show only traffic rules of VMs. Don't include vm-snapshots or vm-templates. In the VM selector, disable VMs that don't have any VIF (PR [#9977](https://github.com/vatesfr/xen-orchestra/pull/9977)) - [OpenMetrics] Add an estimated per-VM power consumption metric (`xcp_vm_power_consumption_watts`), splitting each host's IPMI power across its running VMs proportionally to CPU load (PR [#10031](https://github.com/vatesfr/xen-orchestra/pull/10031)) +- [OpenMetrics] Add `content_type` to SR capacity metrics and the full `sr_uuid` to host disk metrics for easier Grafana correlation (PR [#10149](https://github.com/vatesfr/xen-orchestra/pull/10149)) - [XO server] expose more metrics when doing a memory dump (PR [#10041](https://github.com/vatesfr/xen-orchestra/pull/10041)) - [XO server] Add `aclRoleIds` property to the `group` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085)) - [XO server] Add `groupIds`, `userIds` and `privilegeIds` properties to the `acl-role` objects (PR [#10085](https://github.com/vatesfr/xen-orchestra/pull/10085)) @@ -54,6 +60,9 @@ ### Bug fixes - [XO6] Fix negative "other" value in backup repository dashboard (PR [#10044](https://github.com/vatesfr/xen-orchestra/pull/10044)) +- [XO6] Fix the VM's VDI tab, which always displays an empty list on initial load (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) +- [XO6] Fix the VM's VDI tab, which sometimes displays an error (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) +- [XO6] Reduce the number of HTTP requests when navigating between pages (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) - [Host] Wrap the Network name in the PIF side panel (PR [#10155](https://github.com/vatesfr/xen-orchestra/pull/10155)) - [Host/dashboard] Switch CPU and RAM panels order to match Pool dashboard layout (PR [#10059](https://github.com/vatesfr/xen-orchestra/pull/10059)) - [RPU/RPR] Temporarily disable VMs auto power on during the run: unexpected VM starts on rebooted hosts could break the remaining host evacuations (`HOST_NOT_ENOUGH_FREE_MEMORY`) (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104)) @@ -66,30 +75,38 @@ - [Backups] Fix missing transfer size (PR [#10106](https://github.com/vatesfr/xen-orchestra/pull/10106)) - [Backups] write the complete disk metadata at once to improve compatibility with immutable backup repository (PR [#10104](https://github.com/vatesfr/xen-orchestra/pull/10104)) - [Backup] Fix `unexpected number of entries in backup cache` warning not resolving automatically (PR [#10132](https://github.com/vatesfr/xen-orchestra/pull/10132)) +- [Backups] Fix qcow2 transfer without NBD (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) +- [Backups] Force a full backup if any suspect is detected on qcow2 without nbd (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) +- [Backups] Force a full replication if any suspect is detected on qcow2 without nbd (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) +- [Backups] Fix aggregated backup failing instead of falling back to a full backup (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) +- [Backups] Don't hide errors during transfers (PR [#10183](https://github.com/vatesfr/xen-orchestra/pull/10183)) - [Host] Successful evacuation signature fallbacks on older XAPI versions are no longer logged as warnings (PR [#10131](https://github.com/vatesfr/xen-orchestra/pull/10131)) - [XO5/About/Hub] Fix "Failed to fetch latest master commit" and the microk8s version list: the default `Content-Security-Policy` now allows the browser to reach the GitHub API (PR [#10162](https://github.com/vatesfr/xen-orchestra/pull/10162)) - [Qcow2 import] show a valid progress bar for qcow2 disk import from form , command line or V2V (PR [#10133](https://github.com/vatesfr/xen-orchestra/pull/10133)) +- [Smart reboot] Fix `suspendBlocked` error when no issue to suspend resident VMs (PR [#10180](https://github.com/vatesfr/xen-orchestra/pull/10180)) +- [Remotes/S3] Fix slow deletions on S3 providers rejecting our batch deletion request with a `MalformedXML` error (e.g. Ceph RadosGW) (PR [#10189](https://github.com/vatesfr/xen-orchestra/pull/10189)) ### Released packages -- @xen-orchestra/disk-transform 1.3.2 - vhd-lib 4.16.1 - xen-api 4.8.0 -- @vates/types 1.29.0 - @xen-orchestra/acl 1.5.0 -- @xen-orchestra/backup-archive 1.1.0 -- @xen-orchestra/xapi 8.10.0 -- @xen-orchestra/backups 0.73.8 - @xen-orchestra/disk-cli 2.2.0 -- @xen-orchestra/web-core 0.57.0 -- @xen-orchestra/proxy 0.31.3 -- @xen-orchestra/rest-api 0.36.0 -- @xen-orchestra/web 0.56.0 - xapi-explore-sr 0.4.7 -- xo-server 5.206.0 -- xo-server-openmetrics 1.8.0 - xo-server-perf-alert 1.1.1 -- xo-web 5.200.0 +- @xen-orchestra/fs 4.9.3 +- @xen-orchestra/disk-transform 1.3.3 +- @vates/types 1.30.0 +- @xen-orchestra/backup-archive 1.1.1 +- @xen-orchestra/xapi 8.10.1 +- @xen-orchestra/backups 0.73.9 +- @xen-orchestra/web-core 0.58.0 +- @xen-orchestra/proxy 0.31.4 +- @xen-orchestra/rest-api 0.37.0 +- @xen-orchestra/web 0.57.0 +- xo-server 5.207.0 +- xo-server-openmetrics 1.9.0 +- xo-web 5.201.0 ## **6.6.2** (2026-07-09) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index db42fc7d0c..28976f1ba1 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -11,28 +11,10 @@ > Users must be able to say: "Nice enhancement, I'm eager to test it" -- [XO6/Treeview] Fix hosts alignment in Treeview when hosts have different numbers of VMs (PR [#10153](https://github.com/vatesfr/xen-orchestra/pull/10153)) -- [REST API] Possibility of sending `shutdownPinnedVms` in the body of the `/pools/:id/actions/rolling_update` and `rolling_reboot` endpoints (PR [#10125](https://github.com/vatesfr/xen-orchestra/pull/10125)) -- [Rolling Pool Update/Reboot] New `shutdownPinnedVms` option: VMs that cannot be migrated because they use a host-bound device (PCI passthrough, vGPU, SR-IOV VIF) are cleanly shut down before their host reboots and started again on it afterwards, instead of aborting the whole run. When such VMs block the run, XO now lists them and asks for confirmation instead of failing with a raw `CANNOT_EVACUATE_HOST` error (PR [#10125](https://github.com/vatesfr/xen-orchestra/pull/10125)) -- [i18n] Update Czech, Dutch, German, Korean, Portuguese and Slovak translations (PR [#10033](https://github.com/vatesfr/xen-orchestra/pull/10033)) -- [XO6/copyAll button] Add copy all button for IP list and bond device (PR [#10081](https://github.com/vatesfr/xen-orchestra/pull/10081)) -- [OpenMetrics] Add `content_type` to SR capacity metrics and the full `sr_uuid` to host disk metrics for easier Grafana correlation (PR [#10149](https://github.com/vatesfr/xen-orchestra/pull/10149)) - ### Bug fixes > Users must be able to say: "I had this issue, happy to know it's fixed" -- [Backups] Fix qcow2 transfer without NBD (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) -- [Backups] Force a full backup if any suspect is detected on qcow2 without nbd (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) -- [Backups] Force a full replication if any suspect is detected on qcow2 without nbd (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) -- [Backups] Fix aggregated backup failing instead of falling back to a full backup (PR [#10164](https://github.com/vatesfr/xen-orchestra/pull/10164)) -- [XO6] Fix the VM's VDI tab, which always displays an empty list on initial load (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) -- [XO6] Fix the VM's VDI tab, which sometimes displays an error (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) -- [XO6] Reduce the number of HTTP requests when navigating between pages (PR [#10156](https://github.com/vatesfr/xen-orchestra/pull/10156)) -- [Backups] Don't hide errors during transfers (PR [#10183](https://github.com/vatesfr/xen-orchestra/pull/10183)) -- [Smart reboot] Fix `suspendBlocked` error when no issue to suspend resident VMs (PR [#10180](https://github.com/vatesfr/xen-orchestra/pull/10180)) -- [Remotes/S3] Fix slow deletions on S3 providers rejecting our batch deletion request with a `MalformedXML` error (e.g. Ceph RadosGW) (PR [#10189](https://github.com/vatesfr/xen-orchestra/pull/10189)) - ### Packages to release > When modifying a package, add it here with its release type. @@ -49,17 +31,4 @@ -- @vates/types minor -- @xen-orchestra/backup-archive patch -- @xen-orchestra/backups patch -- @xen-orchestra/disk-transform patch -- @xen-orchestra/fs patch -- @xen-orchestra/rest-api minor -- @xen-orchestra/web minor -- @xen-orchestra/web-core minor -- @xen-orchestra/xapi patch -- xo-server minor -- xo-server-openmetrics minor -- xo-web minor - diff --git a/packages/vhd-cli/package.json b/packages/vhd-cli/package.json index 930479958c..dd0ab64552 100644 --- a/packages/vhd-cli/package.json +++ b/packages/vhd-cli/package.json @@ -24,7 +24,7 @@ "node": ">=10" }, "dependencies": { - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/fs": "^4.9.3", "cli-progress": "^3.1.0", "exec-promise": "^0.7.0", "getopts": "^2.2.3", diff --git a/packages/vhd-lib/package.json b/packages/vhd-lib/package.json index 5d3cd5684b..4ce85aeca1 100644 --- a/packages/vhd-lib/package.json +++ b/packages/vhd-lib/package.json @@ -20,7 +20,7 @@ "@vates/read-chunk": "^1.2.1", "@vates/stream-reader": "^0.1.0", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "async-iterator-to-stream": "^1.0.2", "decorator-synchronized": "^0.6.0", @@ -33,8 +33,8 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@xen-orchestra/disk-transform": "^1.3.2", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/disk-transform": "^1.3.3", + "@xen-orchestra/fs": "^4.9.3", "execa": "^5.0.0", "get-stream": "^6.0.0", "rimraf": "^6.0.1", diff --git a/packages/xo-server-ipmi-sensors/package.json b/packages/xo-server-ipmi-sensors/package.json index d5c80712db..cd9fe0cf77 100644 --- a/packages/xo-server-ipmi-sensors/package.json +++ b/packages/xo-server-ipmi-sensors/package.json @@ -28,7 +28,7 @@ }, "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@xen-orchestra/log": "^0.7.1" }, "devDependencies": { diff --git a/packages/xo-server-openmetrics/package.json b/packages/xo-server-openmetrics/package.json index a5b536958b..0eef2044fa 100644 --- a/packages/xo-server-openmetrics/package.json +++ b/packages/xo-server-openmetrics/package.json @@ -1,6 +1,6 @@ { "name": "xo-server-openmetrics", - "version": "1.8.0", + "version": "1.9.0", "license": "AGPL-3.0-or-later", "description": "XO Server plugin exposing metrics in OpenMetrics/Prometheus format", "type": "module", @@ -30,7 +30,7 @@ }, "dependencies": { "@vates/async-each": "^1.0.3", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@xen-orchestra/log": "^0.7.2", "json5": "^2.2.3", "undici": "^6.2.1" diff --git a/packages/xo-server-sdn-controller/package.json b/packages/xo-server-sdn-controller/package.json index deefbb410c..cc7fc217d8 100644 --- a/packages/xo-server-sdn-controller/package.json +++ b/packages/xo-server-sdn-controller/package.json @@ -30,7 +30,7 @@ "dependencies": { "@vates/async-each": "^1.0.3", "@vates/coalesce-calls": "^0.1.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@xen-orchestra/log": "^0.7.2", "@xen-orchestra/openflow": "^0.1.4", "ipaddr.js": "^2.0.1", diff --git a/packages/xo-server/package.json b/packages/xo-server/package.json index ee249a0d6b..134acde8c0 100644 --- a/packages/xo-server/package.json +++ b/packages/xo-server/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "xo-server", - "version": "5.206.0", + "version": "5.207.0", "license": "AGPL-3.0-or-later", "description": "Server part of Xen-Orchestra", "keywords": [ @@ -46,25 +46,25 @@ "@vates/predicates": "^1.1.0", "@vates/read-chunk": "^1.2.1", "@vates/task": "^0.7.0", - "@vates/types": "^1.29.0", + "@vates/types": "^1.30.0", "@vates/xml": "^2.0.0", "@vates/xml-rpc": "^1.0.0", "@xen-orchestra/async-map": "^0.1.3", - "@xen-orchestra/backups": "^0.73.8", + "@xen-orchestra/backups": "^0.73.9", "@xen-orchestra/cron": "^1.0.7", "@xen-orchestra/defined": "^0.0.2", - "@xen-orchestra/disk-transform": "^1.3.2", + "@xen-orchestra/disk-transform": "^1.3.3", "@xen-orchestra/emit-async": "^1.0.0", - "@xen-orchestra/fs": "^4.9.2", + "@xen-orchestra/fs": "^4.9.3", "@xen-orchestra/log": "^0.7.2", "@xen-orchestra/mixin": "^0.2.1", "@xen-orchestra/mixins": "^0.20.1", "@xen-orchestra/qcow2": "^1.3.1", - "@xen-orchestra/rest-api": "^0.36.0", + "@xen-orchestra/rest-api": "^0.37.0", "@xen-orchestra/self-signed": "^0.2.1", "@xen-orchestra/template": "^0.1.1", "@xen-orchestra/vmware-explorer": "^0.14.0", - "@xen-orchestra/xapi": "^8.10.0", + "@xen-orchestra/xapi": "^8.10.1", "@xen-orchestra/xva": "^1.0.3", "ajv": "^8.0.3", "app-conf": "^3.0.0", diff --git a/packages/xo-web/package.json b/packages/xo-web/package.json index 721c0797cb..976d17a94b 100644 --- a/packages/xo-web/package.json +++ b/packages/xo-web/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "xo-web", - "version": "5.200.0", + "version": "5.201.0", "license": "AGPL-3.0-or-later", "description": "Web interface client for Xen-Orchestra", "keywords": [