f8d3cbdd59
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API contracts, docs, client examples, and the unit/integration/compatibility test suite for local client and tooling labs without a real vCenter.
3.3 KiB
3.3 KiB
Language / Язык: English | Русский
SOAP / VIM
Minimal VIM SDK for pyvmomi / govmomi-style clients (Terraform's
hashicorp/vsphere provider, Pulumi, govc):
app/vsphere/soap/router.py,
property_collector.py,
pbm.py.
Endpoint
All operations POST a SOAP envelope to /sdk (also /sdk/). Auxiliary
routes:
| Method | Path | Notes |
|---|---|---|
| GET | /sdk/vimService.wsdl (alias /sdk/vim.wsdl) |
WSDL stub advertising the implemented operation list |
| GET | /sdk/about.do (alias /about.do) |
Human-readable "VMware vCenter Server" page |
| POST | /sdk/vim25/{version}/SessionManager/SessionManager/Login |
JSON-body login variant used by some SDKs |
Implemented operations
RetrieveServiceContent,Login,LogoutRetrieveProperties,RetrievePropertiesEx, ContinueRetrievePropertiesEx (pagination tokens;<objects>plural),CreateFilter,WaitForUpdatesEx(version tokens; empty polls),CreateContainerView,DestroyPropertyFilterFindByInventoryPath(paths omit the rootDatacentersfolder, matching govmomi conventions),FindByUuid,FindByDnsName,FindByIp,FindChildCreateVM_Task,CreateChildVM_Task,CreateFolder,PowerOnVM_Task,PowerOffVM_Task,CloneVM_Task,CreateSnapshot_Task,Rename_Task,ReconfigVM_Task,RelocateVM_Task,Destroy_Task,CustomizeVM_Task,CancelTask,CurrentTime- Guest file ops:
InitiateFileTransferToGuest,InitiateFileTransferFromGuest,ListFilesInGuest,DeleteFileInGuest,MakeDirectoryInGuest - Import/upload:
ImportVApp_Task,CreateImportSpec,HttpNfcLeaseComplete,HttpNfcLeaseProgress,HttpNfcLeaseAbort,HttpNfcLeaseGetManifest(paired with the REST/nfc/{lease}endpoints — see Content library) QueryConfigOption,QueryConfigOptionEx,QueryConfigOptionDescriptor,QueryConfigTarget- PBM (
/pbm) stub for storage-policy-aware clients
Highlights
Loginissues the same underlying session as REST (vmware-api-session-idcookie/header, plus avmware_soap_sessioncookie) — see Session.VIM_VERSIONis pinned to8.0.2with ≤3 dotted components, sincehashicorp/vsphereparsesAboutInfo.versionstrictly.- Type-strict MOR lookup rejects a
VirtualApp:resgroup-*reference from resolving as a plainResourcePool— matters for the TerraformCreateVM_Taskresource path. - Task-returning operations create a real row in
vsphere_tasks(shared with REST — see Tasks), includinginfo.resultMoRefs on create/clone. - PropertyCollector filters, ContainerViews, and WaitForUpdatesEx version
tokens persist in
vsphere_pc_state(migration013) across process restarts within a lab. Folder.childTypeis emitted asArrayOfString; string properties carryxsi:type="xsd:string"so govmomi's decoder accepts them;Datastore.hostisArrayOfDatastoreHostMount;Cluster/HostexposeenvironmentBrowser.
See Clients for pyvmomi/govmomi/Terraform/Pulumi connection examples and examples/python/vsphere_soap_smoke.py for a minimal raw-XML smoke.