fix(xo-server): ova export with files bigger than 8.2GB (#7047)

Following 15f69a1

Updating tar-stream to latest version fixes support of files bigger than 8.2GB
This commit is contained in:
Florent BEAUCHAMP 2023-09-20 17:17:45 +02:00 committed by GitHub
parent c714bc3518
commit 90e0f26845
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 3 deletions

View File

@ -16,6 +16,7 @@
- [Backup/Restore] Fix `Cannot read properties of undefined (reading 'id')` error when restoring via an XO Proxy (PR [#7026](https://github.com/vatesfr/xen-orchestra/pull/7026))
- [Google/GitHub Auth] Fix `Internal Server Error` (xo-server: `Cannot read properties of undefined (reading 'id')`) when logging in with Google or GitHub [Forum#7729](https://xcp-ng.org/forum/topic/7729) (PRs [#7031](https://github.com/vatesfr/xen-orchestra/pull/7031) [#7032](https://github.com/vatesfr/xen-orchestra/pull/7032))
- [Jobs] Fix schedules not being displayed on first load [#6968](https://github.com/vatesfr/xen-orchestra/issues/6968) (PR [#7034](https://github.com/vatesfr/xen-orchestra/pull/7034))
- [OVA Export] Fix support of disks with more than 8.2GiB of content (PR [#7047](https://github.com/vatesfr/xen-orchestra/pull/7047))
### Packages to release

View File

@ -123,7 +123,7 @@
"stoppable": "^1.0.5",
"subleveldown": "^6.0.1",
"syslog-client": "^1.1.1",
"tar-stream": "^2.0.1",
"tar-stream": "^3.1.6",
"tmp": "^0.2.1",
"unzipper": "^0.10.5",
"uuid": "^9.0.0",

View File

@ -22,7 +22,7 @@ import { decorateWith } from '@vates/decorate-with'
import { defer as deferrable } from 'golike-defer'
import { limitConcurrency } from 'limit-concurrency-decorator'
import { parseDuration } from '@vates/parse-duration'
import { PassThrough } from 'stream'
import { PassThrough, pipeline } from 'stream'
import { forbiddenOperation, operationFailed } from 'xo-common/api-errors.js'
import { extractOpaqueRef, parseDateTime, Xapi as XapiBase } from '@xen-orchestra/xapi'
import { Ref } from 'xen-api'
@ -743,9 +743,11 @@ export default class Xapi extends XapiBase {
stream.resume()
return
}
const nodeStream = new PassThrough()
pipeline(stream, nodeStream, () => {})
const table = tables[entry.name]
const vhdStream = await vmdkToVhd(
stream,
nodeStream, // tar-stream stream are not node stream
table.grainLogicalAddressList,
table.grainFileOffsetList,
compression[entry.name] === 'gzip',