Commit Graph

3173 Commits

Author SHA1 Message Date
Mathieu
ebbd9e42e2 fix(xo-server,rest-api): apply the backup guard to rolling pool operations started over REST (#10313)
* fix(xo-server,rest-api): apply the backup guard to rolling pool operations started over REST

The JSON-RPC methods pool.rollingUpdate and pool.rollingReboot refused to run
while a backup job targets the pool, but the REST actions
POST /pools/:id/actions/rolling_update and rolling_reboot called the
orchestrators directly and skipped that check.

The guard now lives in XenServers.rollingPoolUpdate and Pools.rollingPoolReboot,
so every entry point (JSON-RPC, REST, scheduled jobs) applies the same rule.
The bypass moves into backupGuard(poolId, { bypassBackupCheck, operation }),
which logs a single warning with the operation and the user, and the other
callers (host.restart, host.restartAgent, host.stop, sr.reclaimSpace and their
REST counterparts) use it instead of their own if/else and log.

The REST rolling actions accept bypassBackupCheck in their body and record the
body in the task params, like the host actions do.

* fix(xo-server,rest-api): pass the targeted object ID to the backup guard
2026-09-11 16:49:14 +02:00
Grandalf
df7b62654c feat(rest-api): migrate functions to registerRestRoutes (#9895) 2026-09-11 15:06:16 +02:00
Pierre Brunet
adecd7306e feat(backups): replace vhd-lib calls with abstract methods (#10124)
* feat: add setChainToParent in order to point header/footer to a new parent

* feat: add getCompressionType and use it in isMergeableParent in RemoteAdapter

* feat: use openDisposableDisk instead of openVhd

* fixup! feat: add setChainToParent in order to point header/footer to a new parent

* feat: add tests for setChainToParent

* fix: from review

* feat: make isMergeableParent contained in remoteDisk

* fix: remove chainToParent now useless

* feat: remove compressionType and isMergeableParent where unneeded

* feat: update test

* feat: handle compressionType in remoteAdapter and fs

* fix: use remoteHandler as config getter

* feat: remove useless isDirectory in remoteDisk

* fix: small change on mode option
2026-09-11 11:42:51 +02:00
Thomas Moraine
12d77efe17 docs(xo): fix broken links in the xo app (#10382)
Since the XO documentation structure was changed recently,
so did the URLs to each documentation pages.
This broke multiple links in the XO app,
which pointed to the XO doc.

This commit updates the links to the current URLs,
so that the link work as intended.

Signed-off-by: Thomas Moraine <thomas.moraine@vates.tech>
2026-09-11 07:46:42 +02:00
MathieuRA
280c05ac48 feat(rest-api/SSE): SSE support now XO objects changes 2026-09-10 16:41:55 +02:00
MathieuRA
d13fad62bd fix(rest-api): use previousObj instead of object for message SSE events 2026-09-10 16:41:55 +02:00
MathieuRA
e0fb16a421 feat(xo-server): server status become a persistant property 2026-09-10 16:41:55 +02:00
Florent BEAUCHAMP
db8fe8d472 feat(rest-api): export vdi and vdi snapshot content as qcow2 + vdi export fixes (#10350) 2026-09-10 14:38:47 +02:00
Grandalf
2aa3bd602e feat/backups/journal log (#10256)
* fix fbeauchamp comments

* feat(backups): add a journal

* fix cache writing on immutable remotes

* add typing

* feat(backups): shard the journal per UTC day, one entry per time

`readBackupJournal()` listed the whole `xo-backup-log/` and filtered the names
client-side, so the cost of a read grew with the whole history of the repository.

Store the entries as `/xo-backup-log/<YYYYMMDD>/<HHMMSS.mmmZ>-<rand>-<event>-<vmUuid>-<file>`
and list only the days which can hold entries newer than `since`: a read now costs one
listing of the journal root plus one listing per day it is missing — normally a single
day, at most two, since a reader rebuilds from scratch when its watermark crosses a UTC
day. Purging old entries also becomes a directory removal instead of a per-object sweep.

The day is not repeated in the entry name, so `since` bounds the time of its own day
only; every later day is taken whole.

* fix pipeline

---------

Co-authored-by: All-Ki <killian.allegrain@vates.tech>
2026-09-10 14:26:41 +02:00
Florent BEAUCHAMP
b32fd39c19 fix(qcow2): improve qcow2 stream index computation (used for backup/replication and export) (#10333)
* feat(qcow2): improve generation speed

the idea is to build a bit index of the clusters to store them efficiently instead
of going through all the possible blocks 3 times at different phases of the generation.
The memory consumption is 2MB/TB of disk

this index generation can still be quite long , so we use setImmediate from
time to time to le the rest of the nodejs event loop run

also make this index phase abortable
2026-09-10 13:49:32 +02:00
OlivierFL
5cf93b3c3c feat(web-core/tab-item): update UiTabItem component to v7 (#10338) 2026-09-09 12:39:43 +02:00
OlivierFL
e428304aea feat(xo6/web-core): implement tests on frontend (#10012) 2026-09-09 11:48:41 +02:00
Sandrine Barrucand
699d78b1ca fix(web-stack): use correct color for no-data stars (#10327) 2026-09-09 10:43:09 +02:00
Grandalf
067aba2bfc feat(backups): add a cache guard and migrate required to backup-archive (#10243)
[XO-2789]
* Extracts the backup migration logic into backup-archive and adds a cache guard for future performance improvements
* don't generate or read cache file on immutable backup repository
* clean cache file on immutable backup repository
2026-09-08 11:11:47 +02:00
Sandrine Barrucand
bbeb67092e fix(web-stack): use correct color for 404 (#10325) 2026-09-08 10:15:14 +02:00
Alina D
a974448339 feat(xo6): add the VM name to actions that open a modal (#10310) 2026-09-08 10:11:09 +02:00
amouillard-vates
069bb79d4a feat(xo6): sr dedicated page hosts tab (#10140)
* Update CHANGELOG.unreleased.md

* Hosts tab

* Hosts side panel

* Update CHANGELOG.unreleased.md

* Route + fix import

* The dev routes

* Simplify SrHeader

* Refactoring

* Fix type

* locale

* Simplify pbd connection status

* Refactor srs get

* New import rules

* Fixes

* Singular locale

* Refactor + sr status

* Push generated routes

* Switch order

* PR Fixes

* Comment fixes

* Changelog packages

* Cleanup changelog

* Keep unreleased
2026-09-08 10:04:07 +02:00
Sandrine Barrucand
ead446fcdb fix(web-stack): use correct color for console offline SVG sparks (#10309) 2026-09-07 17:40:44 +02:00
Sandrine Barrucand
03865bc5fe feat(xo6/host): reconfigure the management interface to another PIF (#10110) 2026-09-04 14:20:23 +02:00
Elise-F
35e8c513d8 feat(lite): add action reboot on host (#10250)
* feat(host): add action reboot on host

* update changelog file

* fix missing ts extension and clean code

* add header state

* feedback one
2026-09-04 14:20:02 +02:00
Florent BEAUCHAMP
00943b92e7 docs(xo-server): rest api guidelines (#10071)
improve the xo guidelines
2026-09-04 13:36:45 +02:00
Bastien Nollet
9f72a1f900 feat: technical release (#10358)
* feat(@xen-orchestra/proxy): 0.31.10

* feat(xo-server): 5.208.3

* chore(CHANGELOG): update next
2026-09-04 11:20:47 +02:00
Florent BEAUCHAMP
003cc6f9cc fix(proxy): fetch failed (#10346)
* fix(backups): fetch failed

disable compresion between xoa on proxy on xoa side

* fix(xo-proxy): disable compression on the proxy

it was disable with hrp, replaced by #10038 since it was never
sending accept-encoding header

compression can be put back later on a route by route basis after
careful checks ( for example : file restore, backup listing )
2026-09-03 12:56:36 +02:00
Bastien Nollet
7a18762da4 feat: technical release (#10334)
* feat(@xen-orchestra/xapi): 8.10.5

* feat(@xen-orchestra/backups): 0.74.2

* feat(@xen-orchestra/proxy): 0.31.9

* feat(xo-server): 5.208.2

* chore(CHANGELOG): update next
2026-09-01 16:26:11 +02:00
Florent BEAUCHAMP
1004edb51f fix(backups): failing replication of qcow2 disks (#10319)
* fix(backups):  task label NBT->NBD

* fix: still force a list block only call for NBD + stream scenario , that was failing to transfer disk on fallback
2026-09-01 15:28:47 +02:00
Marie Garde
a67dd73304 feat(xo6/traffic rule): edit a traffic rule (#10056) 2026-09-01 11:22:03 +02:00
Mathieu
a2ce3bbc48 fix(@xen-orchestra/qa-test): downgrade engine to 22 to avoid build issue (#10323)
* fix(@xen-orchestra/qa-test): downgrade engine to 22 to avoid build issue

* fix >=
2026-09-01 09:14:56 +02:00
Bastien Nollet
3034955277 feat(lite): 0.25.0 (#10329) 2026-08-31 18:37:24 +02:00
Bastien Nollet
7e022940c3 feat: technical release (#10326)
* feat(@vates/types): 2.0.1

* feat(@xen-orchestra/web): 0.60.1

* feat(xo-server): 5.208.1

* chore(CHANGELOG): update next
2026-08-31 15:55:42 +02:00
Bastien Nollet
b33894c067 feat : technical release (#10322)
* feat(@xen-orchestra/web): 0.60.0

* feat(xo-server): 5.208.0

* feat(xo-server-openmetrics): 1.9.2

* feat(xo-web): 5.203.0

* chore(CHANGELOG): update next
2026-08-31 15:15:41 +02:00
Elise-F
d2d2d57c81 feat(lite): add action create internal network (#10235)
* feat(lite): add create network and network bonded actions

* remove vlan required and info message

* feedback number one

* feat(lite): add create network and network bonded actions

* feat(lite): add action create internal network

* update changelog file

* fix rebase

* feedback number one

* remove as const in cancelRoute

* feedback number two
2026-08-31 10:51:27 +02:00
Mathieu
c7bf0c59ef fix(@xen-orchestra/qa-test): fix node version (#10320) 2026-08-31 10:48:19 +02:00
Marie Garde
62013d4e79 feat(xo6): add detach host button (#10179)
* feat(xo6): rebase detach

* add redirect when detach ok

* fix post rebase

* remove dev route

* returns from MR

* add check master host

* use linked translation

* rebase ok
2026-08-31 09:03:33 +02:00
Bastien Nollet
6a4415ea1d feat: technical release (#10318)
* feat(@vates/nbd-client): 3.5.1

* feat(@vates/types): 2.0.0

* feat(@xen-orchestra/acl): 1.6.1

* feat(@xen-orchestra/backup-archive): 1.1.2

* feat(@xen-orchestra/xapi): 8.10.4

* feat(@xen-orchestra/backups): 0.74.1

* feat(@xen-orchestra/web-core): 0.60.0

* feat(@xen-orchestra/mcp): 1.4.2

* feat(@xen-orchestra/proxy): 0.31.8

* feat(@xen-orchestra/rest-api): 0.39.0

* feat(@xen-orchestra/web): 0.59.0

* feat(xo-server): 5.207.4

* feat(xo-server-ipmi-sensors): 2.1.1

* feat(xo-server-openmetrics): 1.9.1

* feat(xo-server-sdn-controller): 1.5.0

* chore(CHANGELOG): update next
2026-08-28 14:56:02 +02:00
Florent BEAUCHAMP
14e4c7d62c fix(backups): timeout NBD transfer omnibus fixes (#10306)
* fix(backups): timeout was not used correctly for NBD transfers
* fix(nbd-client): evict a dead client in multi instead
actual code was retrying 5 times, each time with a 60s timeout
multi also have its own retry on conneciton
since the client used is determnistic for a block, any stalled client
will be hammerred for a lot of time before giving up

this PR evict a nbd client that is failing to read a block (with its
retry logic)

* fix(nbd-client/multi): better spread read accross client
the actual code derivate the clientId from the block index
we have no information on the block distribution, only hopes that
it's random enough
this PR introduce a mechanism to use a round robin to select
the next client

* fix: correct fall back to full with /without nbd on qcow2
2026-08-28 10:57:17 +02:00
Marie Garde
d541af2c41 feat(xo6): add restart toolstack host button (#10178)
* feat(xo6): rebase from master

* add check restart toolstack on buttons

* add tooltip message

* Fix for PR

* remove loader

* add chengelog

* remove route map

* return form PR
2026-08-28 10:37:38 +02:00
Sandrine Barrucand
cdc4ddb652 feat(xo6/backups): add header title (#10303) 2026-08-27 11:49:53 +02:00
Joris K
2ebf18a636 feat(xo-lite): add vm tree actions and loader (#10304) 2026-08-27 10:56:34 +02:00
Grandalf
dfb4c925ec fix(sdn-controller): delete saved port on traffic rule patch (#10307) 2026-08-27 10:17:20 +02:00
Enée DI IORIO
c0d92f3061 feat(web-core): upgrade UiCheckbox component to v8 (#9777) 2026-08-27 10:12:31 +02:00
vates-bot
642dce30ef feat(web-stack/i18n): update Xen Orchestra 6 (#10181) 2026-08-27 10:11:02 +02:00
Thierry Goettelmann
970eca135e fix(@vates/types,@xen-orchestra/rest-api): remove ACL type parameters from XoRecord (#10308)
Introduced by 63d4334837
2026-08-26 18:12:53 +02:00
Bastien Nollet
9cdaf6bb41 feat: technical release (#10305)
* feat(@xen-orchestra/async-map): 0.1.4

* feat(xo-common): 0.11.0

* feat(xen-api): 4.9.0

* feat(@vates/types): 1.30.2

* feat(@xen-orchestra/acl): 1.6.0

* feat(@xen-orchestra/xapi): 8.10.3

* feat(@xen-orchestra/backups): 0.74.0

* feat(@xen-orchestra/backups-cli): 1.1.14

* feat(@xen-orchestra/disk-cli): 2.2.1

* feat(@xen-orchestra/immutable-backups): 3.0.5

* feat(@xen-orchestra/web-core): 0.59.0

* feat(@xen-orchestra/mixins): 0.20.2

* feat(@xen-orchestra/proxy): 0.31.7

* feat(@xen-orchestra/proxy-cli): 0.3.3

* feat(@xen-orchestra/qa-test): 1.2.0

* feat(@xen-orchestra/rest-api): 0.38.0

* feat(@xen-orchestra/upload-ova): 0.1.9

* feat(@xen-orchestra/web): 0.58.0

* feat(xo-acl-resolver): 0.5.4

* feat(xo-cli): 0.32.4

* feat(xo-server): 5.207.3

* feat(xo-server-audit): 0.15.2

* feat(xo-server-ipmi-sensors): 2.1.0

* feat(xo-server-netbox): 1.13.2

* feat(xo-server-sdn-controller): 1.4.1

* feat(xo-web): 5.202.0

* chore(CHANGELOG): update next
2026-08-25 16:19:35 +02:00
Florent BEAUCHAMP
9b4e1aee3e fix(xo-server): task controller leaking memory (#10237) 2026-08-25 15:42:12 +02:00
Thierry Goettelmann
9cdd8e9d45 chore(web-core,web,lite): enforce .ts extension in imports (#10299) 2026-08-25 11:01:00 +02:00
Sandrine Barrucand
14e5352a40 feat(xo6/vm): add guest tools status (#10077) 2026-08-25 10:40:50 +02:00
Marie Garde
d955ffc4d1 feat(xo6): add smart reboot host button (#10177)
* feat(xo6): reset smart reboot branch ok

* Last returns

* Remove route map

* rebase ok

* add check onConfirm smart reboot
2026-08-25 09:56:16 +02:00
spacotte-vates
f812eaaeb6 feat(backup): implement synchronized snapshot option back (#10136)
Adds a synchronizedSnapshot backup setting. When enabled, all of a job's VM snapshots are taken up front in a batch before any transfer begins, and each VM's backup then reuses its pre-taken snapshot instead of snapshotting again.

Settings:
synchronizedSnapshot:

    false (default)
    true (synchronize every VM in the job)
    <tag> (synchronize only VMs carrying that tag, others are backed up normally).

snapshotConcurrency: max concurrent snapshots during the batch phase (default 2).

A batch member that fails to open is silently dropped from synchronization and backed up normally.

Unit tested where applicable and e2e tests added in qa-test.

Checkbox added in xo5 backup jobs to synchronize snapshots, tags not supported yet.
2026-08-24 17:58:03 +02:00
amouillard-vates
814bc96a8b feat(xo6): sr dedicated page general tab (#10100)
* feat(xo6): sr dedicated page general tab

* Remove dev routes

* Update CHANGELOG.unreleased.md

* Rename sr usage warning

* Rename vdi allocated space warning

* Remove useless variable

* Remove useless destructuring

* Remove useless destructuring

* Use UiInfo component and normalize margins

* Change variable name

* Add pool/host breadcrumb options

* Normalize fromContext with vdi page

* SR space unwritable alert

* Side panel space card info message

* Usage warning color

* Fix PR comments

* Add sr uuid resolver

* Fix CI

* Update getters name

* Full width UiInfo

* Consistent srUsagePercentage check

* Remove superfluous destructuration

* Reuse existing SR_SCOPE_TYPE

* Remove dev routes

* CSS nesting

* Fix PR comments

* Dev routes + UiPanelCard

* Move getSrPageLocation
2026-08-24 11:13:13 +02:00
Alina D
9ef53890b8 feat(xo-lite): add vdi page (#10269) 2026-08-21 17:31:45 +02:00