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.
This commit is contained in:
2026-07-18 04:42:11 +03:00
commit f8d3cbdd59
422 changed files with 361335 additions and 0 deletions
+167
View File
@@ -0,0 +1,167 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 6,
"series": "vSphere 7.0",
"version": "7.0.0",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 31,
"methods": [
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
+397
View File
@@ -0,0 +1,397 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 7,
"series": "vSphere 7.0 U3",
"version": "7.0.3",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 77,
"methods": [
{
"verb": "DELETE",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/cluster/{cluster}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/datacenter/{datacenter}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/resource-pool/{resource_pool}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks/{task}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder/{folder}/children",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/boot",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag-association",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/host/{host}/maintenance",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/clone",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/relocate",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
+527
View File
@@ -0,0 +1,527 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 8,
"series": "vSphere 8.0",
"version": "8.0.0",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 103,
"methods": [
{
"verb": "DELETE",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/authorization/permissions/{permission_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/cluster/{cluster}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/datacenter/{datacenter}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/resource-pool/{resource_pool}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/health/system",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/timesync",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks/{task}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/content/library",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/content/library/item",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vapi/metadata/authentication/component",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vapi/metadata/metamodel/service",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/activity-history",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/authorization/permissions",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/authorization/roles",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder/{folder}/children",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}/storage/storage-device",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/identity/providers",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network/dvs",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/privilege",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/storage/policies",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/storage/policies/{policy}/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/boot",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag-association",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/content/library/item",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/content/local-library",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/authorization/permissions",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/host/{host}/maintenance",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/network/dvpg",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/network/dvs",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/ovf/library-item/{item_id}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/clone",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/console/tickets",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/customization",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/relocate",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
File diff suppressed because it is too large Load Diff
+9
View File
@@ -0,0 +1,9 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# vSphere stub contracts
Versioned JSON matrices generated from `app/vsphere/contracts/matrix.py`.
Hot-swap (`POST /ui/api/contract/apply?major=N`) switches the active **catalog**
major for Web UI / evidence only; runtime still serves the full registered
surface (no HTTP 501 from version floor). Regenerate with
`make vsphere-bundles`.
+9
View File
@@ -0,0 +1,9 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# vSphere stub-контракты
Версионированные JSON-матрицы, сгенерированные из `app/vsphere/contracts/matrix.py`.
Hot-swap (`POST /ui/api/contract/apply?major=N`) переключает активный **catalog**
major только для Web UI / evidence; runtime по-прежнему обслуживает полную
зарегистрированную поверхность (без HTTP 501 из-за version floor).
Перегенерация: `make vsphere-bundles`.
File diff suppressed because it is too large Load Diff