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.
4.0 KiB
4.0 KiB
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,LogoutRetrieveProperties,RetrievePropertiesEx, ContinueRetrievePropertiesEx (токены пагинации; plural<objects>),CreateFilter,WaitForUpdatesEx(version tokens; пустые polls),CreateContainerView,DestroyPropertyFilterFindByInventoryPath(пути без корневой папкиDatacenters, как в конвенциях govmomi),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(в паре с REST/nfc/{lease}— см. Content library) QueryConfigOption,QueryConfigOptionEx,QueryConfigOptionDescriptor,QueryConfigTarget- Stub PBM (
/pbm) для клиентов, учитывающих storage policy
Основные моменты
Loginвыдаёт ту же underlying-сессию, что и REST (vmware-api-session-idcookie/header плюс cookievmware_soap_session) — см. Session.VIM_VERSIONзафиксирован как8.0.2с ≤3 компонентами через точку, так какhashicorp/vsphereстрого парситAboutInfo.version.- Type-strict MOR lookup отклоняет ссылку
VirtualApp:resgroup-*, резолвящуюся как plainResourcePool— важно для Terraform resource pathCreateVM_Task. - Операции, возвращающие задачу, создают реальную строку в
vsphere_tasks(общую с REST — см. Tasks), включая MoRefsinfo.resultпри create/clone. - Filters PropertyCollector, ContainerViews и version tokens WaitForUpdatesEx
живут в
vsphere_pc_state(миграция013) между перезапусками процесса в рамках лаборатории. Folder.childTypeотдаётся какArrayOfString; строковые свойства несутxsi:type="xsd:string", чтобы их принимал decoder govmomi;Datastore.host—ArrayOfDatastoreHostMount; уCluster/HostестьenvironmentBrowser.
Примеры подключений pyvmomi/govmomi/Terraform/Pulumi — Клиенты; минимальный raw-XML smoke — examples/python/vsphere_soap_smoke.py.