up vote 2 down vote favorite
share [g+] share [fb]

I'd like to automatically obtain a list or array of the VMs (mac address/name/resource pool) currently created on a vSphere server and use it in a python app. Can someone please suggest a good approach or solution to do this? I'm rather new to the vSphere platform. Thanks.

link|improve this question

feedback

3 Answers

up vote 5 down vote accepted

You should probably look at VMWare VIX API:

http://www.vmware.com/support/developer/vix-api/

Unfortunately it doesn't have python support. I don't know if it would be possible to make python use the C support? You could use perl or Powershell

If it has to be python then there is pyvix:

http://sourceforge.net/projects/pyvix/

I've never used it and don't know if it works.

link|improve this answer
+1 for introducing me to pyvix – Jed Daniels Jun 8 '10 at 18:41
feedback

I've recently released pysphere: http://code.google.com/p/pysphere/

For your case in particular

from pysphere import *
server = VIServer()
server.connect("your.esx.or.vcenter.hostname", "user", "password")
vms = server.get_registered_vms()
vm = server.get_vm_by_path(vms[0])
print vm.get_property("mac_address")
print vm.get_property("ip_address")
print vm.get_property("name")
print vm.get_resource_pool_name()
link|improve this answer
feedback

It's time that Python got vSphere/VMware bindings.

I've got an API started on top of suds. You might want to follow (or join) my project on BitBucket:

http://jkinred.bitbucket.org/psphere/

I'm new to Python but at the minimum it will show you how to use suds to talk to the web services SDK.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.