Reply to Message

View discussion in a popup

Replying to:
doskiran
Enthusiast
Enthusiast

vSphere Automation SDK works only with vCenter sessions.

Because there are no public APIs for ESXi VMODL2.

To achieve your task use pyVmomi.
> pyVmomi(SOAP based) allows you to manage VMware ESXi and vCenter using Python.

pyVmomi: https://github.com/vmware/pyvmomi

Note:
Mentioned perl SDK is also a SOAP-based( vSphere Web Services API) integration point for the vSphere Management SDK.

Sample program to list all VMs under ESXi/vCenter:

from pyVim.connect import SmartConnect
import ssl

s = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH)
s.verify_mode = ssl.CERT_NONE

si = SmartConnect(
    host="<vCenter or ESXi server>",
    user="root",
    pwd="<passw0rd>",
    port=443,
    sslContext=s,
)

content = si.RetrieveContent()
for child in content.rootFolder.childEntity:
    if hasattr(child, "vmFolder"):
        datacenter = child
        vmFolder = datacenter.vmFolder
        vmList = vmFolder.childEntity
        for vm in vmList:
            summary = vm.summary
            print("VM Name: ", summary.config.name)

 

 

 

View solution in original post

Reply
0 Kudos