Files
vmware-api-simulator/docs/ru/domains/soap.md
T
inecs f8d3cbdd59 Initial commit: VMware vSphere API simulator scaffold.
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.
2026-07-18 04:42:11 +03:00

4.0 KiB
Raw Blame History

Language / Язык: English | Русский

SOAP / VIM

Минимальный VIM SDK для клиентов в стиле pyvmomi / govmomi (провайдер Terraform hashicorp/vsphere, Pulumi, govc): app/vsphere/soap/router.py, property_collector.py, pbm.py.

Эндпоинт

Все операции POST'ят SOAP-конверт на /sdk (также /sdk/). Вспомогательные маршруты:

Метод Путь Заметки
GET /sdk/vimService.wsdl (alias /sdk/vim.wsdl) WSDL stub со списком реализованных операций
GET /sdk/about.do (alias /about.do) Человекочитаемая страница «VMware vCenter Server»
POST /sdk/vim25/{version}/SessionManager/SessionManager/Login Login-вариант с JSON-телом, используемый некоторыми SDK

Реализованные операции

  • RetrieveServiceContent, Login, Logout
  • RetrieveProperties, RetrievePropertiesEx, ContinueRetrievePropertiesEx (токены пагинации; plural <objects>), CreateFilter, WaitForUpdatesEx (version tokens; пустые polls), CreateContainerView, DestroyPropertyFilter
  • FindByInventoryPath (пути без корневой папки Datacenters, как в конвенциях govmomi), FindByUuid, FindByDnsName, FindByIp, FindChild
  • CreateVM_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 (в паре с REST /nfc/{lease} — см. Content library)
  • QueryConfigOption, QueryConfigOptionEx, QueryConfigOptionDescriptor, QueryConfigTarget
  • Stub PBM (/pbm) для клиентов, учитывающих storage policy

Основные моменты

  • Login выдаёт ту же underlying-сессию, что и REST (vmware-api-session-id cookie/header плюс cookie vmware_soap_session) — см. Session.
  • VIM_VERSION зафиксирован как 8.0.2 с ≤3 компонентами через точку, так как hashicorp/vsphere строго парсит AboutInfo.version.
  • Type-strict MOR lookup отклоняет ссылку VirtualApp:resgroup-*, резолвящуюся как plain ResourcePool — важно для Terraform resource path CreateVM_Task.
  • Операции, возвращающие задачу, создают реальную строку в vsphere_tasks (общую с REST — см. Tasks), включая MoRefs info.result при create/clone.
  • Filters PropertyCollector, ContainerViews и version tokens WaitForUpdatesEx живут в vsphere_pc_state (миграция 013) между перезапусками процесса в рамках лаборатории.
  • Folder.childType отдаётся как ArrayOfString; строковые свойства несут xsi:type="xsd:string", чтобы их принимал decoder govmomi; Datastore.hostArrayOfDatastoreHostMount; у Cluster/Host есть environmentBrowser.

Примеры подключений pyvmomi/govmomi/Terraform/Pulumi — Клиенты; минимальный raw-XML smoke — examples/python/vsphere_soap_smoke.py.