Files
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

45 lines
1.3 KiB
Python

"""Optional pyvmomi SmartConnect smoke (skipped when package uninstalled)."""
from __future__ import annotations
import os
import pytest
pytest.importorskip("pyVim")
pytest.importorskip("pyVmomi")
from pyVim.connect import Disconnect, SmartConnect # type: ignore[import-untyped]
from pyVmomi import vim # type: ignore[import-untyped]
pytestmark = pytest.mark.compatibility
def test_pyvmomi_inventory_and_power() -> None:
host = os.getenv("VSPHERE_HOST", "simulator")
port = int(os.getenv("VSPHERE_PORT", "8080"))
try:
si = SmartConnect(
host=host,
user="administrator@vsphere.local",
pwd="VMware1!",
port=port,
disableSslCertValidation=True,
)
except Exception as error:
pytest.skip(f"SmartConnect failed: {error}")
try:
content = si.RetrieveContent()
assert content.about.name
container = content.viewManager.CreateContainerView(
content.rootFolder, [vim.VirtualMachine], True
)
vms = list(container.view)
assert len(vms) >= 5
target = next((vm for vm in vms if vm.name == "app-01"), vms[0])
if target.runtime.powerState != vim.VirtualMachinePowerState.poweredOn:
task = target.PowerOn()
assert task is not None
finally:
Disconnect(si)