As you may know I´m always interested in finding new methods to make vCO available in the most common programming languages. Last week some guys developed their web service client in python using the outstanding PyvCO module: http://labs.vmware.com/flings/pyvco
I see their fast and impressive results which took them just a few days and decided to take a look into python using "native" SOAP clients. After reading thru some available modules I decide to use suds: https://fedorahosted.org/suds/ because it seems to have a simple design.
After installing the module on my MacBook with pip install suds the first test is really simple:
import suds
client = suds.client.Client('http://172.16.0.176:8280/vmware-vmo-webcontrol/webservice?wsdl')
print client
This is the output:
As you can see all methods and types are shown with a simple print :)
Based on this and some indents you can produce some real nice functions like this:
import suds
vCOurl = 'http://172.16.0.176:8280/vmware-vmo-webcontrol/webservice?WSDL'
#username = raw_input('Username: ')
#password = raw_input('Password: ')
username = 'USERNAME'
password = 'PASSWORD'
client = suds.client.Client(vCOurl)
#print client
def getAllWfs():
allWfs = client.service.getAllWorkflows(username, password)
return allWfs
def findWfs(name):
Wfs = client.service.getWorkflowsWithName(name, username, password)
return Wfs
#allWfs = getAllWfs()
allWfs = findWfs(raw_input('Workflow name: '))
for wf in allWfs:
print wf.name
print wf.id
wfInParas = wf.inParameters
for iParas in wfInParas[0]:
print 'inParameter: '
print (iParas.name, iParas.type)
wfOutParas = wf.outParameters
for oParas in wfOutParas[0]:
print 'outParameter: '
print (oParas.name, oParas.type)
With this you can search for a workflow and get the IN/OUT parameters. As you can see the success comes really fast!
So feel free to post your implementations!
What about running a workflow with 20 parameters? like Strings, Objects (host, NetworkPool etc), Array of Strings, etc? :)
ReplyDeleteI got it working on PHP, but only after spilling a LOT of blood and sweat :(