mirror of
https://github.com/vatesfr/xen-orchestra.git
synced 2026-10-12 02:24:05 +00:00
This branch is a reliability overhaul of the ESXi/vSphere source side of V2V, plus a scope reduction of the package. The SOAP plumbing is rewritten:
VimClient wraps @vates/node-vsphere-soap in a promise API with one emitter per call (no more cross-talk between concurrent calls, no listener leak) and a pTimeout;
vim25 faults are now parsed (_parseFault.mjs) so callers get a real fault type instead of task execution failed;
the library no longer throws from async callbacks (which killed xo-server) and its beforeExit logout hook is per-client instead of removeAllListeners.
Request specs are built in explicit schema order (soap/specs.mjs) with xsi:type, and property values are normalized (soap/normalize.mjs) so search() and the new #retrieveProperty share one shape.
search() now paginates, cancels the retrieval and destroys the container view.
Datastore HTTP downloads get session-cookie reuse, retry with jittered backoff, a headers-only timeout, and range-honouring validation.
Task waiting polls with backoff and per-operation timeouts (6 h for snapshot consolidation).
nbdkit servers are memoized by a key that includes the export options, the readiness wait races the process death instead of sleeping 2 s
the password file is 0600 and unlinked
the thumbprint is read over TLS in-process instead of two openssl spawns.
The old VHD-over-datastore readers (VhdEsxi*, Datastore*, openDeltaVmdkAsVhd) are deleted, hence the majo, rleaving the vddk/NBD path with a COWD grain-directory parser as data-map fallback.
~1.7k lines of unit tests are added.
38 lines
982 B
JSON
38 lines
982 B
JSON
{
|
|
"name": "@vates/node-vsphere-soap",
|
|
"version": "2.1.3",
|
|
"description": "interface to vSphere SOAP/WSDL from node for interfacing with vCenter or ESXi, forked from node-vsphere-soap",
|
|
"main": "lib/client.mjs",
|
|
"author": "reedog117",
|
|
"repository": {
|
|
"directory": "@vates/node-vsphere-soap",
|
|
"type": "git",
|
|
"url": "https://github.com/vatesfr/xen-orchestra.git"
|
|
},
|
|
"bugs": "https://github.com/vatesfr/xen-orchestra/issues",
|
|
"dependencies": {
|
|
"@xen-orchestra/log": "^0.7.2",
|
|
"axios": "^1.15.0",
|
|
"soap": "^1.0.0",
|
|
"soap-cookie": "^0.10.1"
|
|
},
|
|
"keywords": [
|
|
"vsphere",
|
|
"vcenter",
|
|
"api",
|
|
"soap",
|
|
"wsdl"
|
|
],
|
|
"preferGlobal": false,
|
|
"license": "MIT",
|
|
"private": false,
|
|
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@vates/node-vsphere-soap",
|
|
"engines": {
|
|
"node": ">=14"
|
|
},
|
|
"scripts": {
|
|
"postversion": "npm publish --access public",
|
|
"test": "node --test lib/*.test.mjs"
|
|
}
|
|
}
|